Нейроморфные технологии // Юлия Сандамирская

Нейроморфные вычисления: теория, аппаратная реализация и коммерческие приложения

294 0
Посмотреть на
Что такое нейроморфный процессор и чем он отличается от обычного? За счет чего можно реализовать пластичность и многозадачность в нейроформных процессорах, и как все это реализовано в новом процессоре Intel Loihi 2? Из этой статьи мы узнаем, как работает этот процессор, чем он отличается от предыдущей версии и какие задачи можно будет решать в будущем.

Меня зовут Юлия Сандамирская, я руковожу научной группой в лаборатории нейроморфных вычислений компании Intel. Это одно из подразделений Intel Labs, которое изучает технологии будущего с горизонтом в несколько лет.

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

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

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

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

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

Что такое нейроморфный процессор и чем он отличается от обычного

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

  1. Асинхронная обработка информации. На этих процессорах нет задачи определенного ритма. Они асинхронные. Если в этом процессоре ничего не происходит, он автоматически потребляет меньше энергии, потому что в нем нет часов, которые постоянно отсчитывают шаг, на котором должна произойти какая-то операция.
  2. Эффективная реализация массивно-параллельных вычислений. Это достигается за счет размещения большого количества ячеек памяти локально в каждом ядре процессора. Кроме того, такой процессор заточен для определенной нейрональной модели: у него ограниченная точность чисел, это повышает его эффективность — скорость обработки и энергосбережение.
  3. Пластичность. Те связи, которые мы программируем между нейронами, могут меняться во время работы этого процессора на основании так называемых правил обучения, которые тоже можно запрограммировать.

Intel разработал нейроморфный процессор на основе обычных цифровых технологий. Его главная особенность заключается в том, что он многоядерный: на одном чипе может быть 128 ядер, и между собой они соединены асинхронной сетью. Архитектура такого процессора достаточна для того, чтобы выполнять вычисления, необходимые для симуляции спайковой нейронной сети, то есть нейроны на любом из этих ядер могут быстро и эффективно обмениваться сигналами — спайками. Основное ноу-хау — в том, чтобы поддерживать высокий трафик таких спайковых событий и быстро их обсчитывать.

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

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

На данный момент все эти технологии являются исследовательскими и в индустрии применения пока не нашли.

За счет чего можно реализовать пластичность и многозадачность в нейроморфных процессорах

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

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

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

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

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

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

Чем процессор Loihi 2 отличается от предыдущей версии

Изменилось несколько вещей. В процессоре Loihi 2 число доступных нейронов выросло со 128 тыс. до 1 млн. Объем памяти на ядро слегка уменьшился — с 208 до 192 Кбайт, но теперь банки памяти можно более гибко распределять между нейронами и синапсами, а компрессия позволяет более эффективно использовать имеющийся объем.

Кроме того, произошли следующие изменения. Во-первых, Loihi 2 позволяет реализовать более гибкое программирование нейронной модели. Классические нейроморфные системы построены на модели leaky integrate-and-fire (LIF). Ее суть в том, что есть нейрон, который интегрирует входящие спайки, поддерживая состояние, отражающее сумму всех входящих спайков, и во времени эта сумма уменьшается по экспоненте. Таким образом, нейрон может отслеживать время.

Но мы обнаружили, что можно использовать и другие модели, которые не имеют отношения к биологическим нейронам. Например, сигма-дельта-модуляцию,или resonate-and-fire neuron model. В таком случае нейрон становится просто вычислительным блоком.

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

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

В Loihi 2 спайк небинарный, а может иметь значение либо 8 бит, либо 16. И мы просто позволяем эти значения передать со спайком. В нашем цифровом представлении сигнала на это не требуется много дополнительной энергии.

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

Какие задачи можно будет решать с помощью Loihi в будущем

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

Этот процесс включает в себя три ступени:

  1. Обсуждение идеи и того, насколько она многообещающая.
  2. Доказательство применимости технологии — proof of concept.
  3. Передача технологии в бизнес-юнит, где дальше она развивается на конкретном продукте.

Подробнее о том, как проходят исследования в Intel и что такое Intel Neuromorphic Research Community, мы говорим на лекции, которая размещена выше в статье.

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

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

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

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

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

Что еще почитать и посмотреть о нейроморфных процессорах и вычислениях

  • Раздел на сайте Intel, посвященный нейроморфным вычислениям.
  • Образовательный раздел на сайте NEUROTECH.
  • Материалы NICE — Neuro Inspired Computational Elements Conference.
  • Материалы семинара по компьютерному зрению.

Будь первым, кто оставит комментарий

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

    ПОДПИШИСЬ НА НАШУ ТЕХНО-РАССЫЛКУ
    ПОДПИШИСЬ
    НА НАШУ ТЕХНО-РАССЫЛКУ