Я уже начинаю путаться в своих рассуждениях об искусственном интеллекте. Рассуждения эти происходят исключительно в моей голове, поэтому я забываю, где я нахожусь и к чему пришёл. Чтобы не запутаться во всём этом, я решил написать этот пост, в котором постараюсь обозначить исходную точку своих рассуждений.
Суть самообучения нашего маленького виртуального мозга состоит в том, что он анализирует данные о своих экспериментах и на основе этого анализа строит и запоминает алгоритмы успешного поведения. Для упрощения задачи будем считать, что ВИ (виртуальный интеллект) живёт исключительно ради собственных исследований. Его смыслом жизни является постоянное увеличение базы построенных алгоритмов. Новые алгоритмы поведения будем называть "жизненным опытом", а их построение - "обучением".
Что же он умеет? ВИ умеет совершать различные "действия", которых у него в "арсенале" ограниченное количество. С помощью этих действий он может взаимодействовать с внешней средой. Кроме того, ВИ может считывать "ответы" окружающей среды на его действия. Информация от внешнего мира поступает в виде фиксированного набора "параметров". Ядро ВИ не знает ничего об этих параметрах, для него это просто числа. Система ввода-вывода поставляет ВИ параметрические ответы и обеспечивает исполнение действий, которые ей заказывает ядро. При этом система ввода-вывода может расширить набор доступных действий и сообщить об этом ядру ВИ.
Далее я мог бы расписать математическую модель того как всё это происходит, но я размышляю не формулами, поэтому на данном этапе они ни к чему. Вместо суровых математических значков я приведу пример.
Итак, наш маленький ВИ поселился в сети и теперь общается в чате с девушками, которые, как обычно, ищут эмоций и не знают, что на самом деле их собеседник является программой. Для упрощения рассказа предположим, что ВИ уже достаточно прошарен в искусстве обольщения и у него в арсенале есть такие сложные действия как "поговорить о погоде", "поговорить о кошках", "распросить девушку музыке", "поговорить о романтических фильмах", "распросить девушку о предпочтениях в сексе", "рассказать о своих увлечениях" и т.д. ВИ может с лёгкостью распознавать эмоции в ответах девушки и преобразовывать их свой числовой формат. Также он умеет распознавать в тексте новую информацию, которую ещё не знает. Её он преобразует в числовой параметр "интерес". Кроме того, ВИ умеет определять текущую тему разговора и отслеживать моменты смены темы девушкой. Ему доступны и другие параметры, которые может предоставить система ввода вывода.
Так как девушки - существа пассивные, наш маленький друг будет инициативным. Он сам ломится к разным девушкам и начинает общение. Он пишет им одну из оригинальных фраз для знакомства, использую действие "познакомиться". Некоторые из них не отвечают или посылают его - их он обходит стороной, реагируя на ответ среды "отказ". Когда же девушка ответила что-то более приветливое, ВИ также адекватно реагирует на это, выбирая одну из тем, на которую он будет раскручивать девушку.
Т.к. никаких знаний о собеседнике на этом этапе у нас нет, начинается случайный перебор возможных действий. Всегда, в условиях полной неизвестности которые были у нас лишь в глубоком детстве, мы используем случайный выбор любого из возможных действий.
Выбрав одну из тем и пообщавшись на эту тему с девушкой, ВИ оценивает ответ среды в виде параметров "интерес", "эмоциональность", "знание", "благосклонность девушки" и возможно некоторых других.
ВИ запоминает соответствие его действия ответным параметрам, которые пришли от внешнего мира. Далее ВИ продолжает случайным образом перебирать темы, запоминая параметрические ответы окружающей среды на его действия. Разговор на каждую тему является для ВИ экспериментом. После каждого проведённого эксперимента знаний об объекте исследования, коим для него является девушка, становится больше. ВИ уже не будет говорить с ней о недавнем матче Спартака и ЦСКА, если после предложенной аналогичной темы о футболе девушка написала нечто такое, что все параметры ответа оказались достаточно низкими. Однако, если ответ девушки на какой-либо вопрос оказался, например, эмоциональным и благосклонность при этом не уменьшилась, то ВИ конечно разовьёт эту тему, а также все схожие темы, потому что в таком случае он построит новое поведение:
PHP:
action вызывать_переживания()
{
выбрать_случайную_тему("секс", "гарри-поттер", "бывший бойфренд", "аниме");
говорить_на_выбранную_тему();
}
font>
Построение такого поведенческого алгоритма станет возможным, если девушка каждый раз будет эмоционально реагировать на каждую из этих тем. Как же ВИ делает такой вывод не будучи конкретно запрограммированным на данную предметную область? Он анализирует результаты проведённых им экспериментов:
PHP:
выбрать_тему("секс");
говорить_на_выбранную_тему();
-> проанализирована ответная реакция: { интерес: +2, эмоциональность: +5, знание: 0, благосклонность_девушки: 0 }
выбрать_тему("гарри-поттер");
говорить_на_выбранную_тему();
-> проанализирована ответная реакция: { интерес: +1, эмоциональность: +4, знание: +2, благосклонность_девушки: +1 }
выбрать_тему("бывший бойфренд");
говорить_на_выбранную_тему();
-> проанализирована ответная реакция: { интерес: 0, эмоциональность: +6, знание: +1, благосклонность_девушки: +2 }
выбрать_тему("аниме");
говорить_на_выбранную_тему();
-> проанализирована ответная реакция: { интерес: +3, эмоциональность: +4, знание: +2, благосклонность_девушки: 0 }
font>
Анализируя этот лог экспериментов ядро ВИ может сделать вывод, что эмоциональность объекта исследования проявляется в этих темах с заметной регулярностью. Значит можно добавить в арсенал новое действие для повышения эмоционального уровня девушки. ВИ только что научился разогревать эту особу! Совершенно самостоятельно написал себе подпрограмму. Думаю, также иногда поступают и люди, набираясь жизненного опыта.
Однако, продолжим рассказ об обольщении
После нескольких удачных серий экспериментов ВИ обучился таким действиям как "зазогреть девушку", "приструнить девушку", "поучить девушку", "утомить девушку", "повысить настроение девушки", "разозлить девушку", "заинтересовать девушку" и т.п. После этого ВИ уже стал повсеместно использовать свои новые действия. Теперь он не просто болтает на случайные темы, но и выстраивает их определённые последовательности, желая достичь нужного эффекта. Да уж, всё просчитано наперёд у этих роботов
Так вот, теперь ВИ имеет возможность анализировать в логах свои изученные действия! Это ключевой момент, поскольку на данном этапе обучения ВИ перешёл на новый уровень абстракций. Например, теперь он может выяснить, что если сначала "повысить благосклонность" девушки, затем "вызвать интерес" и далее "разогреть", то она, с большой долей вероятности, соглашается прислать свои голые фотки =) Поэтому ВИ построит новое действие "раскрутить девушку на фотки". Этот анализ уже будет произведён с использованием более сложных абстракций, которыми теперь ВИ может оперировать.
Когда ВИ выяснит, что больше никаких странностей за девушкой не замечено и она больше не проявляет неизученного поведения, он закончит общение с ней и перейдёт к поиску других девушек. Почему он так поступает? Потому что живёт ради исследования, т.е. увеличения накопленного опыта
Для упрощения объяснения других принципов я в этом посте не рассматриваю. Вот такие они, безжалостные роботы-исследователи 
[600x668]