Cверточные нейросети научились работать на нейроморфных чипах

Инженеры исследовательского отдела компании IBM разработали новую архитектуру сверточных нейросетей, которая подходит для работы на нейроморфных чипах — кремниевых устройствах, которые имитируют работу человеческого мозга. Тестирование показало, что новые алгоритмы не только справляются с задачами классификации изображений и звуков на уровне лучших современных аналогов, но и обладают высокой энергоэффективностью. Описание работы опубликовано в журнале Proceedings of National Academy of Sciences.

В 2014 году компания IBM представила первый в мире серийный микропроцессор, построенный по архитектуре, радикально отличающейся от фон-неймановской. Этот процессор, TrueNorth, создатели называют нейроморфным, то есть напоминающим (до определенной степени) работу настоящих нейронов животных. Хотя TrueNorth не первый нейроморфный микрочип, на сегодняшний день его можно считать одним из самых продвинутых и сложных подобных устройств.

TrueNorth в его текущей версии состоит из 4096 идентичных вычислительных ядер, расположенных на одной кремниевой пластине. Каждое ядро представляет собой что-то вроде таблицы 256×256, где колонки являются нейронами, а строки — их ответвлениями, на которые подаются данные. Каждый нейрон может подать сигнал на одну строку в каждом ядре этого чипа. Синапсами в такой системе являются пересечения строк и столбцов. Причем, как и в мозге, «сила» синапсов используется в качестве локального хранилища информации и меняется при обучении. Связь между нейронами осуществляется за счет спайков (импульсов).

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

В качестве объекта для адаптации ученые выбрали один из самых успешных в практическом плане алгоритмов, глубокую сверточную нейросеть. Сверточные нейросети представляют собой отдельный класс нейросетей, которые особенно хорошо справляются с распознаванием изображений, звуков и другими подобными задачами. Если в обычных полносвязных нейросетях каждый нейрон предыдущего слоя связан с каждым нейроном следующего, то в сверточных нейросетях переход от уровня к уровню проводится через операцию свертки. В ходе этой операции небольшая матрица (ядро свертки) проходится по предыдущему слою. Ядро свертки можно представить себе как небольшое «окошко», которое двигается по двумерному изображению (на входной слой обычно как раз изображение и подается), в то время как информация, видимая в этом «окошке», используется для построения следующего двумерного слоя. Сила такого типа нейросетей заключается в возможности наращивания довольно большого числа слоев без порождения излишне сложной вычислительной задачи. При этом для вычленения высокоабстрактных свойств в данных обычно неизбежно приходится использовать большое количество слоев, но в случае классического перцептрона наращивание слоев ведет к быстрому замедлению работы.

Адаптированный для нейроморфного чипа алгоритм, описанный в статье, существенно отличается от наиболее популярных сейчас сверточных нейросетей. Например, в нем используется не 32-битный, а бинарный (то есть имеющий всего два состояния, 1 или 0), нейрон. Синапс в этой системе тринарный, то есть может иметь три состояния: -1, 0 и 1. Кроме того, вычисления в TrueNorth происходят по типу спайковых нейросетей, то есть каждый нейрон интегрирует сигналы от других нейронов, приходящие в разное время, и срабатывает только тогда, когда интеграция входящих сигналов этого требует. 

Несмотря на эти отличия, сверточная нейросеть, работающая на TrueNorth, может успешно обучаться классическим методом обратного распространения ошибки. Кроме того, работу нейросети можно распараллеливать на несколько отдельных чипов — в исследовании использовались от половины до восьми устройств. Эффективность работы алгоритма на чипе ученые оценивали по стандартным задачам вроде распознавания изображений в готовых датасетах. Например, на базе изображений CIFAR10 лучшие существующие алгоритмы (это как раз глубокая сверточная нейросеть) дают 91,73 процента правильных ответов, а восемь параллельно работающих чипов TrueNorth — 89,32 процента. В некоторых задачах алгоритм на нейроморфном чипе работает даже лучше.

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

Интересно, что известный специалист по искусственному интеллекту, создатель архитектуры сверточных нейросетей Ян Лекун, очень скептично отзывался о TrueNorth после его презентации. Главным объектом критики Лекуна было именно применение в микрочипе спайковой архитектуры, которая, по его словам, «никогда еще не демонстрировала точности, сколько нибудь близкой к лучшим на сегодняшний день образцам. Например, для таких задач как распознавание объектов в базах изображений».

Александр Ершов