неделя, 15 декември 2013 г.

Добавяне на некоректните ходове към дефиницията на AI



Добавяне на некоректните ходове към дефиницията на AI

В [4] ние дефинираме AI, като устройството, чието IQ е достатъчно високо. Изчисляването на IQ става на базата на множество от светове, като се взима средния успех на устройството за световете от това множество. Световете, които се използват в [4] са генерираните от произволна машина на Тюринг (чиято сложност не надвишава стойността на един параметър, който наричаме ниво на интелигентност).

Множеството от тестовите светове, което сме използвали в [4] е така избрано, че световете да бъдат максимално естествени и разбираеми. Целта не е да затрудним устройството като го накараме да разбира неразбираеми светове, а напротив да го улесним като направим тестовите светове максимално естествени и разбираеми.

Един от проблемите в [4] е това, че там всички ходове са коректни. Тоест, устройството, което дефинираме в [4] не знае какво е това некоректен ход и няма да може да се справи в свят, в който част от ходовете са некоректни. Хубаво би било да променим дефиницията от [4], така че тя да разрешава светове, в които има некоректни ходове. От друга страна добавянето на некоректните ходове ще направи световете, които сме избрали за тестови, да бъдат по-естествени и по-разбираеми.

Проблем в [4] са световете, които в даден момент зациклят. Щом света се генерира от произволна машина на Тюринг, то тази машина може в определен момент да зацикли. Тук проблемите са два: как да разберем, че машината е зациклила и какво да направим след като разберем, че е зациклила. Първият проблем в [4] го решаваме простичко: Ако за 800 стъпки машината не върне резултат, ще считаме, че е зациклила. Решението на първия проблем няма да променяме, но ще променим решението на втория.

В [4], когато машината на Тюринг зацикля, ние я прекъсваме и рестартираме, тоест запазваме това което е записано върху лентата, но променяме вътрешното й състояние, така че следващото й състояние да бъде началното. Това решение не е добро. Това е все едно да изключваме компютъра си като дръпваме щепсела, без да се вълнуваме какво ще остане записано на харддиска. Подобно отношение към компютъра може да направи неговото поведение твърде сложно и непрогнозируемо. Прекъсвайки зациклящата програма ние излишно усложняваме света, който тя генерира. По-добре би било след като я спрем, да кажем, че този ход е некоректен и да върнем машината назад като възстановим информацията записана върху лентата й до тази, която е била когато машината е започнала работа върху този некоректен ход. По този начин това, че сме направили некоректен ход няма да има никакво отражение на бъдещото, което ще се случи в съответния свят. По този начин светът генериран от машината ще бъде много по-естествен и по-разбираем.

Остана още един проблем. Възможно е произволната машина на Тюринг да попадне в състояние (на лентата), при което всеки ход води до зацикляне. Тоест, ще трябва да се откажем от изискването винаги да съществува поне един коректен ход. Последното означава, светът да е такъв, че устройството да не може „да умре“. В [4] ние вече се оказахме от изискването в света да няма фатални грешки. По същата логика и по същите причини можем да се откажем и от изискването устройството да не може „да умре“. Понятията „смърт“ и „фатална грешка“ звучат като синоними, но ако погледнете как сме дефинирали тези понятия, ще видите, че те са различни.