image

Здравствуйте, уважаемое сообщество GeekTimes! После своего длительного молчания, я хочу представить свой новый проект. OPENTadpole – приложение, состоящее из полноценного редактора нервной системы головастика лягушки и физической эмуляции тела головастика и внешней среды. Возможность с нуля создать, настроить и отредактировать коннектом животного и немедленно увидеть, как Ваше творение отражается в его поведении.



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

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

Во-вторых, решено было пересмотреть концепцию редактора, несмотря на то, что 3D принято считать более эффектным методом визуализации, я решил перейти на 2D. Раньше я считал, что в трехмерной организации нервной системы кроется определенный ключевой смысл, и, боясь упустить что-то из виду, стремился к трехмерной организации редактора и системы. Но сейчас, я понимаю, что достаточно будет применить конструктив плоского редактора с уровнями или слоями, ведь даже кора больших полушарий имеет слоистую структуру, а работа в плоскости позволяет конечному пользователю более удобно ориентироваться и организовать свою работу с редактором, особенно когда речь идёт о больших массивах элементов.

Учитывая, что я работаю один, и разработка приложений в области кибернетики не является моим основным видом деятельности, то разработка стала идти медленно, и при этом мне давно хотелось продемонстрировать, как мои идеи можно применить к животным с простой нервной системой, таких как моллюск, червь или какое-нибудь насекомое. Мне очень нравиться проект OpenWorm по созданию компьютерной модели червя Caenorhabditis elegans, чья нервная система состоит из 302 нейронов, и чей коннектом был полностью составлен. Проект состоит из двух частей: моделирование нейронных электрических свойств нервной системы червя и моделирования механических свойств его тела в процессе плавания. Эту концепцию я применил к своему проекту, отсылку к чему можно увидеть в названии проекта. На выбор моделируемого животного повлияла запись выступления Романа Матвеевича Борисюка, в котором, он рассказывал о проекте по моделированию нервной системы двухдневного головастика лягушки. Вдохновлённый данным видео, я решил сделать некоторое ответвление в работе над симулятором нервной системы, которому дал название OPENTadpole.

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

Кибернетические животные с нервной системой


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

И начнем мы не с животного, а с легендарной личности – Генри Маркрам. Генри Маркам учёный, многим известен как пионер в изучении синаптических связей, он стал один из первых, кто начал систематически изучать последовательный вариант правила Хебба. Но действительную известность Генри Маркрам приобрёл как создатель самой дорогостоящей в мире имитации мозга. В распоряжении учёного и его коллег не только самоё большое финансирование, когда-либо выделяемое для подобных целей, но и мощнейшие вычислительные ресурсы суперкомпьютера Blue Gene от компании IBM. Название компьютера и дало первое имя проекту: «Blue Brain Project», в 2013 переименовано в «The Human Brain Project». Несмотря на то, что теперь в названии проекта говориться о человеческом мозге, работа ведётся над моделью небольшого фрагмента коры мышиного мозга. У руководителей проекта большие планы, начав с небольшого фрагмента мозга мыши дойти до полной модели человеческого мозга. Еще в 2009 году главный куратор проекта Маркам пообещал, что через десять лет появиться компьютерная имитация всего человеческого мозга. Многие считают Генри Маркрама шарлатаном, действительно если послушать его выступления, то они ориентированы скорее на плохо разбирающихся в нейронауках богатых инвесторах, чем на своих коллег-учёных.



За всю историю проекта, помимо красивых графических материалов, мигающих гирлянд нейронов, есть одно практически полезное исследование. Было создано примерно по двадцать 3D-моделей нейронов определенных типов, полностью повторяющих топологию реальных нейронов с учётом всех изгибов и ветвлений дендритов. Затем сконфигурирована небольшая область коры, в которой были расположены заготовленные модели нейронов, по определенным правилам, но модели нейронов выбирались случайным образам, далее была собрана статистика из полученной модели: где пересекаются дендриты, на каком расстоянии от тела клетки, какого типа контакты.

