Новые нейронные сети или моделирование работы нервной системы

image

Привет, Geektimes! Хочу представить свои наработки в исследовании в области искусственного интеллекта.
Я с юности мечтал о возможности создания искусственного интеллекта. Еще в школьные годы я прочитал фантастическое произведение «Черный Яша» Зиновия Юрьева, в котором главный герой создал прибор сравнимый по сложности с человеческим мозгом, представляющий собой черный ящик, наполненный множеством связанных между собой элементов — нейристоров, обучал его как ребенка, обрушив на него лавину информации. После чего, прибор превратился в разумное существо, личность, которую назвали Яша. Я задумался, над тем, как должны функционировать нейристоры. Ответ я искал в нейробиологии и физиологии нервной системы. Изучение книг на данную тему дало мне хорошее представление о биологическом нейроне, а работы И.П. Павлова сформировали во мне убеждение о том, что любое проявление сколь угодно сложного поведения живых существ, проявление условных и безусловных рефлексов. Тогда и появились первые, наивные гипотезы о принципах работы биологического нейрона и попытки систематического описания этих принципов. О том, что существуют искусственные нейронные сети, я не имел представления, в то время интернет был редкость.

Только в студенческие годы, я познакомился с некоторыми статьями на тему искусственных нейронных сетей, знакомство с ними на меня произвели неоднозначное впечатление. С одной стороны, удивило столь серьезные различия между моделью нейрона, принятым за основу перцептрона и биологическим нейроном. С другой стороны, описательные методы, использованные в искусственных нейронных сетях, позволили мне пересмотреть свои гипотезы о работе нейрона и представить их в уже более систематизированном виде. Хотя и тогда это были весьма иллюзорные представления.

Модель нейрона в основе классических искусственных сетей обычно представлялась, как клетка с множеством входов — дендритов и с одним выходом — аксоном. Клетка анализировала сигналы, поступающие с входов, и подобно функции выдавала результат, который передавался следующим нейронам. На самом деле нейрон с аксоном лишь частный случай в нервной системе, большинство нейронов в мозгу человека не имеет аксона. Нейрон принимает сигналы практически всей поверхностью мембраны, специальными рецепторами. После чего, передает сигналы по дендритам через синапсы к другим клеткам, причем, синапсы клетки имеют различную силу, их сила определяется независимо друг от друга. У биологического нейрона много входов и множество независимо определяемых выходов. Получалось что, в математическом нейроне анализируются и подсчитываются коэффициенты весов входных сигналов, а в биологическом нейроне происходит анализ силы выходных.

Несмотря на сильные несоответствия искусственных сетей от биологических, они оказались весьма продуктивными, работы в этой области дали множество интересных и практичных результатов.
Классические нейронные сети являются очень удобными для реализации, у меня был опыт написания простой программы на Delphi в основе перцептрона, но к моему стыду, у меня навыков в программировании было недостаточно для реализации своих идей по моделированию нервной системы.

Я долгое время не обращался к этой теме, но продолжал интересоваться и изучать книги и статьи по нейробиологии и психологии. Примерно два года назад, я занялся изучением игрового движка Unity3D, меня он интересовал именно, как игровой движок. Создав пару игровых приложений на нем, я понял, что Unity3D лучше всего подходит для отработки идей. Здесь и рабочее трехмерное пространство, и удобство в программировании, и свобода в организации структуры объектов. Я поставил себе задачу сделать простую модель, демонстрирующую элементарные принцы работы нейрона и нервной системы, основанную на своих предположениях.
Уже через некоторое время работы над моделью, меня ждало первое разочарование. Модель представляла собой некоторое подобие клеточного автомата, связанных между собой элементов. Созданная сеть нейронов, примерно 450 клеток, расположенных в трёхмерном пространстве, в кубическую сетку, работала не в соответствии с моими представлениями. Попытки откорректировать её работу были безуспешными.
Расположение в трехмерном пространстве, является очень важным аспектом для системы, так как для анализа и определения силы своих выходов, в нейроне принимается в расчет его местоположение относительно других активных клеток.

