All posts in: Neural networks

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

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

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

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

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

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

Нейрон

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

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

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

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

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

Spike-timing dependent plasticity

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

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

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

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

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

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

Event driven computation

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

Изображение 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) и межядерных связей нейрон-аксон. 

Сигнал “проходит” от аксонов к нейронам, управляемый бинарными синапсами. Каждый аксон соединен параллельно со всем нейронами в ядре.

Все синаптические связи индексированы, что позволяет обращаться к ним по их адресу. Работа сети регулируется дискретным шагом по времени. Каждый такт вычисляет состояние синапса: если значение синапса для конкретной пары аксон-нейрон не равно нулю, а аксон активен, то нейрон обновляет свое состояние с помощью синаптического веса, соответствующего типу аксона. Затем каждый нейрон продуцирует результирующую активность. Нейрон, состояние которого превышает пороговое значение, продуцирует всплеск (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, https://cnx.org/contents/hMLR8R0g@1/nanoCMOS-Device-Circuit-and-System-Simulations

[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] Types of neurons https://qbi.uq.edu.au/brain/brain-anatomy/types-neurons

[4] Computing complex visual features with retinal spike times Gütig R, Gollisch T, Sompolinsky H, Meister M (2013)

[5] Industrial DVS Design; Key Features and Applications http://rpg.ifi.uzh.ch/docs/CVPR19workshop/CVPRW19_Eric_Ryu_Samsung.pdf

[6] Spike-shape dependence of the spike-timing dependent synaptic plasticity in ferroelectric-tunnel-junction synapses https://www.nature.com/articles/s41598-019-54215-w/

[7] Benchmarking Keyword Spotting Efficiency on Neuromorphic Hardware https://arxiv.org/abs/1812.01739

[8] Advancing neuromorphic computing From promise to Competitive technology. https://niceworkshop.org/wp-content/uploads/2019/04/NICE-2019-DAY-2a-Mike-Davies.pdf

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

Дисклеймер

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

Классическая архитектура фон Неймана.

“Узкое горлышко” архитектуры фон Неймана.

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

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

Физические ограничения материалов.

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

Реалии представляются таким образом, что этот закон начинает испытывать давление со стороны “законов физики микромира”.

Рис. 2. Уменьшение размеров транзистора приводит к ошибкам в его производстве.

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

Отказоустойчивость и брак в производстве.

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

Это сделано для того, чтоб в том случае, если в каком-то блоке выйдет из строя большое количество процессоров из-за брака во время производства, этот блок можно было отключить, а процессор целиком остался в рабочем состоянии. Как вы понимаете, производство процессоров очень дорогое, и одна из причин этого большой процент брака. Процент брака кристаллов для 28-ядерных процессоров Intel Xeon составляет до 65 %. Если у конечного процессора не работает один из блоков памяти или одно из ядер не проходит TDP тест, его отключают, а процессор упаковывают в коробку “младшей модели”.

Подход хороший, но он требует отключения очень больших блоков: в случае отказа нескольких транзисторов, которых в одном ядре может быть семьсот миллионов. То есть отказ 0.000000001% транзисторов приводит к потере 10% и более производительности устройства.

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

Потребление электроэнергии и размер суперкомпьютеров.

В современном мире, когда мобильный телефон обладает вычислительными способностями компьютера пятилетней давности и при этом работает от аккумулятора, нам кажется, что мы почти достигли предела в уменьшении потребления энергии компьютерами. Но, если мы сравним вычислительные способности суперкомпьютера IBM Summit, его размеры и потребляемые им объемы энергии с мозгом мыши, окажется, что он неимоверно большой и очень неэффективный.

IBM Power System AC922, IBM POWER9 22C 3.07GHz, NVIDIA Volta GV100, Dual-rail Mellanox EDR InfiniBand, 2.41 million cores, 148.6 petaflops
  • Пиковая потребляемая мощность: 13 000 000 000 W
  • Размеры: 4,608 nodes  * 0.2 m^3 = 920 m^3
  • Мозг мыши способен обрабатывать куда более сложные задачи при потреблении всего 1-5 ватт.

Online learning and continuous-flow

Тут хочется сказать больше об алгоритмах, нежели об архитектуре, хотя в данном контексте алгоритмы продиктованы архитектурой. Современный компьютер хорошо справляется с дискретными данными, когда есть, пускай и большое количество, но все же порционных, конечных, желательно целочисленных данных, тут он может себя проявить очень хорошо. Но вот, когда речь заходит о последовательностях, непрерывности, бесконечно малых или бесконечно больших значениях, тут мы пытаемся найти некое приближение. В результате мы интерпретируем наши данные в последовательность дискретных кадров, дробим, разделяем и обрабатываем каждый фрейм как нечто статическое и конечное.
Да, сейчас существуют различные подходы bi-directional soft attention (см. BERT ) для того, чтобы связывать эти самые кадры в работе с языковыми моделями. Также современные подходы машинного обучения лишены возможности обучаться непосредственно в процессе решения поставленной задачи. Это все еще две различные задачи.

Параллелизм и масштабируемость.

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

Neuromorphic computing simulates analog processes of the human brain. Digital (more properly binary) computing can *simulate* but not *duplicate* analog processes. Various scientists are working to integrate actual analog computing in binary systems. See link below.

Apart from the inherent dichotomy between analog and digital, we tend to have a limited view of the “brain.” We can’t divorce its biological host. The brain developed and always remains an integrated, inseparable part of the physical body. It is not a “thing” but a process.

Perhaps most importantly, only humans have consciousness. A brain without consciousness is, well, brain dead. We do not yet know the “architecture” of consciousness. We do know we all have intellect, which helps us to survive and to reason. We also have an identity created by our upbringing, cultural environment, etc., and we have a “database”, the knowledge we accumulate during our life and which is strictly personal and shaped by culture. The brain is more that a binary calculator.

Designing a computing system that makes logical decisions is relatively easy. An example is IBMs Big Blue beating the world chess champion. But only biological entities can have a brain that can develop its own consciousness – and subconsciousness.

The article below addresses some of these issues. It is followed by a list of resources.


A few years ago, ML algorithms looked strange and difficult for an average software engineer. ML is growing really fast. Nowadays it is easy to improve production solution by some Artificial Intelligence. You don’t need to have twenty people in your Data Scientist department if you want to extend you service with smart analytics or Artificial Intelligence.
I will show you how to apply smart search in your service.
Currently, our service is a place, where each user can share their articles, documents, videos, calendar events, tasks and etc. So we have a huge database with users’ content. Now it is a problem for a user to search a certain document or event. All items have tags and full text search. But what about video and audio files?

Read More