Часть III (практическая)На основании теории, изложенной в
первой и
второй части нашего исследования вашим покорным рабом была написана
программа искусственного интеллекта.
Работа программы состоит в циклическом выполнения 4-х процедур:
1. Автоматическое срабатывание рефлексов по мере активации соответствующих раздражителей
2. Автоматическое запоминание опыта, полученного вследствие автоматического срабатывания рефлексов
3. Автоматическое построение рефлексов на основе опыта (сознание)
4. Автоматическое забывание рефлексов
Процедура 1 работает предельно просто – при возникновении раздражителя тут же срабатывает эффектор, который прописан в памяти как такой, который устраняет этот раздражитель.
У программы «врождено» 5 незабываемых рефлексов:
1. на раздражитель «желание пойти влево» (обозначен как
L) срабатывает эффектор «влево» (обозначен как
0), при этом желание идти влево прекращается (строго говоря, это некоторое упрощение, поскольку для прекращения желания идти влево должен сработать проприорецептор, реагирующий на движение влево, и он должен послужить эффектором для подавления желания идти влево, но для наших изысканий не будем пока усложнять, проприорецепторы вводить не станем и будем считать, что эффектор фишки помимо того, что перемещает фишку влево также автоматически снимает желание идти влево).
2. на раздражитель «желание пойти вправо» (обозначен как
R) срабатывает эффектор «вправо» (обозначен как
1)
3. на раздражитель «желание пойти вверх» (обозначен как
U) срабатывает эффектор «вверх» (обозначен как
2)
4. на раздражитель «желание пойти вниз» (обозначен как
D) срабатывает эффектор «вниз» (обозначен как
3)
5. на раздражитель «желание любопытства» (обозначен как
*) срабатывает эффектор (обозначен как
C от
curiosity), который стохастически возбуждает одно из желаний – R, L, U или D, которое, естественно, автоматически рефлекторно в свою очередь удовлетворяется. При этом удовлетворяется и любопытство, как раздражитель. Но если фишка стоит, например, у правого края поля и из любопытства хочет идти вправо, то это её желание удовлетворяется, однако она остаётся стоять на месте.
Процедура 2 работает таким образом. В каждый такт времени процедура отслеживает факт
одновременной интенсификации и ослабления каких-то рецепторов. Это и есть причинно-следственные связи практического опыта. В силу простоты модели под интенсификацией понимается появление активности, а под ослаблением – исчезновение. Т.е. интенсивность носит дискретный бинарный характер.
Такая работа процедуры подразумевает, что запоминается всё подряд. Нет способа выяснить до момента запоминания
чего-то, что это
что-то запоминать не нужно. В более серьёзном интеллекте человека есть предварительные ограничители запоминания, например зона фовеа и внимание. Для наших целей предварительное ограничение не требуется в силу малого объёма сенсорной информации.
Ещё одним упрощением является необходимость
одновременного ослабления и интенсификации запоминаемых состояний рецепторов. Человек в этом смысле гибче, он может связывать уменьшение и увеличение чего-то спустя время, например, съел чего-то - через день стало плохо, некоторые люди способны связать эти два события как прямо-обусловленные, причинно-следственные. Хотя это свойственно далеко не всем людям. Многие действуют настолько же тупо как и наша фишка – связывают причины и следствия только при их непосредственной близости во времени.
Процедура 3 обобщает в себе всё то, что мы относим к высшей интеллектуальной деятельности – планирование, прогнозирование, построение планов, творчество, обучение, синтез. Всё что человек создаёт – это рефлексы, срабатывая они реализуют формы поведения, которые, в зависимости от особенностей ситуации, мы называем разными словами, но в сущности любое активное действие (локомоция, прогноз, вспоминание) – есть результат выполнения некоторого рефлекса, есть результат действия эффектора.
Работает сознание нашего ИИ очень просто: исходя из жизненного опыта сознание стремится найти цельный (без разрывов) путь (цепь) из комплементарных пар звеньев жизненного опыта. Где начало следующего звена является концом предыдущего. Ведь чтобы что-то уменьшилось, оно должно сначала увеличиться. Поскольку в жизненном опыте записано также, какое локомоторное желание было при этом одновременно удовлетворено, фишка на основании этой цельной цепи и жизненного опыта строит группу рефлексов с соответствующими эффекторами.
В итоге мы получаем набор сгенерированных рефлексов, в которых раздражителем является некоторая клетка поля. Срабатывая на эту клетку эффектор уменьшает раздражитель и заодно переносит фишку на следующую клетку, в следующий пункт плана. В более продвинутой версии ИИ должно также возникать желание попасть в следующую клетку, которое в свою очередь должно быть раздражителем и устраняться. Но принятое мной упрощение не особо конфликтует с истиной, потому что в жизни мы часто совершаем поступок не потому что точно знаем куда мы хотим попасть, а потому что нам надоело то, где мы есть и мы задумали некое действие для устранения этого раздражителя.
Если сознание фишки не может найти целостный путь (если жизненный опыт не содержит соответствующих звеньев, причинно-следственных связок) и при этом целевой раздражитель продолжает раздражать, то включается желание любопытства – при этом фишка начинает
желать стохастически пойти в каком-либо из 4-х направлений. Желание удовлетворяется рефлекторно, поскольку на каждое из 4-х возможных желаний есть врождённый рефлекс. Желание любопытства работает ровно до тех пор, пока не будет получен достаточный жизненный опыт, из которого сознание сможет сложить связную цепочку рефлексов для снятия целевого раздражителя.
Процедура 4 – постоянное забывание - похожа на работу мышцы, если ею работаешь - она растёт и сохраняет свою работоспособность, если не работаешь – мышца теряет воду, белок и свои способности. Так же и созданный рефлекс – если им пользуешься, значит имеет смысл его хранить, если нет – лучше ликвидировать. Ведь как мышца, так и рефлекс в живом организме имеет физиологический материальный носитель, который просит кушать, просит ремонта, занимает место. В идеале время жизни созданного рефлекса должно быть прямо пропорционально частоте его использования. Но для упрощения программы я сделал так, что рефлекс забывается практически сразу после создания и его каждый раз нужно делать заново. Пусть ИИ мучается - он железный.
С точки зрения философии это значит, что ИИ у нас получился с «открытым сознанием», постоянно придумывает себе планы и не зацикливается на привычках, догмах, стереотипах. Это же позволяет ему постоянно быть в курсе последних событий и строить свои планы на основании самого свежего жизненного опыта.
Интерфейс программы предельно простой.
Чек-боксом «Целевой рецептор» можно озадачить нашу фишку-рабыню и заставить её что-то делать, чтобы избавиться от назойливого раздражителя. Напомню, что по моей воле, как демиурга этого игрушечного мира, целевой раздражитель автоматически снимается при попадании фишки на клетку «б». Если фишка уже стоит на клетке «б» то возбудить целевой рецептор не удастся.
Если целевой раздражитель не активирован, то фишка ничего не делает. Полагаем, что достаточно сильно фишку раздражает только этот раздражитель и только для его ликвидации фишка предпринимает усилия. Понятно, что это сильное упрощение, но для начала сгодится. В идеале фишка должна не только выбирать главный раздражитель из нескольких в каждый момент времени, но и рассматривать возможности применения внешних сил (внешних рефлексов) для их устранения.
Установить фишку на любую клетку можно кликом мышки на поле. При запуске программы фишка находится в клетке «м».
Нажатие на кнопку «Ход времени» единожды прокручивает цикл из 4-х вышеуказанных процедур.
Смысл всей затеи состоит в том, чтобы по нажатию на кнопку «Ход времени» фишка получила достаточный жизненный опыт и смогла построить систему рефлексов, которые без стохастического блуждания проведут её из любой клетки поля до целевой клетки «б», которая, в свою очередь, освободит её от раздражителя.
Рекомендуемая инструкция по эксплуатации:
1. Запускаем программу, устанавливаем фишку на желаемую клетку (или оставляем на клетке «м»), включаем целевой рецептор («кладём на фишку груз»).
2. Давим на кнопку «Ход времени» до тех пор, пока фишка путём случайных блужданий ввиду любопытства не попадёт на клетку «б» (пока груз не будет сброшен).
3. После этого помещаем фишку на какую-то другую клетку, снова включаем целевой рецептор и снова жмём кнопку.
4. В процессе наблюдаем за качественным изменением поведения фишки и за ходом наполнения её базы знаний.
При стохастическом блуждании фишка не пользуется своим опытом (т.е. может повторять то, что она уже делала). Сделано это специально, чтобы подчеркнуть ощутимую разницу между эффективностью случайного блуждания и выполнением плана рефлексов.
Кроме того, фишка не хитрит, и если у неё есть опыт попадания, например, с клетки "а" в клетку "б" путем движения вправо, то фишка ничего не может сказать о том, попадёт ли она с клетки "б" в клетку "а" если пойдёт влево, если у неё нет такого жизненного опыта.
Обращаю особое внимание на то, что нажатие на кнопку «Ход времени» не является вмешательством в «мозги» ИИ извне. Единообразное нажатие на кнопку приводит к разнообразному поведению фишки. Кнопка введена только для того, чтобы можно было пошагово следить за процессом обучения фишки (само-обучения, если хотите). Кнопку, конечно, можно заменить вечным циклом, но тогда ИИ станет полностью автономным, выйдет из-под контроля, саморазовьётся и завоюет мир
Итог.
По моему скромному мнению, рефлекс вполне оправдывает себя как центральный механизм для создания искусственных интеллектов. В тестовой программе удалось реализовать все необходимые элементы интеллекта в минимальной, но достаточно функциональной форме. Это врождённые рефлексы, запоминание опыта, создание рефлексов на базе опыта, достижение заданной извне цели (выполнение команды), внутренняя активность. Лично у меня к этой программе нет идеологических и архитектурных претензий. Её главный недостаток – это вырожденная простота. Но это же её главное преимущество.
(все три части доклада скомпоновал в статью и
разместил у себя на хостинге).