Разработка на изкуствен интелект

Писах тази статия на 18 годишна вързраст. Четейки я сега – почти осем години по-късно – намирам, че е ле-е-еко наивна (ок, доста наивна). Слагам я тук, за да я има някъде, но имайки предвид сравнително простия и език, е възможно да е подходяща за надъхващ материал за млади wannabe специалисти.

Тази статия разглежда изкуствения интелект и потенциалната му разработка. Разглежда най-сложния вид изкуствен интелект – този, който е подобен на човека. Спорно е дали той е най-полезния и до колко е морално да се създаде подобно нещо (гледали сме филма на Стивън Спилбърг – “AI”), но не е спорно, че той е най-сложен и най-интересен. Статията е изцяло абстракна и няма почти нищо, описано на практика, но е интересен поглед върху темата.

Да предположим, че ни е зададено да създадем софтуера за въпросния изкуствен интелект. Софтуерът, чрез който ще “разсъждава” човекоподобният робот, който някой е направил. Нашата цел е да бъде максималко близък до истинския човек. Необходимите сензори за зрение, слух и допир (игнорираме обонянието като маловажно) са създадени, обаче спокойно можем да се абстрахираме от тях и да работим на обикновен компютър, който съдържа емулации на сензорите под формата на три функции за вход (няма спор че толкова са достатъчни) – въпросните сензори, и няколко (ще видим колко) функции за изход.

Какъв трябва да е изхода? Задължително трябва да имаме говор и положение на тялото, но освено това има и две други – по-сложни. Забележете, че наричаме говора и положението на тялото лесни! Те не са лесни, но в сравнение с другите са си “piece of cake”. Имаме интонация, която трябва да се влияе от настроението и смисъла на казаните думи и насочване на вниманието, което е много интересно и полезно. Човекът е непрестанно засипван от потоци от информация. Нашите “сензори” непрекъснато приемат поне десет пъти повече от колкото можем да обработим, но ние можем да се абстрахираме от ненужното и, което е много по-важно, да преценим кое е ненужно.

И тук идва момента да кажем за вътрешното представяне на данните. За да можем да поемем информацията ние работим със серия от компресиращи програми в нашия мозък, при това всички действат по революционните и наистина велики методи за компресия чрез загуба на данни. Най-голяма помощ при създаването на изкуствен интелект, ще ни окажат именно тези методи. Създаването им ни предвижи може би на половината път от него.

След този увод, нека разгледаме структурата на изкуствения интелект, който ще създадем. Тя е несъвършена, но като че ли е достатъчна.

Работим с три функции за вход: Зрение, Слух и Допир; четири функции за изход: Говор, ПоложениеНаТялото, Интонация, НасочванеНаВниманието; и вътрешни данни. Най-оптималната работа на програмата би била от безкрайно викане на три функции:

безкраен_цикъл
    получи_входа // получава данните от входните функции
    изчисли_входа // обработва данните
    реагирай // според входните данни прави някаква
             // (или никаква – не е изключено) реакция
край_на_безкрайния_цикъл

Получаване на входа

Входните функции записват информация във вътрешните данни. Природата е измислила идеален начин за съхранение на данните и ние няма да го променим.

Човек работи с понятия. Паметта на човека е създадена от две части: база данни от понятията и инструкции към тази база данни. Сходството с музикалните файлове от тип MIDI е почти пълно. Просто човешката база данни е невероятно сложна. Тя е нещо като многократно свързан йерархичен полу-дървовиден списък (е такова понятие по принцип не съществува, но описва базата доста добре). Мозъкът ни работи изключително абстрактно. Той помни съсем малко, изключително стилизирани образи и малко звуци. Нашата сила е в моделирането. Ето един пример за това как една ситуация се помни от няколко различни хора.

Описание на ситуацията: Автомобил минава на червено, по оживено кръстовище, засичa друг автомобил, плаши пешеходците и бива спрян от полиция.

Инструкциите които се записват в паметта на някои от свидетелите: (легенда: БД – идва от базата данни, МД – абстрактни моделиращо действие, Ч – чувство)

Пешеходец:

аз(МД – човек сам за себе си е абстракция) пресичам(МД – серия от повиквания до базата данни за пресичане на улица) автомобил(БД – викане на стилизирания образ) зелен_като(МД – човек не помни цветове а винаги ги сравнява с нещо наблизо) трева(БД – първото зелено нещо наоколо) нисък(МД – моделиране на образа на автомобила) източен(МД – моделиране на образа на автомобила) минава(МД – серия от повиквания за движението) близо_до_мен(МД) страх(Ч – от прегазване)

