В современном глубоком обучении работа с большими данными — это залог успеха, но и главный вызов для инфраструктуры. Эндрю Ын, основатель DeepLearning.AI, объясняет, почему классический подход к обучению нейросетей становится препятствием при работе с миллионами примеров и как алгоритм Mini-Batch Gradient Descent (мини-пакетный градиентный спуск) позволяет значительно ускорить процесс оптимизации.
🚀 Проблема масштаба: почему обычный градиентный спуск замедляется 0:00
Создание прикладных систем машинного обучения — это эмпирический процесс, требующий обучения множества моделей для поиска наилучшей архитектуры . Однако глубокое обучение лучше всего проявляет себя в режиме «Big Data», когда наборы данных исчисляются миллионами записей .
Эндрю Ын выделяет фундаментальную проблему классического пакетного градиентного спуска (Batch Gradient Descent):
- Использование векторизации: Хотя упаковка всех $M$ примеров в матрицы $X$ и $Y$ позволяет избежать явных циклов
for, при $M = 5\,000\,000$ или $50\,000\,000$ вычисления становятся непозволительно долгими . - Низкая частота обновлений: В стандартном подходе необходимо пропустить через сеть все 5 миллионов примеров только для того, чтобы сделать один маленький шаг в сторону уменьшения функции потерь .
- Неэффективность: Пока не обработан весь гигантский датасет, алгоритм не делает никакого прогресса в обновлении весов, что крайне замедляет работу исследовательских команд .
🧩 Концепция Mini-Batch: разделение датасета на части 2:14
Для решения проблемы медленного обучения Эндрю Ын предлагает разделять обучающую выборку на небольшие группы, называемые «мини-пакетами» (mini-batches) .
Представим датасет из 5 миллионов примеров ($M = 5\,000\,000$):
- Мы разбиваем его на порции по 1000 примеров в каждой .
- Результатом становятся 5000 таких «мини-пакетов» .
- Каждый такой фрагмент данных обозначается новой нотацией: $X^{{t}}$ и $Y^{{t}}$, где $t$ — номер пакета .
Эндрю Ын подчеркивает разницу в синтаксисе для избежания путаницы :
- $X^{(i)}$ — $i$-й обучающий пример (круглые скобки).
- $Z^{[l]}$ — значение в $l$-м слое нейросети (квадратные скобки).
- $X^{{t}}$ — $t$-й мини-пакет данных (фигурные скобки) .
Размерность такого мини-пакета $X^{{1}}$ будет составлять $(n_x, 1000)$, где $n_x$ — количество признаков, а 1000 — количество примеров в пакете .
⚙️ Механика алгоритма в действии 6:10
Работа Mini-Batch Gradient Descent строится на цикле по всем мини-пакетам . Внутри этого цикла выполняется один стандартный шаг градиентного спуска, но не для всего датасета, а только для текущей порции данных.
Процесс внутри одной итерации (для пакета $t$) :
- Forward Propagation (Прямое распространение): Вычисляются активации слоев с использованием $X^{{t}}$. Вместо всей матрицы $X$ в формулы подставляется текущий пакет .
- Compute Cost (Расчет стоимости): Вычисляется функция потерь $J^{{t}}$ для конкретной тысячи примеров. Если используется регуляризация, она также добавляется к этому локальному значению .
- Backpropagation (Обратное распространение): Вычисляются градиенты относительно $J^{{t}}$ с использованием данных только текущего мини-пакета .
- Update weights (Обновление весов): Параметры сети $W$ и $b$ обновляются по классической формуле: $W := W - \alpha \cdot dW$ .
🔄 Эпохи против итераций: в чем преимущество? 10:15
Одним из ключевых понятий, вводимых Эндрю Ыном, является термин «эпоха» (epoch). Это один полный проход через весь обучающий набор данных .
Главное преимущество нового метода заключается во времени прогресса:
- При стандартном пакетном спуске (Batch Gradient Descent) одна эпоха позволяет сделать только один шаг обновления параметров .
- При мини-пакетном спуске (Mini-Batch Gradient Descent) за ту же самую одну эпоху алгоритм делает уже 5000 шагов обновления (в примере с пакетами по 1000) .
Эндрю Ын утверждает, что при работе с большими данными Mini-Batch Gradient Descent работает гораздо быстрее и на сегодняшний день является стандартом индустрии — его использует практически каждый специалист в области Deep Learning . Для достижения сходимости обычно требуется выполнить несколько таких эпох, добавив внешний цикл по всему процессу .