image
Первая неудачная архитектура нейронной сети

Посчитав, что причиной моих неудач может служить предопределённость в количестве нейронов и количестве связей имеющихся у нейрона. Было принято решение создавать нейроны динамически. Дело в том, что существует принцип последовательной передачи возбуждения от нейрона к нейрону, каждый рефлекторный акт можно представить, как цепочку последовательных передач нервного сигнала. Некоторые нейроны могли быть не задействованы ни в одном рефлекторном акте, при этом использовать ресурсы компьютера и мешать обзору при изучении сети.
При динамическом создании нейронов, можно сказать, что рабочая область программы представляет собой пространство, заполненное гипотетическими нейронами, которые будут активированы при необходимости. Программа создает нейроны там, где они необходимы с определёнными ограничениями, имитирующими предварительную наполненность пространства клетками.

Однако, после внесённых модификаций процесс работы с моделью, представлял собой поиски, круговорот из гипотез и их проверок. Я вносил изменения в скрипт нейрона, наблюдал за поведением системы, которая вела себя не в соответствии с моими ожиданиями, что заставляло меня строить новые гипотезы и опять вносить правки в программу. Данная работа заставила меня переоценить важность некоторых аспектов в биологии нейрона, которые ранее для меня казались незначащими. К примеру, пришлось учитывать изменение отрицательного следового потенциала, добавлять усталость нейронов и тормозящие клетки.
В результате я получил результат, который ставил перед собой изначально. Программа, которая может продемонстрировать, как происходит ассоциативное обучение в нервных тканях, формирование новых рефлекторных дуг, подобно тому, как это происходит в мозгу собаки в экспериментах И.П. Павлова.
В сравнении с классическими нейронными сетями, которые с меньшим количеством элементов могут распознавать лица, рисовать картины и сочинять музыку, функционально моя нейронная сеть практически бесполезна. Однако, для меня большее значение имеет потенциал, заложенный в ней.

В системе существуют двенадцать входов, представляющие собой рецепторы-кнопки, это кнопки клавиатуры, которым соответствуют индикаторы обозначенные буквами и двенадцать выходов, которые представляют собой индикаторы активности определённых клеток. Программа позволяет редактировать сеть: создавать нейроны, настраивать их синапсы (связи), настраивать входы и выходы.
Изначально создаются безусловные рефлексы, на базе которых происходит обучение. Человек рождается с уже готовым набором безусловных рефлексов, которые старательно подготовила и подобрала эволюция. Этот набор рефлексов и предопределяет вариативность нашего обучения.

На видео можно увидеть как два простых индифферентных рефлекса состоящих из одного рецепторного и одного моторного нейрона, после нескольких совместных повторений становятся ассоциативно связанными. Происходит формирование «перемычки» между ними.
Я пока не описываю деталей касательно принципов работы системы и нейронов, потому что работа над теоретической основой еще ведется, и не хотелось бы выкладывать сырые теории.

Это только начало пути, еще предстоит множество работы. Сейчас я планирую работу над новой версией программы, которая позволит мне разобраться в некоторых деталях, касательно торможения в нервной системе. Планирую расширить возможности входных сигналов, более развернутую и разнообразную систему чувств, а так же учесть специфические химические информационные сигналы, которые позволят смоделировать подобие эмоций.

Отработав на подобных моделях, все аспекты работы нейронов, можно будет переходить к созданию системы, позволяющей создавать, как в редакторе структуры имитирующих работу мозга животных. На этом этапе будут так же востребованы знания специалистов в области физиологии мозга.
Способность к самоидентификации личности и самосознании являются неотъемлемыми элементами интеллекта, как известно, все это заложено в структурах мозга. И не возможно создание мыслящей машины без копирования структур и принципов работы мозга.

P.S.
Исследования в области искусственного интеллекта, как и написание статей на эту тему не является основным видом моей деятельности, поэтому не судите строго. Буду благодарен любому содействию в работе, помощи, совету, напутствию. Ваше мнение и конструктивная критика для меня очень важны.

© Geektimes