Полученную статистику сверили с подобной статистикой, но полученной от биологической нервной системы и получили весьма важные результаты: образование 80% синаптических связей в коре подчинено случайности. Т.е. там, где встретились свободно растущие дендриты, аксоны, коллатерали может образоваться синапс, и ни каких химических маркеров. Конечно, в некоторых случаях не исключена избирательность формирования синапсов, а так же нельзя делать вывод о случайности качества связей. Синапс может образовываться случайно, в процессе роста нейрона, но его сила (вес) может определяться жизнедеятельностью нервной системы и животного.

Пока в рамках Human Brain Project говорить о кибернетической виртуальной мыши нельзя, до полномасштабной модели мозга мыши еще далеко. За счёт ресурсов компании IBM другой исследователь Дхармендра Мохда в 2009г заявил о запуске проекта по созданию цифровой имитации кошачьего мозга. Данное заявление вызвало немало возмущений у Маркрама, которые вылилось в форме гневного открытого письма главному технологу IBM. Конкуренция не нравиться никому, но лучше бы мы её увидели на борьбе виртуальных котов и мышей, чем на привлечении внимания глав IBM, руководителей дорогостоящих имитаций. По истечении стольких лет существенных изменений и развития в сфере имитаций мозга млекопитающих не происходило.

OpenWorm – весьма известный проект по созданию имитационной модели нематоды (круглого червя) вида Caenorhabditis elegans, данный червь примечателен тем, что это единственный вид животного для которого составлен полный коннектом его нервной системы, состоящей из 302 нейронов и около 7 000 синаптических связей. Даже для столь небольшой нервной системы как у c. elegans составление коннектома оказалась титаническим трудом. Во-первых, червя подвергли сложной процедуре – серийной микроскопии, создание серий фотографий поперечных срезов тела. Необходимо было делать очень тонкие, в несколько микрон срезы, затем с помощью электронного микроскопа создавать снимки высокого разрешения. При длине взрослого червя в 1-2 мм – это оказалось сложной задачей, имеющийся атлас фотографий составлен из 3-х червей, благо нервная система c. elegans обладает удивительной стабильностью и повторяемостью структуры. Во-вторых, потребовалось более чем семь лет кропотливого изучения снимков, команде учёных, для составления карты связей нервной системы, в полученную базу данных до сих пор вносятся коррективы.

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

Следующим шагом на пути понимания природы нервной системы c. elegans становится попытка создания компьютерной симуляции червя. Цифровая модель удобна тем, что экспериментатор может менять и подбирать настройки её элементов, так чтобы работа всей модели была сопоставима с биологическим аналогом, благодаря чему возможно способом эмпирического подбора выявить некоторые законы организации и работы нервной системы живого организма. Конечно, без общей теории работы нервной системы, без теоретической платформы, подобный поиск законов весьма сложная задача, решение которой закономерно может затянуться.
Особую известность проект приобрёл во время проведения компании на kickstarter в 2014г. Сообщество OpenWorm является весьма плодотворным: создан трехмерный атлас нематоды, в котором детально проработана нервная система – обозначен каждый нейрон; создано и широко развивается система моделирования и визуализации geppetto; симуляция механических свойств тела червя и внешней среды – Sibernetic, над которой работают наши соотечественники. Но свободно перемещающихся кибернетических нематод управляемых нервной системой пока не появилось. Смоделированы некоторые простые рефлексы, связанные с локомоцией (перемещением) и отдёргиванием при прикосновении к передней части тела, но большая часть нервных схем и связанных с ними поведением нематоды остаётся неизученной.

Одно из последних видео системы Sibernetic с канала Андрея Пальянова, плавание нематоды в двух разных средах, управление осуществляется с помощью простых периодических сигналов, без участия виртуальных нейронов.



Следующий проект оказал на меня большое впечатление, именно после просмотра следующего видео с выступлением Романа Матвеевича Борисюка, я принял решение выбрать модельным животным головастика в своём проекте.


Малоизвестный проект tadpoles.org.uk, скромно объясняет некоторые фундаментальные принципы и законы организации нервной системы. Учёные создали модель развития нервной системы, формирование её в начальный период развития животного. Сначала генерируется модель: из нейронов происходит рост дендритов и аксонов по определенным правилам, учитывающим некоторые параметры тела головастика с некоторой долей вероятности влияющей на направление роста отростков, далее в местах контактов дендритов и аксонов разных клеток формируются синапсы. В финале модель можно активировать и она будет демонстрировать активность подобную активности нервной системы живого головастика в части ответственной за плавание.

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

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

