Два исследователя из Университета Пенсильвании, используя специально разработанный ими низкоуровневый код нейронной машины, создали нейронную сеть, которая может выполнять программу так же, как и обычный компьютер. Они показали, что эта искусственная сеть может ускорить скорость вычислений, играть в Pong или даже запустить другой искусственный интеллект.
Нейронные сети предназначены для имитации функционирования человеческого мозга и способны решать общие проблемы. Они состоят из нескольких слоев искусственных нейронов (узлов), связанных друг с другом; каждому узлу присваивается определенный вес и пороговое значение: если выход из одного узла превышает пороговое значение, данные передаются на следующий уровень и так далее. Эти искусственные нейронные сети должны быть обучены тому, чтобы работать все лучше и лучше.
Поэтому нейронная сеть, управляемая искусственным интеллектом, должна быть обучена выполнению задачи, для которой она была разработана. Обычно нейронную сеть, разработанную для классификации изображений, необходимо научить распознавать и различать разные закономерности из тысяч примеров: это и есть машинное обучение. В этом случае примеры, передаваемые в сеть, аннотируются, что известно как "контролируемое" обучение. Джейсон Ким и Дэни Бассетт из Университета Пенсильвании предлагают новый подход, при котором нейронная сеть обучается выполнять код, как обычный компьютер.
Искусственный интеллект, обученный имитировать в своей нейронной сети логические схемы обычного компьютера, теоретически мог бы выполнять код внутри нее и тем самым ускорять некоторые вычисления. "Однако отсутствие конкретного низкоуровневого языка программирования для нейронных сетей не позволяет нам использовать все преимущества нейронных вычислений", — отмечают два исследователя в препринте своей статьи.
Поэтому Джейсон Ким и Дэни Бассетт задались целью разработать новый язык программирования, чтобы добавить к нейронной сети полностью распределенную реализацию программной виртуализации и компьютерных логических схем.
"Мы преодолеваем разрыв между тем как мы представляем себе и реализуем нейронные компьютеры и кремниевые компьютеры", — объясняют они.
Их язык основан на резервуарных вычислениях - вычислительной структуре, полученной из теории рекуррентных нейронных сетей (нейронных сетей с повторяющимися связями). Два исследователя начали с расчета влияния каждого нейрона, чтобы создать очень простую нейронную сеть, способную выполнять простые задачи, такие как сложение. Затем они соединили несколько таких сетей, чтобы они могли выполнять более сложные операции, имитируя поведение логических ворот - самых простых операций, которые могут быть выполнены с битом, но которые при объединении вместе (известные как логические схемы) могут выполнять гораздо более сложные операции.
Таким образом, полученная сеть способна делать все то, что может делать обычный компьютер. Исследователи использовали его для запуска другой виртуальной нейронной сети и версии игры Pong. Еще более быстрые сети благодаря нейроморфным вычислениям
"Разложив внутреннее представление и динамику резервуара на символическую основу его входов, мы определяем низкоуровневый код нейронной машины, который мы используем для программирования резервуара для решения сложных уравнений и хранения хаотических динамических систем в виде памяти с произвольным доступом", — резюмируют два эксперта.
Эта нейронная сеть также может значительно упростить разделение массивных вычислительных задач: обычно они распределяются по нескольким процессорам для увеличения скорости вычислений, но это также требует гораздо большей мощности.
Кроме того, нейроморфные вычисления могут позволить этим виртуальным сетям работать быстрее. В обычном компьютере хранение данных (память) и обработка (процессор) разделены; данные обрабатываются последовательно и синхронно. Напротив, в нейроморфном компьютере, призванном как можно ближе имитировать работу человеческого мозга, хранение и вычисления происходят внутри искусственных нейронов, которые общаются друг с другом (большой объем информации обрабатывается параллельно, асинхронно), тем самым уменьшая количество операций, которые ему приходится выполнять. В результате такой компьютер обучается и адаптируется с малой задержкой, даже в режиме реального времени.
В интервью New Scientist Франческо Мартинуцци из Лейпцигского университета, специалист по машинному обучению, подтвердил, что нейроморфные чипы могут повысить производительность нейронных сетей, выполняющих код, подобный коду, разработанному Кимом и Бассетом, добавив, что в некоторых конкретных областях эти компьютеры могут значительно превосходят стандартные компьютеры.
Однако для того, чтобы использовать их вычислительные возможности, эти нейронные сети сначала придется увеличить: хотя двум исследователям удалось имитировать работу нескольких логических ворот, микропроцессор обычного компьютера состоит из нескольких миллиардов транзисторов