«Устные традиции» в сфере глубокого обучения

На прошлой неделе мне посчастливилось присутствовать на двух прекрасных лекциях по глубокому обучению, которые читали сотрудники Google Илья Сатскевер (Ilya Sutskever) и Джефф Дин (Jeff Dean). Восторг, вызываемый глубоким обучением, в большой степени связан с впечатляющими результатами, которых возможно добиться с помощью этой технологии, решая различные задачи восприятия, в том числе задачи распознавания голоса (голосовой поиск Google) и визуального распознавания объектов (поиск изображений Google+).

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

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

В одной из самых цитируемых работ в данной области говорится, что любая непрерывная функция может быть аппроксимирована с произвольной точностью нейронной сетью с одним скрытым слоем. В результате возникло мнение, что нейронные сети с одним скрытым слоем будут успешно справляться с большинством задач машинного обучения. Однако эта универсальная способность к аппроксимации обходилась слишком большой ценой: создание таких нейронных сетей (с одним скрытым слоем) экспоненциально усложнялось необходимостью наличия отдельного нейрона для каждого возможного входного сигнала. В течение некоторого времени нейронные сети уступали место более эффективным и масштабируемым технологиям, таким как метод опорных векторов (support vector machine, SVM) и «случайный лес» (random forest).

Что изменилось с 1980-х годов? Больше данных + более быстрые вычислительные средства

Недавнее появление больших данных (доступность обучающих наборов данных значительно большего объема), увеличение вычислительной мощности (выполнение операций с плавающей точкой на графических процессорах и распределенные вычисления), а также некоторые успехи в области алгоритмов обучения (стохастический градиентный спуск (stochastic gradient descent), сверточные нейронные сети (convolutional neural network)) привели к появлению методов обучения 10-слойных нейронных сетей. Почему слоев 10 (а не 15 или 20)? Как оказалось, 8-10 слоев эффективно работают на практике, однако не существует достаточно полного теоретического обоснования[1], почему именно такое количество слоев является оптимальным во многих ситуациях.

Илья и Джефф отметили, что успех глубокого обучения на данном этапе основывается на эмпирических результатах. Воодушевленные достижениями глубокого обучения в различных областях (в том числе в распознавании голоса и объектов), оба лектора выразили уверенность в том, что крупные 10-слойные сети могли бы сравниться с человеком в решении (любых) задач восприятия, на которые требуется 0,1 секунды!

Устойчивая «устная традиция»

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

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

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

Обучение без учителя для задач машинного перевода

Одной из областей, в которых успешно применяется обучение нейронных сетей без учителя, является представление слов в виде векторов в многомерном пространстве. Чтобы быть полезными, такие геометрические представления должны обладать следующим свойством: подобные слова (подобные в том смысле, что они имеют тенденцию появляться совместно) должны иметь подобные векторы. Более того, данные векторные представления также оказываются полезными в области машинного перевода. На рисунке ниже показано, как можно получить линейное отображение одного языка на другой: векторные представления слов английского и испанского языков были спроецированы на двухмерное пространство с помощью метода главных компонентов (principal component analysis, PCA), а потом вручную повернуты, чтобы подчеркнуть сходство структур в двух языках.

2

[1]Обоснование необходимости именно десяти слоев в некоторой степени опирается на данные нейробиологии. Нейрон (в человеческом мозге) активируется примерно 10 раз в течение 0,1 секунды – что приблизительно соответствует времени, которое необходимо для решения большинства распространенных задач восприятия (таких как распознавание речи и визуальное распознавание объектов).

Автор: Бен Лорика

Перевод Станислава Петренко

По материалам: O’reilly Radar 

Добавить комментарий

Ваш e-mail не будет опубликован.

закрыть

Поделиться

Отправить на почту
закрыть

Вход

закрыть

Регистрация

+ =