Глубокое обучение
Кратко
Глубокое обучение (deep learning) — подход машинного обучения на многослойных нейронных сетях: вычислительные модели из многих слоёв обработки выучивают представления данных с несколькими уровнями абстракции. Так область определяют её основоположники — Ян Лекун, Йошуа Бенджио и Джеффри Хинтон. Ключевое отличие от классических методов: признаки не проектируются инженерами, а выучиваются из сырых данных.
Для чего используется
Глубокое обучение резко улучшило состояние дел в целых классах задач:
- распознавание речи и визуальных объектов, детекция объектов на изображениях;
- обработка изображений, видео и аудио — свёрточными сетями;
- последовательные данные, текст и речь — рекуррентными сетями, а сегодня трансформерами;
- научные применения: открытие лекарств, геномика.
Для робототехники и БПЛА это фундамент бортового компьютерного зрения и автономности.
Как работает
Идея многоуровневых представлений: первый слой сети находит в сыром входе простейшие закономерности, следующий собирает из них более сложные, и так далее — каждый слой вычисляет представление из представления предыдущего. Алгоритм обратного распространения ошибки указывает, как менять внутренние параметры каждого слоя, а веса подбираются стохастическим градиентным спуском.
Почему «взлетело» именно в 2011–2012 годах: стало возможно обучать большие сети. Слагаемые прорыва на примере AlexNet (2012):
- данные — 1,3 млн размеченных изображений ImageNet;
- вычисления — эффективная реализация свёрток на GPU;
- приёмы обучения — ненасыщающиеся нейроны ReLU (ускоряют сходимость SGD по сравнению с sigmoid/tanh) и dropout против переобучения.
Итог: сеть с 60 млн параметров показала на тесте ImageNet (LSVRC-2010) ошибку top-5 18,9 % — заметно лучше прежних методов, построенных на ручных признаках, — и выиграла соревнование ImageNet 2012 года. С этого результата начался современный бум глубокого обучения.
Практическое правило: предпочтительнее большая сеть с сильной регуляризацией, а не маленькая сеть «по размеру задачи».
Основные компоненты
- многослойные архитектуры: сети прямого распространения, свёрточные, рекуррентные, трансформеры;
- backpropagation и стохастический градиентный спуск;
- регуляризация: dropout, штрафы нормы, аугментация данных;
- большие размеченные датасеты и ускорители (GPU).
Примеры
- AlexNet (Крижевский, Суцкевер, Хинтон, 2012) — пять свёрточных и два полносвязных слоя; переломная работа для компьютерного зрения.
- Обзор LeCun, Bengio, Hinton в Nature (2015, т. 521, с. 436–444) — программная статья области.
- Канонический учебник — «Deep Learning» Гудфеллоу, Бенджио и Курвилля (MIT Press, 2016), полный текст бесплатно онлайн: от основ до глубоких генеративных моделей.
Связанные темы
- Нейронные сети
- Машинное обучение
- Свёрточные нейросети (CNN)
- Трансформеры
- Генеративные модели
- Компьютерное зрение
Источники
- LeCun, Bengio, Hinton. Deep learning — Nature, 2015 — определение, прорывы по областям, роль backpropagation.
- Deep Learning (Goodfellow, Bengio, Courville) — структура дисциплины, регуляризация, оптимизация.
- Учебник по машинному обучению (ШАД, Яндекс) — обучение представлений, история практического взлёта.
- AlexNet (Krizhevsky et al., NIPS 2012) — архитектура, результаты, ReLU и dropout.
- CS231n (Stanford) — практические правила обучения глубоких сетей.