Исследователи из mit создали нанофотонный процессор для технологий глубинного обучения (deep learning)

Глубинное обучение: возможности, перспективы и немного истории

Последние несколько лет словосочетание «глубинное обучение» всплывает в СМИ слишком часто. Различные журналы вроде KDnuggets и DigitalTrends стараются не упустить новости из этой сферы и рассказать о популярных фреймворках и библиотеках.

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

Пара слов про глубинное обучение, нейронные сети и ИИ

Чем отличается алгоритм глубинного обучения от обычной нейронной сети? По словам Патрика Холла, ведущего исследователя данных в компании SAS, самое очевидное отличие: в нейронной сети, используемой в глубинном обучении, больше скрытых слоев. Эти слои находятся между первым, или входным, и последним, выходным, слоем нейронов. При этом совсем не обязательно связывать все нейроны на разных уровнях между собой.

Разграничение глубинного обучения и искусственного интеллекта не такое однозначное.

Например, профессор Вашингтонского университета Педро Домингос соглашается с мнением, что глубинное обучение выступает гипонимом по отношению к термину «машинное обучение», которое в свою очередь является гипонимом по отношению к искусственному интеллекту. Домингос говорит, что на практике области их применения пересекаются достаточно редко.

Обратите внимание

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

Поэтому здесь и далее, говоря о достижениях в области ИИ (таких, как AlphaGo, например) будем иметь в виду, что подобные разработки используют алгоритмы глубинного обучения — но наряду и с другими разработками из области ИИ в целом и машинного обучения в частности [как справедливо отмечает Педро Домингос].

От «глубокой нейронной сети» до глубинного обучения

Глубокие нейронные сети появились достаточно давно, еще в 1980-е. Так почему же глубинное обучение начало активно развиваться только в 21 веке? Репрезентации в нейронной сети создаются в слоях, поэтому было логично предположить, что больше слоев позволит сети лучше обучаться. Но большую роль играет метод обучения сети.

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

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

Для решения проблем распознавания изображений Яном ЛеКаном было предложено использование сверточной нейронной сети, состоящей из сверточных слоев и слоев подвыборки.

Каскадный автокодировщик, разработанный Иошуа Бенджио, также позволил задействовать все слои в глубокой нейронной сети.

Проекты, которые «видят» и «слышат»

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

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

Глубинное обучение поможет и при работе с черно-белыми файлами, автоматической колоризацией которых занимается приложение Colornet.

Важно

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

Программа NeuralTalk умеет описывать изображения при помощи нескольких предложений. В базу программы загружается набор изображений и 5 предложений, описывающих каждое из них. На стадии обучения алгоритм учится прогнозировать предложения на основе ключевого слова, используя предыдущий контекст. А на стадии прогнозирования нейронная сеть Джордана уже создает предложения, описывающие картинки.

Источник: https://intalent.pro/article/glubinnoe-obuchenie-vozmozhnosti-perspektivy-i-nemnogo-istorii.html

