Свет и вычисления

МЕНЮ


Главная страница
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


2021-01-22 16:54

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

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

Структура передачи информации между слоями нейронной сети

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

Теперь давайте вспомним, что значит «обучить» нейроную сеть? На рисунке выше схематично показано как информация передаётся с одного слоя на другой: сначала входные данные, представленные в векторном виде (input vector), умножаются на некоторую матрицу весов (weight matrix), а затем подаются на вход нелинейной функцией активации (activation). Обучение нейронной сети — это процесс тюнинга, настройки матрицы весов, а обучить нейронную сеть — значит найти такую матрицу весов, которая будет корректно представлять требуемую функциональную зависимость между имеющимися входными данными и выходом.

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

(1) прямое распространение информации по сети;

(2) оценка градиентов функции потерь по отношению к параметрам сети на выходном слое;

(3) обратное распространение этих градиентов на все предыдущие слои;

(4) обновление матрицы весов в направлении, которое максимально уменьшает функцию потерь.

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

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

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

Возникает вопрос: есть ли технологически доступная платформа, способная заниматься линейной алгеброй? Я бы не писал этот текст, если бы мой ответ был «нет». Удивительная вещь, которой мне хочется с вами поделиться состоит в том, что интерференция и дифракция света могут справиться с основными операциями линейной алгебры. Именно поэтому оптика стала привлекательной платформой для реализации нейронных сетей следующего поколения, обещая более быстрые вычисления с низким энергопотреблением. Нейронные сети, работающие со светом, а не с электрическими импульсами, получили название оптических нейронных сетей.

Если мы сможем сконструировать работоспособную оптическую нейронную сеть, то она будет обучаться со скоростью света — для нас практически мгновенно. Самые мощные и современные модели, которые по несколько месяцев обучаются в датацентрах Яндекса, Гугла, OpenAI, смогут быть обучены за секунды!

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

Схема человеческого глаза

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

Что касается современного этапа развития искусственных оптических нейронных сетей, то предложения по их реализации существуют уже более тридцати лет, и какие-то из них уже были выполнены в «металле». Прямое распространение (шаг 1) требует как матричного умножения, которое передаёт информацию между слоями, так и подходящей нелинейной функции активации, которая применяется индивидуально к каждому нейрону. Оптически прямое распространение было реализовано многими исследовательскими группами — трансформации пучка света с помощью линз и оптических поглотителей обеспечивают всю необходимую алгебру. Однако получение и обратное распространение градиентов функции потерь (шаги 2-3) остаются нерешенными проблемами в оптических установках.

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

Автор: Андрей Мурачёв, научный сотрудник Высшей школы теоретической механики


Источник: m.vk.com

Комментарии: