Словом, мир жил своей жизнью, а мы жили своей. Пашка всё чаще пропадал в спортзалах, тренируясь там вместе с оставшимися оперативниками. Лариса занялась систематизацией и сведением всех наших знаний о реальном мире, Маши-Мокоши, апостолах, героях, сверхспособностях и так далее. Надеясь, путём систематизации и перекрёстных ссылок, выделить новую информацию или, хотя бы, понять куда и где следует копать в первую очередь, чтобы узнать что-то полезное.
Я же пытался разработать искусственный интеллект.
Знаете, наверное, нет такого программиста, который бы никогда не пытался написать настоящий ИИ. Если даже таковой разработчик найдётся, то можете плюнуть ему в среду разработки и смело заявить, что он жалкий ремесленник, а не романтик. Настоящий программист всегда должен быть хотя бы немного романтиком
Поначалу, когда ты ещё только учишься, создание «умной программы» кажется не таким уж сложным делом. Ты пытаешься, пробуешь, но ничего не получается. Остаются только разрозненные наработки, которые через несколько лет, если найдёшь их в поисках по жёсткому диску своей рабочей станции, покажутся тебе смешными и нелепыми. Второй этап наступает, когда ты уже более-менее опытный разработчик. На этот раз ты понимаешь огромную сложность задачи и перед тем как садиться писать код сначала читаешь тематические статьи, выбираешь наиболее перспективное направление разработки ИИ, готовишься, собираешь информацию, размышляешь и… обычно дело так и не доходит до самого кодирования.
Что до направлений разработки ИИ, то их, как говорится, на любой вкус. Можно начать разрабатывать «сверху». Это направление экспертных систем, худшим примером которых является встроенная справка операционной системы виндовс. Это декларативные языки программирования где описывается набор правил, начальное и желаемое конечное состояние, то есть описывается решение задачи, но не указывается алгоритм перехода к этому решения. Если вам знакомы такие названия, как «лисп» или «пролог», то вы меня наверняка понимаете. Наконец, к методологии «разработки сверху» можно отнести макропрограмиование, когда любая правильно составленная текстовая строка сама может рассматриваться как код и таким образом программа получает возможность самостоятельно дописывать себя. Разрабатывая ИИ сверху, программист пытается создать готовую сложную структуру способную к самостоятельному развитию и изменению. Первая проблема с которой сталкиваются «разработки сверху» это создание модуля целеполагания.
Направление разработки ИИ «снизу» подразумевает, что программист не создаёт заранее готовую сложную и уже почти разумную структуру, вместо этого он, образно говоря, ставит на огонь «первичный бульон» и с интересом разглядывает то, что может там зародиться. Приверженцы этого направления пытаются копировать существующие в природе живые системы. Это целый класс генетических алгоритмов, в которых различные решения состязаются друг с другом чтобы выделить лучшее, то есть наиболее соответствующее заданным изначально критериям. Если из двух случайных решений ты всегда можешь выбрать какое из них лучше, но понятия не знаешь, как вообще решать поставленную задачу - тогда используй какую-нибудь из множества реализаций генетических алгоритмов и твоё дело в шляпе.
Другое направление разработки «снизу» это получившие большую известность последнее время нейронные сети копирующие процессы, происходящие в настоящих нейронах живых существ. Проблема в том, что в мозге того же муравья так много нейронов, что для построения нейронной сети аналогичной мощности потребуется суперкомпьютер целиком. Архитектура вычислительных машин вообще довольно плохо предназначена для построения нейронных сетей. Здесь, наверное, нужна какая-нибудь другая архитектура.
Наконец, к разработке «снизу» можно отнести эмуляции биоценозов, где виртуальные хищники соревнуются с виртуальными травоядными и даже с виртуальной травой и внутри каждой группы используются различные стратегии выживания.Главная проблема «разработки снизу» - выделить из множества всплывших на поверхность «первичного бульона» сгустков что-нибудь полезное.
Но самый странный факт относительно ИИ заключается в том, что ИИ… уже давно изобретён. Достаточно взять любой микроконтроллер, любую систему обработки изображений, генерации текста, любой компилятор наконец - все они успешно выполняют свои функции, некоторые даже способны к ограниченному самообучению. Это, так называемый, слабый ИИ. В отличии от «слабого», сильный или полноценный ИИ должен не только уметь учиться, но, в первую очередь, должен уметь целенаправленно изменять самого себя.