Как стать автором
Обновить

Комментарии 13

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


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

Если у организма есть сенсоры, то как бы ни был прост/сложен сенсор и/или организм, в окружающем его мире найдется бесконечное множество взаимосвязей. Иначе говоря, поток входящей информации просто в силу своей кошмарной вариативности — будет заведомо содержать в себе немыслимое кол-во зависимостей разного уровня сложности/масштаба/четкости. Строить корреляции всего со всем — это значит просто забивать пространство (которое в случае биологического объекта ограничено размерами «черепной коробки», а в случае компа — оперативкой) совершенно ненужными (т.е. не важными для функционирования объекта) зависимостями. Т.е. даже если корреляция сильная/устойчивая, совершенно не обязательно что знание этой зависимости что-либо изменит в существовании (а значит и поведении) организма. Таким образом, очевидно приходим к необходимости какого-то фильтра, который позволит организму «делать вывод» (на уровне отдельного нейрона), в каких потоках информации следует искать ассоциации (т.е. корреляции активностей отдельных нейронов) а в каких — не искать. В качестве такого фильтра эволюция предложила красивое решение. Что значимо для организма — то вызывает безусловную реакцию-рефлекс «мне хорошо», либо такую же безусловную реакцию «мне плохо». Ну там, съел что-то нажористое — внутри зазвенел звоночек «ммм… хорошо!», а кусанул меня слепень — внутри звоночек противоположного знака «чета фигова ваще». Понятно что чем сложнее организм тем богаче и сложнее устроены его хардварные внутренние хорошо-плохо (и они уже выстраиваются в иерархию приоритетов), но важно что они безусловные — т.е. жестко прошиты в виде такой внутренней реакции на определенные так же жестко прошитые внешние стимулы. И именно это вот хардварное ядро «мне хорошо/мне фигово» и является инструментом, позволяющим отдельным нейронам фильтровать общий поток информации направленно, а не хаотически. Т.е. как только статус этого ядра меняется — это и есть момент во времени, в который ценность устанавливаемых нейронами ассоцаций велика. А когда статус этого ядра неизменен — то с точки базовых внутренних «ценностей» организма во внешнем мире ничего значимого не происходит вообще, а значит и незачем пытаться запоминать/анализировать ассоциации, они просто не значимы для организма. Таким образом, если Вы хотите чтобы система действительно самообучалась не просто в смысле поиск корреляций (что можно делать намного проще чем нейросетевой структурой), но в смысле выстраивания своего поведения (т.е. взаимодействия с окружающим миром) сообразно структуре этого мира (который фильтруется организмом именно через призму его хардварных понятий хорошо-плохо), то без такого вот блока «внутреннего статуса» принципиально не обойтись — иначе просто забьете всю оперативу найденными зависимостями, значимыми из которых — будет мизерный %, и всё потонет в этом потоке ненужной сложности внешнего мира. Фильтр необходим — и он есть у живых нейронных сетей как раз в виде таких вот эмоций. А критерий «акцента внимание» на момент времени — это по сути градиент (во времени) внутреннего статуса, чем он выше тем активнее надо ассоциации строить. Ну а принцип ассоциации Вы предположили (если я верно понял видео) совершенно верный — нейрон по сути постоянно «щупает» активности окружающих его соседних нейронов, и дальше ищется простая корреляция (его срабатывания со срабатыванием соседа).

