До глубокого обучения многие задачи требовали много ручной работы инженера: вручную выделять признаки картинки, придумывать формулы для звука. Глубокие нейросети научились находить такие признаки сами, прямо из сырых данных.
Почему сейчас, а не раньше
- Доступные большие наборы данных — без них глубокие сети не учатся.
- Дешёвые видеокарты и тензорные процессоры, на которых можно тренировать сети с миллиардами параметров.
- Архитектурные открытия последних 10–15 лет: свёрточные сети, рекуррентные сети, трансформеры.
Где особенно сильно работает
- Распознавание и генерация изображений и видео.
- Распознавание и синтез речи.
- Понимание и генерация текста — современные большие языковые модели тоже глубокие сети.
- Биоинформатика, химия — например, предсказание структуры белков.
- Данные сложные и неструктурированные: картинки, текст, звук, видео
- Простые модели уже не дают нужного качества
- Есть доступ к достаточным данным и вычислительным мощностям
- Таблица из ста строк — глубокая сеть тут не даст ничего сверх линейной модели
- Нужна объяснимость каждого решения (например, в кредитном скоринге) — обычное дерево объясняется проще нейросети
- Очень ограничены вычислительные ресурсы в эксплуатации
Команда, которая пять лет назад писала свой свёрточный детектор объектов для системы видеоаналитики, сегодня берёт готовую предобученную сеть и дообучает её на нескольких сотнях своих кадров. Это занимает не месяцы, а дни и даёт качество, которого раньше было трудно добиться даже большим исследовательским проектом.
Глубокое обучение редко начинают с нуля. Обычно берут предобученную модель и дообучают её на своих данных или просто используют как извлекатель признаков. Так получается дешевле, быстрее и часто качественнее, чем тренировать сеть с нуля.