Главное правильный подход


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

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

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

Главенствующая математическая модель, применяемая в сфере создания биологически подобных нейронных систем, является модель Ходжкина-Хаксли, описанная еще в 1952г. Так или иначе, эта модель применяется и в Human Brain Project, и в OpenWorm, и в tadpoles.org.uk. Модель Ходжкина-Хаксли – это система уравнений описывающих колебания заряда возникающее на поверхности мембраны нейрона, система уравнений была перенята и адаптирована из электротехники в части описаний автоколебаний в электрическом колебательном контуре. Алан Ллойд Ходжкин и Эндрю Хаксли добавили в систему уравнений некоторые дополнительные элементы и ряд коэффициентов, подобрав их таким образом, чтобы результат их работы сопоставлялся с экспериментальными данными полученными ими при исследовании аксонов кальмара.

image

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

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

Какое функциональное значение у распространения потенциала действия по мембране нейрона? – Передача информации из одной части нервной клетки в другую. Информация о том, что нервная клетка была активирована через рецепторы или синапсы, должна поступить на кончики окончаний аксона, преодолев всю его длину, которая может достигать до метра в человеческом теле. Что является важным в этом процессе? – Время от начала активации, до момента передачи информации об этом, целевой области нервной ткани. В среднем скорость распространения потенциала действия 1м/с, она зависит от различных факторов, к примеру, от степени миелинизации аксона. Соответственно при различных условиях время задержки может быть различным. Модель Ходжкина-Хаксли очень реалистично моделирует процесс распространения нервного импульса по мембране, но нужна ли подобная детальность при создании функциональной модели нервной системы?

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

image

Если попытаться смоделировать человеческий мозг со всеми 86 миллиардами нейронов, с повторением топологии отростков, да еще и просчётом системы уравнений Ходжкина-Хаксли в плотной сетке точек на поверхности нейронов, то не хватит и всех вычислительных ресурсов на планете Земля. А делая прогнозы о появлении подобных моделей можно ориентироваться на двадцать лет вперед, а по истечении этих лет, еще на двадцать лет. Ну и распространение потенциала действия это не всё, нужно еще понимать логику взаимодействия нейронов, для решения этой проблемы стоит, для начала, сконцентрировался на достаточно простых нервных системах, таких как нервная система червя или головастика лягушки.

Разработка


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

Весь проект OPENTadpole состоит всего из двух сцен: редактора коннектома и симуляции среды. С редактором в процессе разработки не возникало серьезных проблем, так как уже имелся опыт работы над предыдущей версией симулятора нервной системы.

Редактор коннектома .gif
image

Главной задачей на данном этапе было разделение выполнения логики нейроэлементов и визуализации, что и было реализовано.

На следующем этапе я обратился к работе над симулятором среды, и достаточно быстро реализовал тело головастика из стандартных компонентов Unity. Тело головастика состоит из 9 сегментов, связанные между собой joint'ами, некими виртуальными кинематическими парами и парой виртуальных мышц по обе стороны. Виртуальные мышцы имеют определённую упругость, что обеспечивает упругость всему телу.

image

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

Сферический головастик в вакууме .gif
image

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

Частицы .gif
image

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

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

Квадраты .gif
image

image

Чтобы пользователя не смущали пляшущие квадраты, была ограниченна область видимости частиц, в результате получилась некая аура, отображающая частицы вокруг тела головастика, которую можно отключить клавишей F12.

Аура .gif
image

Результат


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

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

Плавание


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

image

Схема генератора упорядоченной активности головастика лягушки представлена четырьмя нейронами расположенными симметрично в теле головастика. Два нейрона (dIN, фиолетовые) в данной схеме имеют специфическую особенность, из состояния торможения они выходят, создавая спайк активности. Каждый такой нейрон активирует ингибирующий (тормозящий) нейрон который в свою очередь оказывают перекрестное воздействие на нейрон dIN. Таким образом, получается некий контур циркуляции нервного возбуждения. Запустить данный генератор возможно с помощью однократной активации одного из нейронов генератора, а остановить работу генератора возможно, если препятствовать активации одного из нейронов цепочки более сильным ингибирующим воздействием.