Второе замечание. В искусственных нейросетях сложилось совершенно на мой взгляд кривое представление о функции нейрона как о структуре имеющей специфическую реакцию на вполне определенный входной паттерн. Об этом вроде-бы говорили многочисленные эксперименты, типа того как в мозгу обезьяны находили нейрон отвечающий на появление в поле зрения обезъяны определенного объекта (например лица человека, или банана, или конкретно «мистера Джека» который чаще других работал с данной особью). Или нейроны реагирующие только на углы (только на прямые линии/точки/градиент) в зрительной коре человека. Из этого делается вывод что вот дескать, нейрон выделяет определенный паттерн из входящей информаци. На мой взгляд, тут просто спутали причину и следствие. Об этом очень хорошо и подробно пишет А. Н. Радченко (книги «Молекулярные механизмы памяти», «Информационные механизмы нейронной памяти и модели амнезий» и т.п. — крайне рекомендую зачитать этого товарища, у него громадное кол-во информации изложено в очень красиво обобщенном виде с глубокими выводами). Штука в том, что практически любой нейрон на самом деле реагирует на громадное кол-во стимулов, и более того изначально его активность близка к просто шумовой. Однако эти стимулы лежат очень далеко друг от друга. Образно говоря, конкретный нейрон реагирует на «мистера Джека» в поле зрения, на шум включения вентилятора, на запах молока, и еще на что-нить такое-же совершенно далекое от уже перечисленного. Так что действительно в рамках узкого эксперимента можно прийти к вроде-бы корректному выводу что вот этот нейрон реагирует именно на «мистера Джека»… А он реагирует еще на тыщу стимулов — но просто все они так далеки от условий эксперимента, что ни разу не появляются в рецептивном поле нейрона в ходе эксперимента. Т.е. если Вы хотите построить действительно мощную систему, то стоит воспользоваться этим решением природы — принципиально отказаться от попыток специализации нейрона, и переходить к уровню «радиуса чувствительности» нейрона — так чтобы он реагировал на определенную (и очень большую при этом, как это показал Радченко в своих работах) область многомерного пространства своих входов, с множественным пересечением «области реакции» нейрона с «областями реакции» других нейронов (речь про области в многомерном входном пространстве нейронов разумеется). За счет такой неспецифичности реакций нейронов достигается масса плюшек — распараллеленность работы, «голографичность» информации записанной в нейросетевой системе, устойчивость, многократное резервирование и т.п.

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

Успехов в начинании!
«Голографичность» кодирования информации — это следующая ступень развития, позволяющая упаковать максимум информации в разреженных представлениях.

Я думаю, начинать с этой концепции плохо, и вот почему:

Экспериментируя с тем же HTM Джеффа Хокинса (мы перевели модель на GPU и пытались добиться проявления поведенческих паттернов, т.е. животного уровня самоосознания — с тем чтобы применить HTM для контроля виртуальных персонажей), мы пришли к выводу, что «голографичность» крайне усложняет постановку сложных экспериментов, когда автоассоциативную темпорально-пространственную иерархическую модель пытаешься заставить решать какие-то задачи (скажем, смоделировать центр удовольствия).

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

p.s. насколько я помню, после написания книги «Об интеллекте», Джефф Хокинс реализовал именно сеть без разреженного кодирования информации, но столкнулся с колоссальными объёмами оперативной памяти, необходимой для реализации его концепций — и это, как я понимаю, стало толчком к созданию HTM)

