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

Материал из Википедии — свободной энциклопедии
(перенаправлено с «Глубинное обучение»)
Перейти к: навигация, поиск

Глубокое обучение, или глубинное обучение (англ. Deep learning) — набор алгоритмов машинного обучения, которые пытаются моделировать высокоуровневые абстракции в данных, используя архитектуры, состоящие из множества нелинейных преобразований[1][2][3][4][5].

Глубокое обучение является частью более широкого семейства методов машинного обучения, которые подбирают представление данных. Наблюдение (например, изображение) может быть представлено многими способами, такими как вектор интенсивности значений на пиксель, или (в более абстрактной форме) как множество примитивов, областей определенной формы, и т. д. Некоторые представления позволяют легче решать поставленные задачи (например, распознавание лица или распознавание выражения лица[6]). Применение глубокого обучения автоматизирует сам процесс выбора и настройки признаков, проводя обучение признаков[en] без учителя или с частичным привлечением учителя, используя для этого эффективные алгоритмы и иерархическое извлечение признаков[en][7].

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

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

С другой стороны есть и мнения, что глубокое обучение — не что иное, как модное слово или ребрендинг для нейронных сетей[9][10].

Введение[править | править вики-текст]

Определения[править | править вики-текст]

Глубокое обучение определяют несколькими способами.

Глубокое обучение — это класс алгоритмов машинного обучения, который[1]

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

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

Алгоритмы глубокого обучения противопоставлены алгоритмам неглубокого обучения по количеству параметризованных преобразований, с которыми сталкивается сигнал, распространяющийся от входного слоя к выходному слою, где параметризованным преобразованием считается такой блок обработки данных, у которого есть обучаемые параметры, такие как веса или пороги[4]. Цепочка преобразований от входа к выходу является путем перенесения ответственности (англ. credit assignment path, CAP). CAP описывают потенциально причинные связи по сети между входом и выходом, при этом путь в разных ветвях может иметь разную длину. Для нейронной сети прямого распространения (feedforward) глубиной CAP не отличается от глубины сети и равна количеству скрытых слоев плюс один (выходной слой также параметризован). Для рекуррентных нейронных сетей, в которых сигнал может перескакивать через слои минуя промежуточные, CAP из-за обратной связи потенциально неограничен в длине. Не существует универсально согласованного порога глубины деления неглубокого обучения от глубокого обучения, но обычно считается, что глубокое обучение характеризуется несколькими нелинейными слоями (CAP > 2). Йорген Шмидхубер[en] выделяет также "очень глубокое обучение", когда CAP > 10[4].

История[править | править вики-текст]

Глубокие архитектуры, основанные на искусственных нейронных сетях, берут своё начало с неокогнитрона, разработанного Кунихико Фукусимой в 1980 году. Сами нейронные сети появились ещё раньше. В 1989 году Яну Лекуну удалось использовать алгоритм обратного распространения ошибки для обучения глубоких нейросетей для решения задачи распознавания рукописных ZIP-кодов[11]. Несмотря на успешный опыт, для обучения модели потребовалось три дня, что существенно ограничивало применение этого метода. Низкая скорость обучения связана со многими факторами, включая проблему исчезающего градиента, которую в 1991 году анализировали Юрген Шмидхубер и Сепп Хохрайтер. Из-за этих проблем нейронные сети в 1990-х годах уступили место методу опорных векторов.

Термин «глубинное обучение» приобрёл популярность после публикации Джеффри Хинтона и Руслана Салахутдинова в середине 2000-х годов, в которой они показали, что можно эффективно предобучать многослойную нейронную сеть, если обучать каждый слой отдельно при помощи ограниченной машины Больцмана, а затем дообучать при помощи метода обратного распространения ошибки[12].

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

Литература[править | править вики-текст]

  • Гудфеллоу Я., Бенджио И., Курвилль А. Глубокое обучение = Deep Learning. — М.: ДМК Пресс, 2017. — 652 с. — ISBN 978-5-97060-554-7.

Ссылки[править | править вики-текст]

Критика[править | править вики-текст]