С целью проведения экспериментов в системе OPENTadpole были выделены 4 рецептора-клавиши F1, F2, F3 и F4, в примерах-сохранениях рецептором F1 запускается генератор, F2 подавлялось активность в нём.

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

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

Манёвры


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

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

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

Мы уже давно привыкли к тому, что при описании работы нервной системы говорят только о двух видах синаптического воздействия: побудительного и тормозящего. Но на самом деле это фатальная неточность искажающая понимание принципов работы нервной системы. В своей работе американский учёный нейробиолог Эрик Кандель описал молекулярный механизм синаптического воздействия приводящего к метаболическим изменениям в клетке и синапсе, за что в 2000 году был удостоен Нобелевской премии. Модулирующие нейроны и модулирующие механизмы уже давно следует применять в описании принципов работы нервной системы, так как эти механизмы играют значимую роль в её работе.

В модели выделен отдельный тип синаптической связи, который может влиять на уровень порога сумматора, на некоторый промежуток времени – модулирующий синапс. Если промодулировать, снизить порог сумматора на вставочном модулируемом нейроне (зеленые в следующей схеме), то это приведёт к увеличению его чувствительности, и при активации он будет генерировать не один спайк, а целую серию импульсов. Таким образом, преобразуя сигнал от генератора можно осуществить маневры, повороты при плавании. Если таким образом промодулировать нейроны по обеим сторонам одновременно, то головастик будет просто активней плыть вперёд.

image

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

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

Куда плыть-то?


Головастик научился плавать, причём свободно может выбирать направление, но чтобы выбрать, это самое направление ему нужна цель, и такой целью вполне оправдана, может быть, пища. Для обнаружения пищи у головастика присутствуют два специальных рецептора обоняния, разделённых специальной линией, «переносицей», через которую рецептор не может ощущать присутствие пищи. Чем ближе пища, тем чаще активизируется рецептор с учётом квадрата расстояния.

image

Конечно, такая модель обоняния это сильное упрощение, но в рамках симуляции вполне приемлема.

В примерах сигналы от двух рецепторов сначала проходят цепочку нейронов, в которых происходят взаимное подавление, а затем оказывают модулирующее действие на моторные нейроны, управляя плаванием головастика.

Поиск пищи .gif
image

image

Потребности


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

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

image

В примерах-сохранениях можно наблюдать некую конкуренцию между этими двумя потребностями: усталость может подавить не сильный голод, но сильный голод сильнее даже сильной усталости.

Теперь поведение головастика стало еще более живым, оно зависит от внутренних мотивов и желаний:

Сложное поведение .gif
image

Выводы


Головастик плавает и ест, да еще много чего: реагирует на свет, на прикосновение, если схватить его за голову, попытается вырваться (это предусмотрено в симуляторе), ищет и находит еду, страдает от голода и усталости, и всё это под управлением виртуальных нейронов.

Максимально сложный головастик имеет 63 нейрона и 131 синаптическую связь, напомню, Caenorhabditis elegans имеет 302 нейрона, а биологическому головастику только на обычное плавание требуется 1 500 нейронов. Чем развитее животное, тем выше избыточность нейронов при решении задач, что обусловлено эволюционными процессами и необходимости в надёжности системы. Пока сложно сделать оценку избыточности нейронов в отношении человеческого мозга, но, на мой взгляд, для реализации компьютерной модели близкой к человеческому мозгу не потребуется квантовых компьютеров или мейнфреймов, достаточно мощного домашнего компьютера. Это очень смелое утверждение, во-первых, противоречащее мнению многих экспертов в данной теме, во-вторых, снимающее ареол сверхсложности с данной задачи, без которого трудно выбить из инвесторов баснословных инвестиций. Главное сейчас не вычислительные мощности, а разработка правильной технологии и подходов.

Планы на будущее


OPENTadpole это небольшой этап, на длительном пути разработки инструмента моделирования сложных нервных систем, который, на мой взгляд, успешно пройден.

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