Решения для машинного обучения Deep Learning, нейронных сетей

                                                   ГЛУБОКОЕ ОБУЧЕНИЕ (DEEP LEARNING
    Специалисты по обработке и анализу данных как в промышленности, так и в научных кругах используют GPU в сфере машинного обучения, чтобы добиться  значительных усовершенствований в широком спектре приложений, включая приложения для классификации изображений, анализа видеоданных,  распознавания речи и обработки текстов на естественном языке. Глубокое обучение, то есть использование сложных, многоуровневых нейронных сетей для  создания систем, которые могут выявлять признаки из большого объема немаркированных данных, — именно та область, в которой ведутся активные  исследования и инвестиционная деятельность.   Хотя машинное обучение существует уже десятки лет, две относительно новые тенденции привели к его широкомасштабному использованию: доступность большого объема данных, а также производительность и эффективность параллельной обработки данных, которая возможна благодаря вычислениям на GPU. GPU используются для обучения этих глубоких нейронных сетей с помощью намного более крупных обучающих последовательностей в более сжатые сроки, с использованием меньшей инфраструктуры ЦОД. GPU также используются, чтобы воспроизводить эти учебные модели машинного обучения для выполнения задач классификации и прогнозирования на облаке. При этом графические процессоры позволяют работать с данными большего объема и с более высокой производительностью, потребляя меньше энергии и на базе меньшей инфраструктуры. 

                                                    Решения NVIDIA для глубокого обучения

Как идентифицировать потенциальные DL проекты

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

критериев и классификации объектов.

Вы используете приложения для машинного зрения, обработки сигналов или изображений?

Глубокое обучение отлично подходит для решения таких задач, как распознавание речи или классификация изображений.

Вы разрабатываете или обучаете модели глубоких нейронных сетей?

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

Почему именно GPU используются для глубокого обучения?

 До Tesla  После Tesla
 Стоимость инфраструктуры   $5 000 000   $200 000
 Число серверов 1000 серверов  16 серверов на базе Tesla
 Энергопотребление  600 кВт  4 кВт
 Производительность  1x  6x

GPU используют преимущества параллелизма Нейронные сети, в особенности, сверточные нейросети, по сути являются параллельными алгоритмами.

GPU оптимизированы для матричных операций

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

GPU помогают добиться результатов быстрее

Обучение нейронных сетей занимает месяцы на CPU. На GPU тот же самый процесс выполняется за несколько дней или часов. ___________________________________________________________________________________________________________________________________________________________

Почему глубокое обучение набирает популярность?

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

Большой объем данных:

Источник: http://pimnara.ru/mashinnoe-obuchenie/

О технических средствах для реализации методов deep learning

Е.С.Борисов

четверг, 27 октября 2016 г.

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

1. Введение

Математические модели биологического нейрона появились ещё в середине прошлого века [1]. Потом были первые модели нейронных сетей с одним обрабатывающим слоем, возможности которых были ограничены проблемой линейной неразделимости.

Позже появился метод обратного распространения [2] — способ позволяющий эффективно обучать нейронные сети с одним или двумя скрытыми слоями.

Многослойный перцептрон с тремя обрабатывающими слоями имеет возможность строить в пространстве признаков поверхности практически любой формы.

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

Как выяснилось, одной из причин является проблема «исчезающего» градиента (vanishing gradient) [3] — при вычислении градиента (направления наибольшего роста ошибки сети в пространстве весовых коэффициентов) методом обратного распространения происходит его уменьшение по мере прохождения от выходного слоя сети к входному.

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

В результате этих усилий в середине 2000-х годов появилась концепция Deep Learning [4](глубокое или глубинное обучение).

Deep Learning [5] рассматривает многоуровневые (представленные несколькими слоями) модели интеллектуальных систем, такие как искусственные нейронные сети.

Кратко это можно описать следующим образом — много данных через большое количество слоёв с большим количеством нейронов.

Совет

В рамках концепции Deep Learning были созданы различные модели искусственных нейронных сетей [6,7].
В этой статье мы не будем разбирать их подробно, но рассмотрим стек технологий, который позволяет удобно и эффективно реализовывать модели Deep Learning. Рассматриваемые технические средства можно представить как многослойную модель, состоящую из программной и аппаратной части (рис.1).

Читайте также:  В россии анонсировали выпуск отечественного дрона весом в две тонны
прикладные программные средства
вычислительные библиотеки
программный интерфейс с аппаратурой
аппаратные вычислительные средства

Рис.1: общая схема стека технологий Deep Learning

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

2. Основа для вычислений

Использование Deep Learning предполагает наличие достаточно большого объёма данных для обучения. Приведём примеры наборов данных для обучения глубоких сетей.

  • набор для с изображениями цифр MNIST содержит 70000 примеров и занимает 53MB(http://yann.lecun.com/exdb/mnist/),
  • набор картинок CIFAR-10 содержит 60000 примеров и занимает 163MB(http://www.cs.utoronto.ca/~kriz/cifar.html),
  • набор изображений PASCAL-2011 содержит 11530 примеров и занимает 2GB(http://host.robots.ox.ac.uk/pascal/VOC/)
  • набор изображений ILSVRC-2015: CLS-LOC содержит 100 тыс примеров и занимает 155GB(http://image-net.org/challenges/LSVRC/2015/)

Кроме этого, сами глубокие нейронные сети могут иметь сложную архитектуру [6,7], которая требует значительных вычислительных ресурсов.

Все эти условия требуют использования систем высокой производительности. Поэтому, для обучения глубоких сетей используют технологии вычислений на GPU (graphics processing units).

Этот класс технологий получил название GPGPU (General-Purpose Graphics Processing Units) — использование графического процессора для общего назначения[8,9].

Сегодня несколько производителей предлагают устройства GPGPU и программное обеспечение к ним, основные это NVIDIA, AMD и Intel. При этом для задач Deep Learning обычно используют программно-аппаратные решения на NVIDIA CUDA [8], другие технологии высокопроизводительных вычислений пользуются гораздо меньшей популярностью и программного обеспечения Deep Learning для них написано меньше.

Помимо отдельных устройств с поддержкой CUDA (GeForce, Titan, Quadra, Tesla) и технологии NCCL для распределённого GPU компьютинга, NVIDIA разрабатывает библиотеку cuDNN специально для задач Deep Learning, менеджер мамяти CNMeM, а так же выпускает комплексные решения для задач Deep Learning, такие как серверы NVIDIA DGX и платформу для встраиваемых систем (роботов) NVIDIA Jetson TK.

Программно-аппаратную платформу NVIDIA для задач Deep Learning можно описать следующей схемой (рис.2).

прикладные программные средства
cuBLAS, cuDNN, CNMeM, NCCL
CUDA
NVIDIA GPU

Рис.2: схема стека технологий Deep Learning на аппаратуре NVIDIA

Далее рассмотрим прикладное программное обеспечение для Deep Learning.

3. Прикладное программное обеспечение

Можно писать реализации моделей Deep Learning самостоятельно, например на C++ используя программно-аппаратную платформу CUDA упомянутую выше.

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

Существует немало таких пакетов, здесь мы рассмотрим следующий набор: Caffe, Theano, TensorFlow, Keras, а также дополнительные средства обработки данных, которые связанны с этими пакетами.

3.1 Caffe и DIGITS

Источник: http://mechanoid.kiev.ua/ml-deep-learning-tools.html

Глубокое обучение (Deep Learning): краткий туториал

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

Нейронная сеть (искусственная нейронная сеть) — это попытка воспроизведения работы человеческого мозга на компьютере при помощи слоев нейронов.

Искусственный интеллект — способность машины или программы находить решения при помощи вычислений.

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

Машинное обучение — это попытка научить компьютеры самостоятельно обучаться на большом количестве данных вместо жестко постулированных правил.

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

Контролируемое и неконтролируемое обучение

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

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

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

Неконтролируемое обучение (обучение без учителя, unsupervised learning) — это машинное обучение с использованием наборов данных без определенной структуры.

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

Обратите внимание

Примером задачи с неконтролируемым обучением является предсказание поведения посетителей интернет-магазинов. В этом случае сеть не обучается на размеченных даннх.

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

Глубокое обучение

Теперь вы подготовлены к изучению того, что такое глубокое обучение и как оно работает.

Глубокое обучение — это метод машинного обучения. Глубокое обучение позволяет обучать модель предсказывать результат по набору входных данных. Для обучения сети можно использовать как контролируемое, так и неконтролируемое обучение.

Разница между машинным и глубоким обучением

Рассмотрим, как работает глубокое обучение, на примере сервиса по оценке стоимости авиабилета. Мы будем обучать его контролируемым образом.

Мы хотим, чтобы наш сервис предсказывал цену на авиабилет по следующим входным данным:

  • аэропорт вылета;
  • аэропорт назначения;
  • дата отбытия;
  • авиакомпания.

Нейронные сети глубокого обучения

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

Глубокая нейронная сеть (с двумя скрытыми слоями)

Нейроны сгруппированы в три различных типа слоев:

  • входной слой;
  • скрытый слой (слои);
  • выходной слой.

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

Скрытые слои выполняют математические вычисления со входными данными. Одна из задач при создании нейронных сетей — определение количества скрытых слоев и нейронов на каждом слое.

Слово «глубина» в термине «глубокое обучение» означает наличие более чем одного скрытого слоя.

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

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

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

Каждый нейрон имеет функцию активации. Ее смысл трудно понять без привлечения математических рассуждений. Одной из ее целей является «стандартизация» данных на выходе из нейрона.

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

Обучение глубокой сети

Обучение нейросети — самая сложная часть глубокого обучения. Почему?

  • Вам нужен большой набор данных.
  • Вам нужно большое количество вычислительной мощности.

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

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

Важно

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

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

Как уменьшить значение функции потерь?

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

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

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

Для минимизации функции потерь нужно многократно перебирать данные. Именно поэтому нам требуется большая вычислительная мощность. Уточнение весов с помощью градиентного спуска выполняется автоматически. В этом и состоит магия глубокого обучения!

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

В сухом остатке:

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

Интересные статьи:

Источник: https://neurohive.io/ru/osnovy-data-science/glubokoe-obuchenie-deep-learning-kratkij-tutorial/

Исследователи из MIT создали нанофотонный процессор для технологий глубинного обучения (deep learning)

Компьютерные системы «Deep Learning», основанные на искусственных нейронных сетях, которые имитируют то, как мозг учится на накопленных примерах, стали горячей темой в информатике.

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

Но вычисления, которые должны выполнять эти системы, очень сложны даже для самых мощных компьютеров.

Совет

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

Читайте также:  Ассоциативная память на основе нейронной сети хопфилда

«Многие исследователи на протяжении многих лет заявляли о своих компьютерах, основанных на оптике. Хотя многие предлагаемые применения таких фотонных компьютеров оказались непрактичными, световая система нейронных сетей, разработанная этой командой, «может быть применима для глубокого обучения некоторых приложений» — рассказывает один исследователей.

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

После нескольких лет исследований команда MIT придумала способ выполнения этих операций оптически. «Этот чип, как только вы его настроите, может выполнять матричное умножение, в принципе, с нулевой энергией, почти мгновенно», — говорит Soljacic, один из исследователей. «Мы продемонстрировали важнейшие строительные блоки, но еще не полную систему».

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

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

Полученное устройство — это то, что ученые называют программируемым нанофотонным процессором.

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

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

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

Обратите внимание

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

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

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

Солячич говорит, что «нет существенных препятствий» для расширения системы для большей точности.

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

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

«Этот подход может выполнять обработку непосредственно в аналоговой области», — говорит он.

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

искусственные нейронные сети

Источник: https://neuronus.com/news-tech/1305-issledovateli-iz-mit-sozdali-nanofotonnyj-protsessor-dlya-tekhnologij-glubinnogo-obucheniya-deep-learning.html

Optical computing for deep learning with a programmable nanophotonic processor

Researchers at MIT and elsewhere has developed a new approach to deep learning AI computing, using light instead of electricity, which they say could vastly improve the speed and efficiency of certain deep learning computations

Совет

Soljačić says that many researchers over the years have made claims about optics-based computers, but that “people dramatically over-promised, and it backfired.” While many proposed uses of such photonic computers turned out not to be practical, a light-based neural-network system developed by this team “may be applicable for deep-learning for some applications,” he says.

Traditional computer architectures are not very efficient when it comes to the kinds of calculations needed for certain important neural-network tasks. Such tasks typically involve repeated multiplications of matrices, which can be very computationally intensive in conventional CPU or GPU chips.

Важно

After years of research, the MIT team has come up with a way of performing these operations optically instead. “This chip, once you tune it, can carry out matrix multiplication with, in principle, zero energy, almost instantly,” Soljačić says.

“We’ve demonstrated the crucial building blocks but not yet the full system.”
By way of analogy, Soljačić points out that even an ordinary eyeglass lens carries out a complex calculation (the so-called Fourier transform) on the light waves that pass through it.

The way light beams carry out computations in the new photonic chips is far more general but has a similar underlying principle.

The new approach uses multiple light beams directed in such a way that their waves interact with each other, producing interference patterns that convey the result of the intended operation. The resulting device is something the researchers call a programmable nanophotonic processor.

programmable nanophotonic processor

This futuristic drawing shows programmable nanophotonic processors integrated on a printed circuit board and carrying out deep learning computing. Image: RedCube Inc., and courtesy of the researchers

Nature Photonics – Deep learning with coherent nanophotonic circuits

Abstract

Artificial neural networks are computational network models inspired by signal processing in the brain. These models have dramatically improved performance for many machine-learning tasks, including speech and image recognition.

However, today’s computing hardware is inefficient at implementing neural networks, in large part because much of it was designed for von Neumann computing schemes. Significant effort has been made towards developing electronic architectures tuned to implement artificial neural networks that exhibit improved computational speed and accuracy.

Here, we propose a new architecture for a fully optical neural network that, in principle, could offer an enhancement in computational speed and power efficiency over state-of-the-art electronics for conventional inference tasks.

We experimentally demonstrate the essential part of the concept using a programmable nanophotonic processor featuring a cascaded array of 56 programmable Mach–Zehnder interferometers in a silicon photonic integrated circuit and show its utility for vowel recognition.

Источник: https://www.nextbigfuture.com/2017/06/optical-computing-for-deep-learning-with-a-programmable-nanophotonic-processor.html

New system allows optical “deep learning”

“Deep learning” computer systems, based on artificial neural networks that mimic the way the brain learns from an accumulation of examples, have become a hot topic in computer science.

In addition to enabling technologies such as face- and voice-recognition software, these systems could scour vast amounts of medical data to find patterns that could be useful diagnostically, or scan chemical formulas for possible new pharmaceuticals.

But the computations these systems must carry out are highly complex and demanding, even for the most powerful computers.

Now, a team of researchers at MIT and elsewhere has developed a new approach to such computations, using light instead of electricity, which they say could vastly improve the speed and efficiency of certain deep learning computations. Their results appear today in the journal Nature Photonics in a paper by MIT postdoc Yichen Shen, graduate student Nicholas Harris, professors Marin Soljačić and Dirk Englund, and eight others.

Совет

Soljačić says that many researchers over the years have made claims about optics-based computers, but that “people dramatically over-promised, and it backfired.” While many proposed uses of such photonic computers turned out not to be practical, a light-based neural-network system developed by this team “may be applicable for deep-learning for some applications,” he says.

Traditional computer architectures are not very efficient when it comes to the kinds of calculations needed for certain important neural-network tasks. Such tasks typically involve repeated multiplications of matrices, which can be very computationally intensive in conventional CPU or GPU chips.

After years of research, the MIT team has come up with a way of performing these operations optically instead. “This chip, once you tune it, can carry out matrix multiplication with, in principle, zero energy, almost instantly,” Soljačić says. “We’ve demonstrated the crucial building blocks but not yet the full system.”

By way of analogy, Soljačić points out that even an ordinary eyeglass lens carries out a complex calculation (the so-called Fourier transform) on the light waves that pass through it.

The way light beams carry out computations in the new photonic chips is far more general but has a similar underlying principle.

The new approach uses multiple light beams directed in such a way that their waves interact with each other, producing interference patterns that convey the result of the intended operation. The resulting device is something the researchers call a programmable nanophotonic processor.

The result, Shen says, is that the optical chips using this architecture could, in principle, carry out calculations performed in typical artificial intelligence algorithms much faster and using less than one-thousandth as much energy per operation as conventional electronic chips. “The natural advantage of using light to do matrix multiplication plays a big part in the speed up and power savings, because dense matrix multiplications are the most power hungry and time consuming part in AI algorithms” he says.

Читайте также:  К 2030 году все авто будут управляться искусственным интеллектом

The new programmable nanophotonic processor, which was developed in the Englund lab by Harris and collaborators, uses an array of waveguides that are interconnected in a way that can be modified as needed, programming that set of beams for a specific computation.

“You can program in any matrix operation,” Harris says. The processor guides light through a series of coupled photonic waveguides.

Обратите внимание

The team’s full proposal calls for interleaved layers of devices that apply an operation called a nonlinear activation function, in analogy with the operation of neurons in the brain.

To demonstrate the concept, the team set the programmable nanophotonic processor to implement a neural network that recognizes four basic vowel sounds.

Even with this rudimentary system, they were able to achieve a 77 percent accuracy level, compared to about 90 percent for conventional systems.

There are “no substantial obstacles” to scaling up the system for greater accuracy, Soljačić says.

Englund adds that the programmable nanophotonic processor could have other applications as well, including signal processing for data transmission.

“High-speed analog signal processing is something this could manage” faster than other approaches that first convert the signal to digital form, since light is an inherently analog medium.

“This approach could do processing directly in the analog domain,” he says.

The team says it will still take a lot more effort and time to make this system useful; however, once the system is scaled up and fully functioning, it can find many user cases, such as data centers or security systems. The system could also be a boon for self-driving cars or drones, says Harris, or “whenever you need to do a lot of computation but you don’t have a lot of power or time.”

The research team also included MIT graduate students Scott Skirlo and Mihika Prabhu in the Research Laboratory of Electronics, Xin Sun in mathematics, and Shijie Zhao in biology, Tom Baehr-Jones and Michael Hochberg at Elenion Technologies, in New York, and Hugo Larochelle at Université de Sherbrooke, in Quebec. The work was supported by the U.S. Army Research Office through the Institute for Soldier Nanotechnologies, the National Science Foundation, and the Air Force Office of Scientific Research.

Источник: http://news.mit.edu/2017/new-system-allows-optical-deep-learning-0612

Математика глубоких нейронных сетей

Участники курса “Программирование глубоких нейронных сетей на Python” часто задают мне вопрос, что нужно почитать, чтобы разобраться с математикой глубоких нейронных сетей. Вот список книг и статей, которые я рекомендую.

Книги

  1. Ian Goodfellow, Yoshua Bengio, Aaron Courville. Deep Learning. MIT Press.

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

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

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

    Важно

    Третья часть содержит описание исследовательских тем: автокодировщики, генеративные модели, структурированные вероятностные модели (structured probabilistic models) и др.

    Книга доступна бесплатно на сайте www.deeplearningbook.org, ее также можно купить на Amazon.

  2. Francois Chollet. Deep Learning with Python. Manning Publications.

    Если вам не нравится академический стиль Deep Learning, то попробуйте посмотреть книгу от создателя Keras Francois Chollet. В ней математические основы рассказаны в инженерном стиле с примерами кода на Python.

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

    Глава 5 начинается с рассмотрения математических основ сверточных нейронных сетей, а глава 6 – сетей долго-краткосрочной памяти (LSTM).

    Книга пока не закончена и доступна в режиме Manning Early Access Program (MEAP). Но математические разделы уже написаны.

Статьи

  1. Yann LeCun, Leon Bottou, Genevieve B. Orr, Klaus-Robert Müller. Efficient BackProp. Neural Networks: Tricks of the Trade, 1998. pp 9-50.

    Классическая статья с подробным исследованием особенностей работы алгоритма обратного распространения ошибки.

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

  2. Sergey Ioffe, Christian Szegedy. Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift. 2015.

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

    В этой статье делается еще один шаг вперед и предлагается нормализовать данные не только на входе в нейронную сеть, но и внутри сети. Для этого предлагается использовать специальные слои пакетной нормализации (Batch Normalization).

    Это позволяет сократить время обучения за счет использования более высокого значения параметра скорости обучения (learning rate), а также снизить переобучение.

  3. Xavier Glorot, Yoshua Bengio. Understanding the difficulty of training deep feedforward neural networks. 2010.

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

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

    Благодаря такой нормализации сигнал об ошибке при обучении распространяется гораздо лучше. Нормализованная инициализация весов широко используется в библиотеках обучения нейронных сетей под названием инициализация Xavier или Glorot.

  4. Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun. Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification. 2015.

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

Почему важно разобраться с методами нормализованной инициализации весов и пакетной нормализации? Именно они позволили на практике решить проблему исчезающего градиента, которая долгое время препятствовала практическому применению глубоких нейронных сетей. Эти методы сделали возможным обучение глубоких нейронных сетей состоящих из 100 и более скрытых слоев (например, сеть Microsoft ResNet).

Какие книги и статьи по теории глубоких нейронных сетей кажутся вам самыми полезными? Пишите о них в комментариях.

Совет

По теории глубоких нейронных сетей есть также несколько хороших открытых учебных курсов. О них я напишу в отдельной статье.

Источник: https://www.asozykin.ru/deep_learning/2017/08/31/Math-of-Deep-Learning.html

Программа «Deep Learning: расширенный курс»

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

Но что скрывается за этим термином?  Ответ на этот вопрос мы постараемся дать в ходе данной программы.

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

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

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

Преподаватели

Святослав Елизаров
Выпускник факультета компьютерных наук. Data scientist и программист в alterra.ai

 

Борис Коваленко
Выпускник факультета компьютерных наук. Deep Learning Engineer в международной компании.

 

Сергей Абдуракипов
Кандидат физико-математических наук, ведущий консультант Data Science в SAP Labs.

Медаль Российской Академии Наук, стипендиат Президента РФ, гранты международных компаний и фондов за цикл работ в области интеллектуального анализа данных для задач энергетики. Более 50 публикаций, из них 10 по машинному обучению и анализу данных. Ph.D.

программа в Техническом университете Делфта (Нидерланды). Разрабатывал и читал курс «Основы машинного обучения». Образование: Новосибирский государственный университет, Школа анализа данных Яндекса.

 

Дмитрий Буслов
Старший архитектор бизнес-решений в SAP СНГ. Окончил Московский Авиационный Институт, получал дополнительное образование в MIT и Высшей школе экономики.

 

Основные темы программы

  • Линейные модели
  • Полносвязные нейронные сети, методы оптимизации
  • Инициализация параметров, регуляризация
  • Сверточные сети
  • Архитектуры, история, трансфер лернинг
  • Автоэнкодеры, VAE
  • Q — learning
  • Word2Vec
  • RNN
  • LSTM, GRU
  • Caption Generation
  • GAN

Понимание задач машинного обучения (функция потерь, метрики качества, переобучение);
Базовые знания линейной алгебры (матрицы, тензоры, скалярное произведение);
Базовые знания математического анализа (умение брать производные, интеграл);
Базовые знания математической статистики (случайная величина, распределение, метод наибольшего правдоподобия);
Знание основ Python.

Расписание занятий

Занятия будут проходить по четвергам с 19:00 до 22:00 и субботам с 15:00 до 18:00 с  11 апреля по 15 июня 2019 года.

академических часов, в том числе 56 аудиторных

По итогам программы выдается Удостоверение о повышении квалификации установленного НИУ ВШЭ образца

Подать заявку

Источник: https://cs.hse.ru/dpo/deeplearning2

Ссылка на основную публикацию