Введение
Введение посвящено тому, как ход событий и умозаключений привели к появлению идеи и началу ее реализации.
С давнего времени меня занимает проблема ИИ. В начале это были попытки сделать продвинутого чат-бота. Затем пришло осознание, что это будет всего лишь программа, которая на запрос будет давать ответ в соответствии со своей базой данных (БД). Благодаря тому, что все знания системы будут заполнятся относительно случайно (в процессе разговора, обучения), мы получаем псевдонепредсказуемые ответы, но ведь сама система не осознает, что она отвечает. Следом была попытка разработать систему с более подвинутыми источниками познания, в надежде, что это даст какой-то толчок к появлению ИИ. Обработка изображения с камеры, звуков с микрофона, попытка создать бинокулярное зрение, чтобы опознавать образы объемных предметов… Все это было всего лишь очередным вводом данных в БД. Бесспорно, все это полезно и необходимо в робототехнике, но к самому интеллекту не приведет.
Сейчас мы можем видеть чудеса искусственных нейронных сетей (ИНС): поиск лиц, раскрашивание картинок, написание текстов, смена времен года на фотографиях и т.д. Все это безумно классно, и с каждым годом только набирает обороты, но к сожалению, это опять же не ИИ в полном смысле этого слова. Это библиотеки с БД, которые обучены на решение определенной задачи, и решают ее они очень даже хорошо. Мы просто научились делать принципиально иные библиотеки, которые теперь не просто дают, например, перевод слова из словаря, а переводят его в соответствии с огромной базой знаний употребления этого слова (И да, раскрашивание, смена лиц на видео – это тоже все, в принципе, ответ библиотеки на запрос, пусть и необычный для нашего восприятия).
Люди в большинстве своем считают, что ИИ должен превосходить человеческий разум или хотя бы быть подобным, но должно ли так быть? Собаки, кошки — они обладают интеллектом? Конечно, да. Он, возможно, не такой как у нас, кто-то даже говорит, что он на уровне маленьких детей, но он есть. А если пойти дальше по эволюционной лестнице вниз? В конце концов можно прийти к выводу, что даже у простейших или вирусов есть какой-то смысл жизни и поведенческая модель.
Джон Конвей в 1970 придумал клеточный автомат получивший название «Жизнь». Заложив простые и разумные принципы, он получил потрясающий эффект. Назовем автомат игрой. Она стала новым миром, в котором появились свои законы и правила, абсолютно непредсказуемые на первый взгляд.
А ведь были заложены всего лишь следующие принципы:
- Игра происходит в некой клеточной плоскости.
- Каждая клетка на этой поверхности может находиться в двух состояниях: быть «живой» или быть «мёртвой» (пустой). Клетка имеет восемь соседей (окружающих клеток).
- Распределение живых клеток в начале игры называется первым поколением. Каждое следующее поколение рассчитывается на основе предыдущего по таким правилам:
- в пустой (мёртвой) клетке, рядом с которой ровно три живые клетки, зарождается жизнь;
- если у живой клетки есть две или три живые соседки, то эта клетка продолжает жить; в противном случае (если соседей меньше двух или больше трёх) клетка умирает («от одиночества» или «от перенаселённости»).
Клеточный автомат «Жизнь». Один из вариантов развития
Тем кто не знаком с этим занимательным открытием советую познакомиться. В сети есть множество рабочих примеров и статей.
Таким образом подвожу к мысли, что сам интеллект — понятие очень не однозначное. Понимание разницы между отсутствием интеллекта, слабым и сильным для живых существ является задачей нетривиальной. Насколько разумна бактерия? Или осознает ли себя кошка?
Сейчас множество людей активно изучает работу
ИНС — прекрасный образец нашей памяти, а может быть и еще чего-нибудь большего. И главное – алгоритм работает. Остается вопрос за поиском алгоритма остальных элементов.
Так и родилась идея, что ключ к пониманию и созданию ИИ, находится не в попытке создать нечто, что могло бы сходу жить в нашем мире и воспринимать информацию, как мы с вами. Основой теории является то, что наш разум работает по простым алгоритмам, но за счет наличия множества уровней образов, а также огромного разнообразия случайных данных нашего мира, мы получаем абсолютно непредсказуемую и сложную систему, которую, кажется, нельзя познать. Яркий пример: практически ни один разработчик сложной ИНС не может точно сказать, почему получил от сети такой ответ, а не другой. Она кажется практически непредсказуемой. Или «Жизнь» Конвея – абсолютно новый, непредсказуемый мир, который кажется сложным и продуманным, со своими обитателями и законами, а по сути в него заложен простой алгоритм в несколько строк.
Необходимо максимально упростить среду и объект изучения. В наше мире очень много переменных, которые сложно учесть, помехи. Нужно создать закрытую среду с ограниченными законами, некую модель мира, в которую будет добавлена сущность с базовым набором алгоритмов. Определяются базисные понятия и цели, руководствуясь следующими принципами: они должны быть максимально приближены к человеческим; они будут добавляться и внедряться в систему постепенно по уровню своей важности для жизни сущности. Но как найти и определить эти алгоритмы? Анализировать себя, и других людей вокруг. Задуматься над истинными причинами своего поведения, поступков, чувств, ощущений, желаний. Упрощенный пример: сущность должна хотеть есть. Если не поест, то испытывает боль, что является стимулятором к поиску еды. При употреблении которой, она будет получать удовольствие, а при чрезмерном — боль.
По мере усложнения поведения самой сущности и законов мира, мы сможем наблюдать за развитием системы и делать свои выводы. Если удастся добиться какого-то прорыва, то можно будет просто заменить базисные понятия сущности, и перенести сущность из закрытой системы в открытую. К примеру, из закрытой виртуальной песочницы – в наш мир на платформу робота, заменив голод на разряд аккумулятора.
Еще один немаловажный момент. Так как в основу поведенческой модели будут взяты человеческие потребности и особенности, мы получим возможность осознать и понять многие аспекты самой сущности человека. Психология поведения, социальное взаимодействие, смысл жизни и смерть — это так, вершина айсберга, которая первой приходит на ум.
Кстати, вам это все ничего не напоминает? Развитие в закрытой среде, где нет практически ничего, где сущность от одной клетки развивается до сложного существа, а после выходит в мир? С какого возраста вы себя помните? С 3 лет? А раньше? Так получается, что 9 месяцев вы развивались в полностью закрытой среде, а после еще года 3-4 учились воспринимать наш мир таким какой он есть. И только после этого в вашей памяти начали образовываться образы совместимые с текущим сознанием, которые вы помните и по сей день. Многие считают, что некоторые сложные действия или последовательность действий в нас «заложены» (инстинкты). Но насколько это правда? Можно ли заложить в живое создание на генном уровне какие-то действия с высокими образами, которые появляются далеко не сразу после рождения? Мы интуитивно боимся многих вещей (сложных образов). У меня было две собаки, одна с детства боялась воды до паники, а вторая ее обожала, ныряла и не вылазила. Инстикты? А могут ли наши матери каким-то образом передать часть своих особо «ярких» воспоминаний нам? Ведь по логике все мы чьи-то дети, так может сложные инстинкты нам как-то передали более высоким уровнем нежели генным? Ведь в пуповине кроме сосудов есть еще и нервные волокна. Ребенок чувствует, когда мама нервничает. Возможно все это он определяет другим способом, но все же… Я очень надеюсь, что сообщество сможет дать ответы хоть на какую-то часть этих вопросов.
В заключение хотелось бы сказать, возможно, в результате этой работы и не получится создать сильный ИИ, но понять лучше самого себя – однозначно. Никто точно не знает насколько эта нора глубока.
Часть 1. Начало
В этом разделе я попробую определить первичные требования к среде, а также базовый алгоритм сущности.
Для начала определим среду, в которую мы поместим сущность.
Пусть это будет некое двумерное пространство, поделенное на ячейки (50 на 50 ячеек), попасть за пределы которого невозможно. Соответственно, в первой версии мира ячейка может быть либо пуста, либо содержать в себе сущность, либо преграду, либо еду, либо плохую еду, которые все условно занимают по одной ячейке. Перемещаться в среде возможно только по соседним ячейкам по вертикали и горизонтали. Время в мире квантировано (поделено на примерно равные отрезки времени). Сущность помещается случайным образом, как и преграды с едой вокруг.
Понятия:
- Квант времени — фиксированная величина времени, которая определяет деятельность и развитие мира. Для упрощения, мир существует и движется пошагово, что дает время на проведение всех необходимых расчетов перед следующим шагом.
- Сущность — это некое существо, управляемое ИИ.
- Преграда — непроходимый блок.
- Еда — блок, который поглощает сущность за какое-то время. Удовлетворяет голод и приносит удовольствие.
- Плохая еда — блок, который поглощается сущностью за какое-то время. Удовлетворяет голод, но дает сильный отрицательный сигнал спустя какое-то время.
- Итак, теперь мы имеем среду, в которой сущность может искать себе пищу и преодолевать преграды.
Давайте подумаем. Чем должна обладать сущность, чтобы захотеть сделать первый шаг, и определить какую-то задачу для своего существования? Если мы поместим сущность без желаний и потребностей в пространство, то она будет стоять, и ничего не будет делать. Мы и сами порой можем лениться и не хотеть ничего делать – просто лежать. Почему проявляется такое состояние? Возможно в тот момент все основные наши потребности удовлетворены, а все остальное не важно настолько, что этим можно пренебречь. Какие потребности заставят вас бросить все и сделать что угодно, лишь бы они затихли? По пирамиде Маслоу в основе всего лежат физиологические потребности. Наш разум способен их подавить, но рано или поздно физиология заставит нас их удовлетворить, в противном случае мы можем умереть. Сюда можно отнести потребности питаться, дышать, ходить в туалет, размножаться и т.д.
Объединим их все и сведем к абстрактной потребности питаться. Наша сущность должна хотеть есть, в противном случае ей будет плохо, больно. Это, пожалуй, один из самых сильных мотиваторов.
Отсюда можно сразу определить, что сущность должна состоять из разных блоков, пускай один будет отвечать за желание и удовлетворение в пище, а другой будет получать все эти сигналы и будет решать, что делать.
Заметьте, если б наш желудок нам не сообщал о голоде, мы бы и не думали о еде (опустим пока момент с удовольствием от еды). Соответственно, мы бы не делали все, что связано с удовлетворением этой потребности. А если задуматься, то мы делаем очень много только ради того, чтобы поесть. А чтобы размножиться?
Добавили мы желание, но будет ли сущность теперь двигаться? Нет. Она будет стоять и, осознавая в том или ином виде это желание, просто голодать, а в конце умрет от голода. Почему? Потому что она не знает, что нужно делать, чтобы удовлетворить потребность. Вот здесь и начинается самое сложное и интересное. Должен быть некий триггер, который заставит ее дернуться с места и наткнуться на еду. Например: инициировать крик грудного ребенка, чтобы его покормили.
Я думаю все сталкивались или по крайней мере слышали, что в случае опасности мы можем делать вещи несколько превосходящие наши рядовые возможности. Высоко прыгать, лазать и т.д. К примеру, когда убегаешь от собаки. Почему это возможно? Почему в осознанном состоянии мы не можем это сделать, а здесь получается? У нас с вами есть один механизм, который считается негативным, но пожалуй именно он призван нас спасать в подобных ситуациях. В состоянии опасности мы можем потерять контроль над самим собой и мы можем перейти в некое состояние аффекта.
Если задуматься, то в нас с вами «вшито» очень много подобных механизмов, которые не поддаются управлению, т.е. наш
Если кому интересны подробности почитайте об аффекте и рефлексах в соответствующей литературе, возможно вы для себя откроете много нового, а мы пойдем дальше.
Итак, у нашей сущности должен быть механизм подобный аффекту, который столкнет ее на поиски еды. Если повезет она ее найдет до летального исхода и тогда в памяти зафиксируется положительный эффект от приема пищи, и по логике процесса она должна будет осознать это и начать искать еду далее сама, без работы защитных механизмов.
Я не буду публиковать ранние идеи и понятия, в виду их текущей неактуальности. Вместо этого постараюсь максимально абстрагировать то, что уже есть, для начального понимания. Более подробный разбор блоков и систем будет проводиться в следующих статьях.
В итоге в текущей версии были определены следующие блоки:
Схема взаимосвязей между блоками ИИ
Далее все блоки по тексту для удобства буду записывать жирным шрифтом, чтобы было понятно, что речь идет именно о блоке.
Блоки:
- Системы информации — это условно внешние системы, которые время от времени выставляют различную информацию на прием вниманием.
- Системы действия — это условно внешние системы, которыми можно управлять, посылать различные сигналы на них.
- Внимание — это первичный регистратор всех сигналов, идущих от систем информации.
- Короткая память — это память, которая активно детально сохраняет все сигналы, образы и события за короткий промежуток времени.
- Долгая память — это память, которая хранит уже какие-то базовые знания, в виде образов более высокого уровня, нежели в короткой памяти.
- Фокус внимания — блок отвечающий за фокусирование на определенный поток сигналов, образов, управляемый призраком.
- Призрак — абстрагированный, первый из основных и самых сложных блоков, определяющий модель поведения, фокус внимания, текущие цели; ведущий анализ ситуации, оценивающий действия и результаты и т.д.
- Тень — абстрагированный, второй из основных и самых сложных блоков. По сути является тенью призрака. Ведет базовый контроль за всем происходящим вокруг. Через него проходят все запросы на действие от призрака. Может изменить текущую роль (или стратегию поведения) призрака.
Определим сущности следующие системы:
- Система информации «Голод» — шлет сигналы о голоде или его удовлетворении.
- Система информации «Зрение» — шлет массив сигналов об окружении сущности. В первой версии сущность видит все вокруг на 7 клеток от себя (15 на 15 ячеек).
- Система действия «Движение» — имеет 4 исполняемых команды: иди вверх, вниз, вправо, влево.
Мир версии 1.1
Итак, представим, что сущность появилась в пустоте. Спустя время внимание регистрирует сигнал «голод» в системах информации, который приобретает все более и более высокий уровень. Дойдя до определенного предела «голод» начинает фиксироваться с уже негативной оценкой, слишком сильный сигнал. Если уровень сигнала дойдет до определенной планки, будем считать, что сущность умерла от боли. Заметьте, что для сущности это абсолютно новый и неизвестный сигнал. В нее только заложено, что если любой сигнал имеет уровень больше какой-то константы (порог боли), то тогда сигнал считается негативным. Она обращается в память с запросом, что это за сигнал, как его оценить? А там нет ни одной записи, и она не может его ни оценить, ни определить, что делать дальше. Это новое чувство. Соответственно, оно не угрожает жизни по явным признакам и его игнорирует и тень, и призрак, просто записывая его в память как в краткосрочную, так и долгосрочную.
В первых версиях сущность ожидала момента, когда включится защитный механизм, когда уровень превысит порог боли, чтобы начать двигаться. Сейчас же призрак сам принимает решение без этого механизма. Он дожидается момента, как сигнал станет негативным и тогда начинает планомерный перебор всех возможных действий с записыванием результата в память. Это состояние можно охарактеризовать как «нудно». Тебя что-то беспокоит, но ты не знаешь что. И ты старательно пытаешься понять что это, делая то одно, то другое, только бы беспокойство ушло.
Также стоит отметить, что в первых версиях был отдельный универсальный сигнал «боль». Который и накладывал дополнительный негативный окрас. Он шел вместе с голодом парой и мог идти с любым другим. Позже было принято решение избавиться от него и оценивать боль как превышение любым сигналом определенного порога. Нам ведь дискомфортно слышать громкие звуки или смотреть на яркий свет.
Итак, как сигнал будет переходить критические уровни, тень будет сменять роль призрака. Он будет все более и более агрессивнее перебирать возможности, пока сущность не умрет, или не наткнется на еду. Со смертью все понятно: конец и начинать все с начала. Но что будет, если сущность наткнется на еду?
Сущность удовлетворит свои потребности, получит целую кипу положительных сигналов, и в конечном счете будет зафиксирована первая последовательность действий, чтоб избавиться от голода.
Тут можно заметить, что голод получит отрицательную окраску в памяти, но после того как он будет удовлетворен, этот окрас будет нормализован положительным эффектом. В случае с укусом зверя, к примеру, нормализатора не будет, и сигнал останется отрицательным.
Затем сущность начнет опять потихоньку испытывать голод. И вот тут уже сработает алгоритм предсказания событий из памяти. Уровень сигнала становится более отрицательным, а в обозримом будущем будет очень плохо. Нужно искать решение. И заметьте искать решение сущность уже начнет до того момента, как ей реально станет плохо как в первый раз.
Схожая ситуация произойдет и с плохой едой. Удовлетворив голод и испытав боль после, она уже не будет есть плохую еду, если только не в крайнем случае, так как конечная боль от плохой еды все равно ниже предсмертной боли.
С большим количеством итераций сущность поймет, как бороться с болью, как обходить блоки, что можно есть, а что нельзя.
Стоит отметить, что на данном этапе у сущности нет необходимости иметь фокус внимания или же тень. Они указаны для большей аутентичности, и плавному переходу на следующие версии сущности. Я не стал уделять внимание тому, как именно сигналы попадают в обе памяти и как они вообще взаимодействуют, для этого будут отдельные статьи.
И в заключении сделаю отступление. В ведении я поднимал вопрос о передаче опыта детям от родителей без обучения. На одной из будущих версий, когда появится потомство, остро встанет вопрос заложения каких-то базовых черт от родителей. Характер, страхи, образ
В следующей части более подробно расскажу о том, как работает призрак. Попробую объяснить, что общего у любопытства, обжорства и удовольствия от почесывания спинки; почему нам нравится или не нравится какая-то музыка; почему кто-то консервативен, а кто-то, сломя голову, лезет в неизвестное.
Автор: Тяглов Иван