Разказ: Някаква зелена спортна кола, за малко да ме сгази, като пресичах!

Шофьор:

аз(МД) шофирам(МД) автомобил_бмв_300и(БД – поради интереса си в тази област тук се съдържа повече информация. Връзката пак води до серия от моделирания на автомобил) зелен_като(МД) трева(БД) близо(МД) колата_ми(БД) гняв(Ч)

Разказ: Както си карах и някакво зелено БМВ ме засече. Замалко да си одраскам боята!

Полицай:

зелен_като(МД) трева(БД) БМВ(БД – по-бедно от това на шофьора) С1020КМ(БД – за отделните букви и цифри. Полицаят обръща внимание на рег. номер) минава(МД) червен_светофар(БД – тук той не мисли за червения цвят а за нарушението “минаване на червено”) гняв(ч)

Разказ: Зелено БМВ с регистрационен номер С1020КМ направи нарушение и то точно пред мен!!!

Обработка на данните

Тук спрямо данните трябва да се определят чувствата, които те предизвикват. Не можем да пренебрегваме чувствата! Ако ги нямахме, никога нищо нямаше да казваме. Един безчувствен изкуствен интелект не би правил нищо друго, освен това, което му се заповяда (много по-полезно нали). Тук втори път трябва да се прецени кое ще отиде в базата данни и кое ще се пренебрегне. Трябва да се определи кое е важно и кое не е. Това обаче изисква ценностна система. В действителност характера се определя от ценностната система. Един чисто нов ИИ трябва да възприема всичко като важно, и да си изгради ценностна система по пример от нещата, които среща. Голяма част от нея, обаче, е предварително вградена, и ние наричаме тази част от нея “вродени рефлекси”. ИИ ТРЯБВА да започне с някакви инстинкти.

Прост начин за имплементиране на ценностна система е функция, която взима събитие (набор от инструкции към базата данни) и връща серия от оценки по няколко критерия:

Полезно, Приятно, Интересно, Красиво, Смешно, Добро, Правилно, Болезнено, Страшно, Странно

Отделно ценностната система трябва да създаде формула за определяне на цялостната оценка на събитието (например някои предпочитат полезно и неприятно отколкото вредно и приятно). И спрямо това да определи дали това събитие следва да се запомни и дали да се търси повторение на събитието или неговото избягване. Формулата трябва да бъде създадена от самия интелект, който в процеса на развитието си трябва да натрупва или маха от коефициентите пред всеки критерий.

Това са доста абстрактни действия, но са част от развитиетно всеки един човек.

След като данните бъдат обработени и оценени, трябва да се започне с…

Реакцията

Тук трябва да се определи каква да бъде реакцията спрямо случилото (или случващото) се събитие и дали въобще да има реакция. Все пак данни се приемат по няколко пъти в секунда и незавършило събитие не винаги може да бъде оценено. Това също е сложен механизъм. Да се определи дали трябва да има реакция и каква. Условните и придобити рефлекси тук трябва да имат приоритет! Самата функция трябва да започва с проверка на условията за рефлексите.

Рефлекс се придобива при условие че за Х време едно и също действие е извършено Y пъти, със средна честота не по-честа от Z (целта на последното е да не може да се придобие рефлекс за прекалено кратко време, чрез непрекъснато повтаряне на едно и също нещо).

ИИ трябва да може да определи дали си струва да си занимава с произтичащото сибитие. Трябва да може да познае събитие ако е срещал подобно. Значи трябва да има критерий за възможно и невъзможно. Трябва да може да моделира събития спрямо опита си. Трябва да може да обобщава. Понякога няма разлика между канара и самолет (например ако ти пада на главата, но понякога има). Това всъщност е най-сложното нещо. В процеса на моделиране да се измисли формула за компресия със загуба на данни и ограничаване на моделирането до възможни и значими развития. Тогава ИИ ще има и въображение. Тогава ще може да разсъждава. Защото какво е разсъждението? То е подобно на спомена. Набор от инструкции към базата данни, само че те не са получени от сензорите за вход а са произволни (но възможни и смислени) инструкции, започващи от познато събитие в паметта. Тогава ще може да се планира. Ще има въображение.

Това в общи линии е разработката на ИИ. И може би това е единствената възможност за създаванто му. Според мен ИИ е интелект тогава и само тогава когато може да си представи нещо – успее да моделира събитие по непълни входни данни със своето въображение.