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

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

Глубокое обучение (глубинное обучение; англ. Deep learning) — уровень технологий машинного обучения, характеризующий качественный прогресс, возникший после 2006 года в связи с нарастанием вычислительных мощностей и накоплением опыта. Многие методы глубинного обучения были известны и апробированы существенно раньше, но результаты были весьма скудными, пока наконец мощности вычислительных систем не позволили создавать сложные технологические структуры нейронных сетей, обладающие достаточной производительностью и позволяющие решать широкий спектр задач, не поддававшихся эффективному решению ранее.

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

В первую очередь к глубинному обучению относятся следующие методы и их вариации:

Комбинируя эти методы, создаются сложные системы, соответствующие различным задачам искусственного интеллекта.

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

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

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

Несмотря на успехи использования глубинного обучения у него всё же есть фундаментальное ограничение: модели глубинного обучения ограничены в том, что они могут представлять, и большинство программ нельзя выразить в виде непрерывного геометрического морфинга многообразия данных[9].

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

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

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

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

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

Все определения констатируют

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

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

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

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

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

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

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

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

  1. 1 2 3 (2014) «Deep Learning: Methods and Applications». Foundations and Trends in Signal Processing 7 (3–4): 1–199. DOI:10.1561/2000000039.
  2. 1 2 Bengio, Yoshua (2009). «Learning Deep Architectures for AI». Foundations and Trends in Machine Learning 2 (1): 1–127. DOI:10.1561/2200000006.
  3. (2013) «Representation Learning: A Review and New Perspectives». IEEE Transactions on Pattern Analysis and Machine Intelligence 35 (8): 1798–1828. arXiv:1206.5538. DOI:10.1109/tpami.2013.50.
  4. 1 2 3 Schmidhuber, J. (2015). «Deep Learning in Neural Networks: An Overview». Neural Networks 61: 85–117. arXiv:1404.7828. DOI:10.1016/j.neunet.2014.09.003. PMID 25462637.
  5. (2015) «Deep Learning». Nature 521: 436–444. DOI:10.1038/nature14539. PMID 26017442.
  6. Glauner, P. (2015). Deep Convolutional Neural Networks for Smile Recognition (MSc Thesis). Imperial College London, Department of Computing. arXiv:1508.06535. 
  7. Song, Lee, Neural Information Processing, 2013
  8. (1996) «Emergence of simple-cell receptive field properties by learning a sparse code for natural images». Nature 381 (6583): 607–609. DOI:10.1038/381607a0. PMID 8637596. Bibcode1996Natur.381..607O.
  9. Francois Chollet. Chapter 9, Section 2 // Deep Learning with Python. — Manning, 2017. — 350 p. — ISBN 9781617294433.
  10. Deep Learning for Efficient Discriminative Parsing. Событие произошло 7min 45s.
  11. Gomes, Machine-Learning Maestro Michael Jordan on the Delusions of Big Data and Other Huge Engineering Efforts
  12. Yann LeCun et al. Backpropagation Applied to Handwritten Zip Code Recognition.
  13. Geoffrey E. Hinton. Learning multiple layers of representation.

Литература[править | править код]

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

Ссылки[править | править код]

Критика[править | править код]