Как ускорить обучение нейросетей на больших данных с помощью мини-пакетов

DeepLearning.AI 176 тыс. 11 мин 3 мин 25.08.2017
Главное

В современном глубоком обучении работа с большими данными — это залог успеха, но и главный вызов для инфраструктуры. Эндрю Ын, основатель DeepLearning.AI, объясняет, почему классический подход к обучению нейросетей становится препятствием при работе с миллионами примеров и как алгоритм Mini-Batch Gradient Descent (мини-пакетный градиентный спуск) позволяет значительно ускорить процесс оптимизации.

🚀 Проблема масштаба: почему обычный градиентный спуск замедляется 0:00

Создание прикладных систем машинного обучения — это эмпирический процесс, требующий обучения множества моделей для поиска наилучшей архитектуры . Однако глубокое обучение лучше всего проявляет себя в режиме «Big Data», когда наборы данных исчисляются миллионами записей .

Эндрю Ын выделяет фундаментальную проблему классического пакетного градиентного спуска (Batch Gradient Descent):

🧩 Концепция Mini-Batch: разделение датасета на части 2:14

Для решения проблемы медленного обучения Эндрю Ын предлагает разделять обучающую выборку на небольшие группы, называемые «мини-пакетами» (mini-batches) .

Представим датасет из 5 миллионов примеров ($M = 5\,000\,000$):

  1. Мы разбиваем его на порции по 1000 примеров в каждой .
  2. Результатом становятся 5000 таких «мини-пакетов» .
  3. Каждый такой фрагмент данных обозначается новой нотацией: $X^{{t}}$ и $Y^{{t}}$, где $t$ — номер пакета .

Эндрю Ын подчеркивает разницу в синтаксисе для избежания путаницы :

Размерность такого мини-пакета $X^{{1}}$ будет составлять $(n_x, 1000)$, где $n_x$ — количество признаков, а 1000 — количество примеров в пакете .

⚙️ Механика алгоритма в действии 6:10

Работа Mini-Batch Gradient Descent строится на цикле по всем мини-пакетам . Внутри этого цикла выполняется один стандартный шаг градиентного спуска, но не для всего датасета, а только для текущей порции данных.

Процесс внутри одной итерации (для пакета $t$) :

🔄 Эпохи против итераций: в чем преимущество? 10:15

Одним из ключевых понятий, вводимых Эндрю Ыном, является термин «эпоха» (epoch). Это один полный проход через весь обучающий набор данных .

Главное преимущество нового метода заключается во времени прогресса:

Эндрю Ын утверждает, что при работе с большими данными Mini-Batch Gradient Descent работает гораздо быстрее и на сегодняшний день является стандартом индустрии — его использует практически каждый специалист в области Deep Learning . Для достижения сходимости обычно требуется выполнить несколько таких эпох, добавив внешний цикл по всему процессу .

💬 Цитаты

«Прикладное машинное обучение — это крайне эмпирический процесс, в котором нужно обучить множество моделей, чтобы найти ту, которая работает.»

«Имея большой обучающий набор данных, Mini-Batch градиентный спуск работает намного быстрее, и это практически то, что используют все в Deep Learning.»

👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
Mini-Batch
Небольшая подвыборка из общего набора данных для ускорения итераций обучения.
Эпоха (Epoch)
Один полный цикл прохождения через все примеры обучающего набора данных.
Векторизация
Метод проведения вычислений над целыми матрицами или векторами сразу, а не в цикле по элементам.
Функция стоимости (Cost Function)
Метрика, оценивающая, насколько предсказания модели отличаются от реальных ответов на заданном наборе данных.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект Mini-Batch Gradient Descent Эндрю Ын DeepLearning.AI векторизация эпоха обучения