Комментарии 49
Прикольно, ИМХО верной дорогой идёте товарищи, хотя есть ещё масса биологических нюансов. Масса эта столь велика что современные, публичные, модели спайковых нейронов, лишь с виду ближе к оригиналу чем горы линейных регрессоров ;-) которые на вид вообще ничего общего не имеют с оным...
...однако именно вот это-вот понимание того, что понимания то ещё и нет, отличает истинный дата-сайенс от карго-культа дата-сатанистов!
И, вопрос, я конечно в курсе что росатом, это типа круто, стратегически важно, и у вас наверняка должны-бы, быть сведенья о делах минувших дней, преданьях старины глубокой, и какой-нибудь хитрючий способ перехода между ... разными "способами вычисления", ведь GPU для спайковых сетей в лоб, не фонтан, а хитрость как минимум не даст баловаться с моделью нейрона.
А xml ку вашу, на вид можно попробовать в какой-нибудь HDL "от транслировать", ещё не пробовали?
Кластер FPGA вместо кластера GPU - это, конечно круто. Но ещё интереснее была бы возможность динамически перепрограммировать саму FPGA прямо в процессе обучения ИНС.
Ну а куда особо оттранслируешь? Пока нельзя сказать, что вот пошел в магазин и купил плату с нейрочипами. Но все еще будет :)
Если в поле зрения камеры темно, сигналов нет, то сеть не выдаст никаких команд — без подпитки извне ее нейроны не сгенерируют спайков. Кстати, в этом смысле мозг человека демонстрирует схожее поведение — известны опыты по сенсорной депривации, когда человека лишали поступления сигналов от всех органов чувств, и он практически сразу засыпал.Сенсорная депривация приводит к угнетению нервной системы, и как следствие возрастанию спонтантанной активности, которая проявляется в виде галлюциногенных состояний. Длительная и глубокая сенсорная депривация может приводить к деструктивным последствиям для психики.
Вообще даже импульсные сети, не смотря на их динамизм и асинхронность, пока не демонстрируют поведение (активности) биологических сетей, не говоря уже о статических решениях используемых в обычных сетях. Мозг обладает активирующей системой, которая также регулирует ритмы бодрствования/сна, см. этот комент с пояснениями. Там же ниже приведена ссылка на интересное исследовательскую разработку, в котором импульсная сеть для успешного обучения требует состояний, которое условно можно считать аналогом сна) и процесса консолидации памяти. Весьма интересный поворот, свидетельствующий, что нейроморфные решения на правильном пути моделирования биологических прототипов. Нужно это или нет, другой вопрос. Для исследований мозга нужно, для практических приложений возможно нет.
Интересно было узнать, что в стране кто-то занимается подобной тематикой. Спасибо за статью. Успехов вам!
в ИНС нейроны посылают друг другу не числа
Допустим нейроны обмениваются спайками, и спайк - это не число, хорошо. Спайк - это лишь способ заставить нейрон начать пересчитывать своё внутреннее состояние.
Ну, послали мы сигнал нейрону на пересчёт состояния, а в нейроне-то всё равно числа. Чем оно ближе к мозгу стало, к которому вы апеллируете!?
Ваша претензия к числам как к средству обмена информацией между нейронами основана лишь на слабой "биологичности", а также желание повысить энергоэффективность сети?
Или вы видите в этом какие более глубокие проблемы? Ну, не знаю, например, то что чисел в природе в принципе нет?
Ну, послали мы сигнал нейрону на пересчёт состояния, а в нейроне-то всё равно числа. Чем оно ближе к мозгу стало, к которому вы апеллируете!?В наиболее полном объеме импульсный режим с повышенной энергоэффективностью работает на специальных нейроморфных процессорах. Как пример модели нейронной пластичности на основе мемристоров. Но пока это все на стадии разработок и тестирования. В описанном в статье варианте, и в вашем видимо, подобного оборудования нет. Использование кластеров GPU улучшает производительность сети, но не выходит за пределы обычного вычислительного подхода. Думаю написанное для вас не новость, поэтому несколько удивили ваши вопросы. Впрочем автор статьи может дать свой ответ, если сочтет нужным.
Ваша претензия к числам как к средству обмена информацией между нейронами основана лишь на слабой «биологичности», а также желание повысить энергоэффективность сети?
Или вы видите в этом какие более глубокие проблемы? Ну, не знаю, например, то что чисел в природе в принципе нет?В биологических синапсах чисел точно нет) Вообще формальная модель нейронов, как взвешенного по входам сумматора с некоторой функцией активации весьма примитивная модель, хотя и сохраняющая основные черты биологических. Однако в действительности их свойства, тех же пиромидальных нейронов, моделируются целыми сетями ИНС, см. 1, 2, 3, 4.
Ну поскольку мы моделируем на компьютере - там числа, кремний и ни капельки глутамата :)
Это же модель. Когда мы на бумаге пишем решения уравнения Эйнштейна, описывающие черную дыру - близко это к черной дыре или не близко? Эта бумага даже карандаш в себя не затянет... Моделирование - метод науки.
А что числе в природе нет (как и колеса) - это похоже правда. Если выразиться строже, то нигде в природе не видно реализации формальной арифметики.
Есть совсем не числовые (аналоговые) подходы к моделированию нейронов - BrainScaleS например. Ни и там обмен спайками и пластичность - цифровые процессы. Это естественно - с аналоговыми вещами очень трудно.... Я не вижу пока в этом смысла, если можно делать сколь угодно реалистичные числовые модели (Hodgkin - Hucksley +). Только надо ли...
Ну да, чисел, на самом деле, и в компьютере нет)
Как мне кажется, точно, есть еще один недооценённый подход. Когда нейрон представляется конечным автоматом. Тут ни символьных вычислений нет, ни чисел, ни противоречий с природой.
Нейрон живет в непрерывном времени, сам он непрерывный и стохастичный. Какой же он конечный автомат? У него нет никаких различимых дискретных состояний...
Как представить нейрон конечным автоматом есть стандартный подход. Задать множество состояний для связей, множество состояний для нейрона, правила перехода между всеми этими состояниями.
в непрерывном времени... он непрерывный... нет никаких различимых дискретных состояний...
Интересно. А какие недискретные состояния у нейрона есть? У нейрона импульсной нейронной сети, в смысле. И "непрерывный нейрон" - это вообще как?) Про вашу модель нейрона или про реальный нейрон?
Стандартный? Ни разу такого подхода не встречал - ну по крайней мере если об импульсных нейронах говорить. Вы не путаете? Обычно и состояние нейрона и состояния синапсов не дискретны, они описываются вещественными числами. Мембранный потенциал, разные мембранные проводимости, синаптический вес - это все непрерывные величины. Какие между ними переходы?
Парадигма RL звучит только на слух хорошо. Якобы:
Самый реалистичный, имеющий отношение к жизни вариант обучения, то, как учимся мы сами
Как только попытаться начать её реализовывать с нуля в своих разработках сразу выявляются пара неразрешимых противоречий с биологией.
Нарушается принцип локальности обучения. RL из внешней среды, по специальным каналам (REW, PUN), лезет корректировать параметры узлов и связей.
RL, принципиально, состоит из последовательных шагов. Сначала работает сеть, далее идёт взаимодействие со средой, считаются REW и PUN, через систему обратных связей корректируются параметры сети. Вы такое в биологии видели? Все связи в мозге "прямые" и нет никакого "заворачивания" в обратном направлении! Точнее, допускаю, связи могут быть "обратными", но лишь в ближайшем окружении нейрона.
Тоже пытался делать RL в надежде получить "самый биологичный подход", в итоге отказался от него усилием воли. Ибо тупик. Потратил немеряно времени.
Вот и я о том-же, "лишь с виду ближе к оригиналу чем горы линейных регрессоров ;-)", хотя и не только.
Некоторым аналогом физического RL в жизни являются рефлекторные дуги, хотя есть мнение что это хардкод, тк люди познакомились с уже сформированными дугами, но мы то знаем что этому предшествовал некий процесс...
- ну а в чем здесь противоречие с биологией? Мы по специальным каналам получаем боль и (с некоторой натяжкой) удовольствие
2 - а почему Вы считаете эти шаги последовательными? все это идет непрерывно и параллельно. Сеть непрерывно "работает", ее сигналы непрерывно интерпретируются эффекторами, иногда (асинхронно) поступают наказания/поощрения, которые что-то в сети меняют (пока она сама работает).
В чем тупик?
Сигналы заходят в мозг и выходят из него без каких-либо ярлыков. Нет сигналов "плохо", нет сигналов "хорошо" и т.д. Обучение чему-либо не всегда ж должно подкрепляться извне - что вам мешает запомнить новое слово без удара кнутом? Расскажите пжл подробнее про "каналы" в мозгу, по которым мы получаем боль и удовольствие, органы, к которым адресуются эти каналы, и, что важнее, как результат действия этих органов находят ту группу нейронов, которую надо обучить? В своей реализации вы вправе протянуть провода хоть к каждому нейрону, пока оставим это, расскажите про биологический прототип RL.
Шаги эти последовательные хотя бы потому, что награда за совершенное действие не может появиться раньше его интерпретации средой. А воздействие на среду не может появиться раньше прохода данных по сети. Я про элементарный акт в RL.
Операции чтения, изменения и записи для "параметров" мозга неразделимы, проходят за единый такт. Мои попытки притянуть сюда RL зашли в тупик.
Так и в нашем подходе нет никаких ярлыков. Спайк наказания сам по себе ни чем не отличается от любого сенсорного спайка. И подкрепляться все тоже не должно (это редкая вещь - кнут и пряник). В эффективной RL системе должно быть много unsupervised learning. Мы этого придерживаемся.
А про мозг и эти каналы я бы Вам рекомендовал обратиться нейрофизиологам - они гораздо обстоятельнее меня обо всем этом расскажут.Конечно, пока нет действия, нет и награды - модель, не модель - тут все равно - это не тупик а логика бытия. Про параллельность я говорил в том смысле, что могут параллельно протекать разные этапы этого процесса - например, быстрая первичная обработка сенсорной информации и медленные процессы пластичности, фиксирующие предыдущий опыт. И мне непонятно слово "такт" для мозга. Никто никаких тактов в мозге не наблюдал, равно как никто в нем не наблюдал процессов чтения и записи его параметров. Впрочем и самих этих параметров.... Если Вы веса синаптических связей имеете в виду - так они никуда не читаются и не записываются....
Спайки одинаковые, не сомневаюсь. Ярлыки, подозреваю, вы вешаете на каналы.
Мы по специальным каналам получаем боль и (с некоторой натяжкой) удовольствие
Отсылаете к нейрофизиологам... А вы к ним, получается, не ходили, не консультировались, перед тем как аналогии между мозгом и вашими разработками проводить?) Вопрос важный, еще раз прошу вас пояснить, как по-вашему устроен процесс RL в мозгу? Какие отделы мозга задействованы? Какие "каналы", с какими ярлыками на них? Как у мозга получается адресоваться к конкретной группе нейронов, которую надо обучить?
Хорошо. Такт - это уже я про конкретную реализацию. У вас асинхронная модель, тут про такты неуместно говорить. Но могут быть и "тактируемые" модели, с единым дискретным временем у узлов (нейронов) и мозга (сети).
Ну да, каналы как и в мозгу имеют разный смысл. По одним мы видим, по другим чувствуем, что нам холодно... А как иначе?
К физиологам я конечно ходил. Но спрашивать такие вещи лучше у них.Могут быть - вот обычные слоистые сети синхронны - пока первый слой не посчитается, второй ждет. Но мы то как раз хотим от этого уйти. Зачем нам синхронность и такты?
Т.е. на нервном волокне у нас есть метки - слух, зрение, боль, удовольствие? А, хотя боль с удовольствием вы вообще отдельно интерпретируете, вычеркиваем)
Как иначе - я уже говорил: сигналы в мозг заходят и выходят без ярлыков, полная абстракция от "смысла" (кстати, как удачно вы его сюда ввернули).
Извините, мне не очень понятно это "без ярлыков". Если говорить о реальном мозге, ярлыки есть - как я уже говорил, про зрение и температуру....
С преобразованием рецептором (палочки/колбочки, терморецепторы..) физического воздействия в нервный импульс (спайк), информация о виде воздействия стирается.
Информация о виде воздействия - это и есть "ярлыки". Вот они-то в мозг и не заходят, остаются до рецепторов. Это же очевидно, разве нет?
бит, записанный на флешке и на HD - это просто бит
на чем он записан, для вычислений не важно
если пришло что-то по нерву от уха - это был звук
если пришло от глаза - это был свет
это ярлыки?
я совсем не понимаю, что Вы хотите сказать....
Если что-то пришло по нерву от уха, это был спайк. Не "Спайк звука" и не "Спайк, который пришел по каналу от уха". А просто Спайк.
По нервам звуки не ходят. Информация о виде физического воздействия по нервам тоже не ходит. Вы ж это прекрасно понимаете, мне странно, что мы это вообще обсуждаем! Звуки остались до уха. В мозге нейрон, получивший спайк, не может никоим образом знать, что это был спайк с уха. Просто Спайк.
Возьмите любой нейрон в мозге, любой его синапс, по которому прошел Спайк - какой это был спайк, наказания, удовольствия, звука?
Это не верно.
Спайк, который пришел по каналу от уха - это спайк, который пришел по каналу от уха.
Он обрабатывается по другому, чем спайк, пришедший по каналу от глаза. Его воздействие на процессы обработки информации в мозге совсем другое.
Расскажите пжл, чем отличаются спайки от уха от спайков от глаза по способу воздействия на процессы обработки информации в мозге?
Используете ли вы эту "особенность" в своих разработках нейроморфных сетей?
Конечно не использую.
Я не занимаюсь моделированием мозга.
И как я уже сказал - за всей конкретикой отсылаю к нейрофизиологам.
Хм, по ощущениям, именно мозг вы и моделируете, у вас в статье через слово "мозг".
Я понял, хорошо. Противоречия с биологией в части реализации локальных правил обучения нейронов и других проблем с RL, вы разрешаете тем, что не моделируете мозг.
В мозге нет нейронов, обрабатывающих спайки и от уха и от глаза. Это совсем разные нейроны.И совсем разные нейронные структуры.
О каких нейронных структурах речь? И чем различаются в них нейроны? (Только не шлите к нейрофизиологам пжл в этот раз)
нет - именно к ним...
если сапоги будет тачать пирожник...
пироги печь сапожник...
короче - все это в русской классике :)
Возможно, различие только в расположении. С минимальной связью между этими потоками.
Как бы Вы оценили Ваш подход и результаты на фоне имеющихся мировых достижений, в частности Intel Loihi 2 ?
Ну это немного разные плоскости. Я развиваю теоретические модели и их программную реализацию. Лоихи - это возможный субстрат для воплощения всего этого. Поэтому тут трудно сравнивать. Лоихи сам по себе не является моделью нейрона или ИНС - это средство эффективной эмуляции последних. Мои модели "не влезали" в Лоихи 1. В Лоихи 2, думаю, "влезут", но я не пробовал.
У нас есть отечественный процессор AltAI, до лоихи ему пока далеко, но этот отрыв не безнадежен.
Если говорить о программных эмуляторах, то созданный мной ArNI-X очень мало похож на существующие аналоги. Существующие эмуляторы в основном имеют питоновский интерфейс. Я решил по другому. В 95% более-менее типовых случаев у меня сеть (ее структура) описывается декларативно на XML-based языке. Для оставшихся совсем кастомных случаев я предоставляю API на С++. Это позволяет удобно делать любые структуры, например конструировать сети из блоков - других сетей. Этот подход мне представляется более удобным и гибким. Далеко не все аналоги столь же эффективно реализованы на гпу и гпу-кластерах. Цена этого (и некоторый минус) - набор реализованных моделей нейронов и синапсов. У меня реализовано некоторое довольно многопараметрическое обобщение модели LIFAT. Это если без программирования. Чтобы реализовать, например, Ижикевича, надо дополнять коды эмулятора. Похожая ситуация и с моделью пластичности. Но в оправдание скажу, что, как ни странно, во всех моих исследованиях этих моделей вполне хватало.
А вообще мировые достижения в области импульсных сетей, как Вы сами, наверное, знаете, весьма скромны, так что мне кажется на их фоне наши исследования весьма передовыми выглядят. Например, никто еще не сделал ЧИСТО спайковую реализацию reinforcement learning (чтобы вообще не было никакой внесетевой механики - только сеть) - даже model-free, не говоря уже о model-based. Model-free мы сделали. Сейчас занимаемся model-based. Хотя это сложнейшая задача, надеемся в этом году продемонстрировать. А ясно же, что это имеет прямое отношение к робототехнике и ко всему. Т.е. нет особо отставания. Нам бы рабочих рук побольше (и голов :) ) - и опередили бы - по крайней мере, на некоторых направлениях....
Добрый день! Прошу посоветовать полезные книги на русском языке по машинному обучению человеку в подарок. Кратко, человек может в Phyton и намерен вкатиться в эти ваши нейронные сети.
Слежу за нейросетями давно и никак не мог понять как они устроены и где у них сигналы-спайки. После вашей статьи понял, что я и не должен был их понять, т.к. это были другие сети, а я пытался в них усмотреть ИНС.
Тоже пробую разрабатывать подобные сети, т.к. вижу в них новый способ создавать программы, альтернативу текстовому программированию.
Я не увидел ответа на вопрос в названии темы, не могли бы вы объяснить, зачем это нужно Росатому, какие выгоды ваша деятельность ему уже принесла или ожидается в ближайшие годы.
С аббревиатурой неудачно получилось. Классически ИНС - это искусственные нейронные сети. Использовать это же сокращение для импульсных нейронных сетей, ошибочно.
Зачем мы моделируем импульсные нейронные сети и с помощью чего это делаем