en.wikipedia.org/wiki/Hierarchical_temporal_memory
Спасибо за столь развернутый и подробный комментарий, Вы действительно во многом правы. Постараюсь ответить на всё.
Действительно, в корреляции всего со всем нет никакого смысла и этого не происходит ни в природе, ни в модели. Нейрон не связывает, он скорее определяет предпочитаемое направление передачи возбуждения, причем существуют некоторые ограничения в выборе этого направления. Формируются так скажем пути передачи возбуждения, которые могут уточнятся, меняться, забываться, конкурировать между собой и влиять друг на друга, в условиях ограниченного пространства и ограниченных ресурсов нейронов.
Конечно создание «чистого» разума невозможно. Без внутренних целей и мотиваций ничто не способно мыслить и обучаться. Я конечно планирую в бушующих моделях учитывать эмоции. К примеру, эмоцию новизны, которая отвечает за любопытство и желание получать новые знание, на удивление эту эмоцию можно легко эмулировать в концепции моей модели. Так же, планирую реализовать, модную в ранних работах по искусственным нейронным сетям, концепцию двух кнопок «поощрение» и «наказание».
Даже в при пассивном рассмотрении изображений, когда происходит угадывание мозгом знакомых образов происходит выброс небольшого количества дофамина, создавая чувство небольшого удовольствия. Поэтому тема эмоционального подкрепления обучения, будет присутствовать в дальнейших работах.
В моей модели, нейрон при его активации, анализирует паттерн всей системы, уникальную комбинацию всех активных нейронов с учетом их фаз в системе, и потом определяет как распределить выходные веса. Причем, оценка паттерна происходит с позиции самого нейрона. Самый простой результат такой работы нейрона направить возбуждение в направлении другого активного участка. Если бы, одновременно были активны множество других участков на некотором расстоянии друг от друга, картина была бы иная, нейроны бы вбирали другу точку в пространстве системы куда направить возбуждение. Этим можно объяснить наличие в гипокампе так называемой когнитивной карты, или зеркальных нейронов. Один нейрон обрабатывает очень много информации, и делает это весьма элегантно и просто.
Иерархия в нервной системе действительно существует и очень распространена. Особенно она выражена в безусловных рефлексах, а так же в нервных системах у животных таких как, моллюски, черви и т.д. иерархия в их нервной системе строго определена и изучена. Но с эволюционным развитием в нервной системе все больше увеличивается вариативность. Успех заключается в объединении этих двух аспектов. Вариативность на уровне коры больших полушарий, строгая иерархия на уровне древнего мозга.
Спасибо за указанные материалы и книги, я обязательно их изучу.
Спасибо, очень круто!

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

существует похожая opensource разработка N.A.R.S., рекомендую познакомиться как минимум с визуалом. NARS тестируется на задачах эвристической имитации поведения игровыми персонажами в играх уровня 8 битных приставок (понять правила игры и успешно её проходить, хороший тест для «действующего» ИИ)

youtu.be/pdaUNX7iKlQ?t=6m10s

github.com/opennars/opennars/wiki
sites.google.com/site/narswang/home
Природа очень мудра, поэтому существуют два вида изменений в синапсах: быстрый и медленный. В синапсах есть вариативность в их силы, определяемое количеством выделяемых порций нейромедиатора. А также большинство синапсов/дендритов выращены на «прозапас», и некоторые исследователи фиксировали использование лишь 14% синапсов нейроном. Дальше, если потребуется, синапсы будут выращены примерно за 0,5 — 2 часа.
Спасибо за ссылки, хотя проекты очень различны. Мне в работе еще далеко до игры модели в консоль, сначала нужно научить видеть и различать образы.
Думаю вам будет интересно как ведет себя живой нейрон.
Вот что происходит с дентритом / синапсом за 23 мин.



Источник
Спасибо, подобные видео вдохновляют
Есть неплохая серия статей на хабре, в которой описана интересная теория работы мозга: Логика мышления

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

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

В приме существуют два рефлекса, первый: рецептор, или рецепторный нейрон Q связан с моторным нейроном «1», второй: W > 2. Только при активации обоих в короткий промежуток времени происходит их объединение, причем если я воздействую на рецептор Q сначала потом на W, то эта последовательность запоминается и в дальнейшем при активации Q происходит ответ 1, потом 2, но не как не оборот. Хотя если повторять, потом, наоборот, запомнятся обе последовательности.

Спасибо, за ссылку на статью. Я начал работу над подобной, но опишу используемую здесь модель нейрона.
к сожалению, уже закончился интересный курс Computational Neuroscience, но возможно он будет еще повторятся
главная особенность в том, что в нем был описан плавный переход от естественных сетей к искусственным
Хронология разроботки
Видео названо «Модель работы нервной системы» чьей? В чем смысл этой работы и как в этом убедиться. Все слишком громко и нескромно, а главное не адекватно. Сами, возможно, обманываетесь и читателя вводите в заблуждение. Я бы убрал неправомерные претензии из статьи. Любое моделирование начинается с задачи, которую оно решает или помогает решить.
А у Вас что? В чем задача-то?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории