Уже в 1950 году Тьюринг и фон Нейман описали [1],[2] архитектуру, схожую с нашим мозгом, но, к сожалению, на тот момент ни нейрофизиологи не представляли, как вообще устроен мозг, ни физики не знали, как может выглядеть элементная база для такого компьютера. Это не значит, что нейрофизиологи сейчас знают ответы на все вопросы об устройстве мозга или физики могут предложить совершенную элементную базу, но я полагаю, что уже сейчас мы можем заняться разработкой первых таких компьютеров.

image

Вводная статья рассказывает о проблематике которую пытаются решить neuromorphic компьютеры.

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

Что нас интересует в устройстве мозга?


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

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

Нейрон


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

image

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

image

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

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

Spike-timing dependent plasticity


Я опущу детали о Long Term Potentiation и Long Term Depression, о калий-натриевых воротах, синаптических щелях, нейромедиаторах и тд. Я остановлюсь на двух моментах.

Нейроны, объединяясь, формируют очень сложные логические цепи, способные к обработке сложных сигналов. Одни нейроны способны проводить сигнал и являются сумматором, другие действуют регрессионно, являясь неким “тормозом” для проходящего сигнала. Объединяясь в сложные топологии, нейросеть может обрабатывать и запоминать сложные сигналы.
Основной задачей сети нейронов (как я ее себе понимаю) является формирование правил, которые позволяют этой сети самостоятельно обрабатывать входной сигнал. Для того, чтобы адаптироваться к входному сигналу, необходимо иметь этот самый механизм адаптации на физическом уровне. Нейронные связи способны изменяться посредством Spike Time Dependent Plasticity механизма [5]. Таким образом, нейроны способны изменять форму своей клетки, увеличивая или уменьшая форму или количество своих дендритов и аксонов и их синапсов. Стартом и управляющим процессом для такого изменения может послужить тот факт, что нейрон произвел импульс (spike) за ~20 мс до того, как такой импульс произвел нейрон, следующий (с точки зрения топологии все может быть сложнее) за ним в сети. Также нейрофизиологи обнаружили и обратный феномен: если нейрон (А) произвел импульс в течение <100 мс после того, как нейрон (Б), следующий за ним в сети, произвел импульс, то нейрон (А) будет уменьшать свою “связанность” с нейроном (Б).

image

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

Источники сигналов


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

  • Обработка и синтез звуков
  • Обработка и синтез человеческой речи
  • Обработка и синтез видео потоков
  • Обработка различных датчиков пространства
  • Задачи принятия решений, например, задачи ориентации в пространстве

Event driven computation


Наш глаз, как и глаз многих других организмов, устроен таким образом, что он не способен “видеть” и передавать в мозг целостную картинку единовременно. Фотоны света, попадая на зрительный нерв, вызывают изменение состояния этого самого нерва, после чего нерв передает дальше в мозг сигнал об уровне произошедших изменений. Так же нейроны, расположенные в глазу, отсеивают 90% информации, которые можно спрогнозировать с высокой степенью вероятности [4], например, это может быть информация об однородно окрашенных участках на сцене. Эффективнее передать контур некой плоскости и цвет, который ее окрашивает. Тем более, если этот объект находится на периферии зрительного центра. В том случае, если периферийное зрение увидит что-либо, что может представлять для нас интерес (например, движение), глаз пошлет сигнал, что надо бы посмотреть в эту точку более внимательно.

В neuromorphic архитектуре также используются сенсоры и предподготовленные данные, которые отражают изменение состояния, а не целостное представление о данных. Например, используются DVS камеры (Dynamic Vision Sensor), способные передавать видео поток, эквивалентный тысячи кадров в секунду. Также чувствительность таких камер и их энергопотребление на порядок выше стандартных [5]. Большим преимуществом таких камер полагают возможность работать с каждой частью сцены в отдельности.

image

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

Многим известный формат сжатия видео MPEG также базируется на идее формирования изменений между кадрами, далее уже идет обработка этих изменений, а не кадра в целом.

Кто и как решает поставленную задачу?


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

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

Программная реализация


Первыми попытками реализации neuromorphic архитектуры были программы на IBM совместимых компьютерах. Некоторые проекты, такие как NEST, PyNN, Nengo используются для моделирования отдельных участков мозга и сейчас. В сравнительных тестах производительность симуляторов ниже [7]. Хотя я полагаю, сравнение производительности различных аппаратных подходов в синтетических задачах некорректно. Однако сравнение энергоэффективности при решении одной и той же задачи можно считать корректным. В таких тестах neuromorphic архитектура показывает эффективность в 5 — 10 раз. [8]. Сейчас такие симуляторы перерождаются в API для работы с neuromorphic чипами.

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

IBM TrueNorth, BrainScales, Intel Loihi


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

Рассмотрим архитектуру чипа на примере ??IBM TrueNorth. Она построена из взаимосвязанной сети “примитивных” нейросинаптических ядер. Архитектура реализует соединения ядер ближнего радиуса с внутриядерной кросс-памятью напрямую и соединения дальнего радиуса через межядерную сеть передачи сигналов (spikes). TrueNorth полностью программируется с точки зрения, как «физиологии», так и «анатомии» чипа, то есть возможно программирование параметров нейрона, синаптической сетки (crossbar) и межядерных связей нейрон-аксон.
Сигнал “проходит” от аксонов к нейронам, управляемый бинарными синапсами. Каждый аксон соединен параллельно со всем нейронами в ядре.

image

Все синаптические связи индексированы, что позволяет обращаться к ним по их адресу. Работа сети регулируется дискретным шагом по времени. Каждый такт вычисляет состояние синапса: если значение синапса для конкретной пары аксон-нейрон не равно нулю, а аксон активен, то нейрон обновляет свое состояние с помощью синаптического веса, соответствующего типу аксона. Затем каждый нейрон продуцирует результирующую активность. Нейрон, состояние которого превышает пороговое значение, продуцирует всплеск (spike). В ядре существует генератор “шума” (генератор псевдослучайных чисел), он может добавлять “шум” к порогам пиков и стохастически открывать синапсы. Буфер удерживает входящие пики для отложенной доставки.

Данный подход позволяет полностью распределить “знание” о принципах обработки сигнала непосредственно на всем чипе одновременно, не разделяя данные и исполнительный блок.

Заключение


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

  • Масштабируемость
  • Параллелизм вычислений
  • Энергоэффективность
  • Способность обрабатывать последовательности и непрерывные сигналы
  • Высокий уровень адаптивности к сигналу

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

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

Оригинал

[1] J. Von Neumann and R. Kurzweil, The computer and the brain. Yale University Press, 2012.
[2] A. M. Turing, “Computing machinery and intelligence,” Mind, vol. 59, no. 236, pp. 433–460, 1950.
[3] nanoCMOS Device, Circuit and System Simulations
[4] Computing complex visual features with retinal spike times Gutig R, Gollisch T, Sompolinsky H, Meister M (2013)
[5] Industrial DVS Design; Key Features and Applications
[6] Spike-shape dependence of the spike-timing dependent synaptic plasticity in ferroelectric-tunnel-junction synapses
[7] Benchmarking Keyword Spotting Efficiency on Neuromorphic Hardware
[8] Advancing neuromorphic computing From promise to Competitive technology.