OPENTadpole dowland for Windows

Исходный код

Комментарии (30)


  1. Fagot63
    27.09.2017 20:57

    «Астровитянка» Ник Горькавый. Очередное совпадение/пред виденье из книги.


    1. CharlesFrost
      28.09.2017 09:22

      Какое именно предвидение? Там много чего интересного есть. Недавно закончил читать, но что-то не соображу что вы имеете в виду.


      1. ddark008
        28.09.2017 11:43

        В книге школьники проектируют живые организмы и проверяют их жизнеспособность в симуляторе. Более продвинутая версия OPENTadpole с ДНК и сложной окружающей средой.


        1. CharlesFrost
          28.09.2017 12:55

          Аа, это) Помню-помню.
          У меня почему-то эта статья вызвала больше ассоциаций с Робби. Точнее, с тем как мог мог бы быть создан.) Понимаю, что это цель далёкая, но если вдуматься, такие модели могут помочь нам понять как работаем мы сами. А это прямой пусть к полноценному ИИ.

          p.s. кстати говоря, в книге нет информации что будет если вложить в их симулятор ДНК человека. А что-то наверняка будет ))


          1. Fagot63
            28.09.2017 18:33

            В фантастике уже не первый раз сталкиваюсь с воспитанием ИИ с малых лет среди людей, как ребенка. Что именно такой способ дает самосознание ему.


            1. CharlesFrost
              28.09.2017 19:16

              Согласен, но есть нюансы.
              Считаю, чтобы сознание развилось похожее на человеческое, то и тело должно копировать человеческое.
              Помните «Приключения Электроника»? Вот что-то подобное и должно быть.
              Иначе полноценной коммуникации в социуме не будет.

              На самом деле — интересный вопрос. Обширная тема для исследований.


              1. Fagot63
                28.09.2017 20:59

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


      1. Fagot63
        28.09.2017 11:44

        Можно уже составить внушительный список из книги. Что уже изобретено/создано, а что еще нет.


        1. CharlesFrost
          28.09.2017 13:02

          Это точно. Лично я жду мировой сетевой ИИ для каждого. :)
          Но летающий стульчик тоже круто.


          1. Fagot63
            28.09.2017 18:27

            До мирового сетевого ИИ уже недолго осталось, все предпосылки к этому есть.
            Летающий стульчик объясняет «темную материю». Если объяснит не только в книге, можно уже задумываться, а откуда автор черпал вдохновение или из какого он времени.


  1. AntonSor
    27.09.2017 21:04

    Замечательно! Важный шаг на пути создания синтетических животных и людей.


    1. AntonSor
      27.09.2017 21:04

      или на пути ко всеобщему переходу в виртуальный мир


  1. shadow38
    27.09.2017 23:57
    +1

    статья шикарная, спасибо.


  1. Quiensabe
    28.09.2017 05:11
    +1

    Работа великолепна! Подход, рассуждения, реализация — все очень здорово. Даже не верится, что это «хобби-проект» одного человека.

    Очень близки мысли о том, что для создания ИИ нет нужды стремиться детально повторить структуру мозга, а скорее нужно понять функционал простейших «конструктивных элементов» (типичных механик групп нейронов) и их взаимосвязи. Природа сильно ограничена в реализации элементов логики, но этой проблемы нет в построении искуственной НС. Так что пределы для оптимизаций тут на мой взгляд фантастические.

    В этой же области провожу и собственные опыты, правда в сравнении с вашими — более чем скромные)) Мое мнение, необходимо не только выявить тип этих базовых элементов, но и построить систему развития, для «приспособления» организма среде. так чтобы свойства элементов и связей — тоже могли развиваться параллельно с обучением сети.


    1. Quiensabe
      28.09.2017 05:40
      +1

      Кстати, забыл добавить.
      Ссылку «Источник» — думаю все же лучше назвать «Исходный код» или «github». Все же это огромный плюс работы, что вы выкладываете все в opensource. В статье это как-то четко не обозначено. Плюс кто-то может подумать, что статья — перевод и ссылка ведет не оригинал.


  1. Teemon
    28.09.2017 05:42

    Интересно получилось. Но, считаю, что до тех пор, пока «головастик» не будет уметь учиться, то с точки зрения результата разницы между нейронной сетью и жесткой логикой «если-то» нет никакой. Вот логика «если-то» скорее всего, не умеет учиться (хотя в жесткую логику может быть вшиты правила обучения и правила создания новых правил).


  1. ReakTiVe-007
    28.09.2017 08:36
    +1

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


    1. mao_zvezdun
      29.09.2017 05:21

      Осталось все это запаковать в красивую обертку игры симулятора головастика и деньги потекут рекой


      Четверть века назад не взлетело. Правда там был не «настоящий» головастик, а симулятор экосистемы аквариума — игрушка El-fish. Но людям оказалось не очень интересно добавлять или убирать еду, запускать хищников, скрещивать рыб и всячески экспериментировать. Конечно, это разные вещи, да и время прошло, но мне думается в таком формате потенциал монетизации небольшой. Хотя многопользовательский вариант, где у каждого свой генетически-модифицированный(тм) головастик старается выжить среди своих «коллег», другое дело.


  1. altervision
    28.09.2017 09:31
    +1

    Как-то так и должен был выглядеть тамагочи для гиков ;)


  1. CharlesFrost
    28.09.2017 09:32

    Проект просто отличный! Я в восторге и от идеи и от реализации. С удовольствием буду следить за его развитием и развитием ему подобных.
    Единственное, что хотелось бы добавить: поскольку в природы у нас всё трехмерное, то со временем, неплохо бы переселить головастика из квадрата в куб. :) И создать их колонию.


    1. inferrna
      28.09.2017 11:49

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


      1. CharlesFrost
        28.09.2017 13:16

        Вы правы, конечно, сейчас для одного головастика 3d ненужно. Я имел в виду то время, когда будут делаться более сложные модели/организмы. Тот же самый головастик на другом уровне сложности может-таки потребовать 3d модель.


  1. vmchaz
    28.09.2017 12:17

    Мне интересно вот что — если 80% синаптических связей подчинены случайным законам, значит ли это, что оставшиеся 20% — сформированы на этапе развтия организма?
    Т.е. новые синаптические связи формируются при росте дендритных шипиков. Случаен ли их рост (и всегда ли случаен)?
    А проект — просто великолепный. С удовольствием скачаю и поэкспериментирую


  1. Nomad1
    28.09.2017 13:42

    А препятствия он может обходит?


    1. DukeKan
      29.09.2017 05:21

      Мне кажется может, он же вдоль стенки двигался, когда еда была за стенкой. В какой-то момент, когда стенка кончится, движением вбок он пересечёт уже воображаемую линию-продолжение и начнёт всё больше доворачивать к еде.


  1. Idot
    28.09.2017 13:52

    первое кибернетическое животное

    А почему «первое»?
    Вроде, Норны из Creatures имеют нейроны.


  1. Retunskiy
    28.09.2017 14:18

    хотелось бы ввести «эволюцию», в начале головастики на голод/усталость/раздражение рецепторов и тд. реагируют по своему (в зависимости от рандома) те кто остался без энергии к концу партии не дают потомство


  1. random_username
    28.09.2017 19:05

    Очень качественная статья, видео и оформление всего проекта, отсюда вопрос: в планах монетизация или привлечение таких же энтузиастов к проекту?


    1. aigame Автор
      28.09.2017 19:21

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


  1. unxed
    01.10.2017 14:52

    > Я делаю (свободную) операционную систему (это только хобби, не столь большое и профессиональное, как GNU) для 386(486)AT клонов. Эта система пишется с апреля и скоро будет готова. Я хочу получить любой отзыв, касающийся вещей, которые нравятся/не нравятся людям в миникс, так как моя ОС похожа на неё (такое же устройство файловой системы (по практическим соображениям), среди прочего).

    > В настоящее время я портировал bash (1.08) и gcc (1.40), и, похоже, эти программы работают. Это значит, что я получу что-то практичное в ближайшие несколько месяцев, и я хочу узнать, какие возможности хотят большинство людей. Любые предложения принимаются, но я не обещаю, что я осуществлю их:-)