Оптимизация обучения

SGD

Стохастический градиентный спуск

актуальноТекущий рабочий стандарт

Направления: Глубокое обучение · Оптимизация

оценивается по мини-батчу: быстрее, шумнее и, как оказалось, полезнее для обобщения.

Ключевые тезисы

  • Шум помогает выбираться из узких плохих минимумов.
  • Стандарт обучения глубоких сетей вместе с .
  • Требует перемешивания данных на каждой эпохе.

Какую задачу решает

Полный по миллиону объектов даёт один шаг оптимизации. За то же время сделает тысячу шагов по мини-батчам — каждый неточный, но в среднем ведущий туда же. На больших данных это разница между «обучается» и «не обучается».

Неожиданный побочный эффект: шум мини-батчей помогает. Он выбивает из узких острых минимумов, в которых модель , и оставляет в широких пологих, которые обобщаются лучше. Поэтому — не просто дешёвое приближение полного , а метод с собственным регуляризующим свойством.

Как менять скорость при смене размера батча

Обучали с батчем 256 и . Переходите на 8 и 2048 — увеличили в 8 раз. По линейному правилу возьмите , иначе большой даст меньше шума и меньше эффективных шагов, и модель недообучится. Но при первые итерации почти наверняка разойдутся, поэтому добавьте разогрев: линейный рост от 0 до 0.8 за первые 5 эпох. Эта связка «линейное масштабирование + warmup» — стандартный рецепт .

Подробный разбор

2 подтемы — объяснения, формулы, примеры и интерактивные графики.

МетодОбъектов на шагСтоимость итерацииСвойства
Full-batch GDвсе точный , мало обновлений
1очень шумно, но быстро
Mini-batch32–1024стандарт: векторизация + разумный шум

За одну эпоху full-batch делает одно обновление весов, а mini-batch с батчем 64 при 640 000 объектах — 10 000. Именно поэтому обучают мини-батчами.

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

  • Данные нужно перемешивать каждую эпоху, иначе порядок объектов создаст систематическое смещение.
  • Слишком большой убирает полезный шум — приходится компенсировать увеличением lr и warmup.
  • Правило масштабирования: увеличили в раз — увеличьте lr примерно в раз (для умеренных ).
методSGD
шагов сделано30
f(x, y)0.2153
‖(x, y)‖0.656
Оптимизатор
Сравните траектории: чистый SGD чувствителен к масштабу осей, адаптивные методы — нет

Где применяется

  • Обучение на больших данныхЕдинственный практичный вариант, когда выборка не помещается в память.
  • с при длинном обучении часто обобщает лучше .
  • Онлайн-обучениеМодель обновляется по мере поступления данных, без с нуля.
  • через шумНебольшой работает как дополнительная .

Плюсы, минусы и альтернативы

Плюсы

  • Не требует держать всю выборку в памяти.
  • Много дешёвых шагов вместо одного дорогого — быстрее прогресс на старте.
  • Шум помогает выбираться из плохих точек и улучшает обобщение.
  • Естественно поддерживает потоковое .

Минусы

  • Траектория шумная, точной сходимости нет — нужен спад .
  • Требует подбора и .
  • Медленнее адаптивных методов на задачах с разномасштабными параметрами.
  • Слишком маленький плохо утилизирует .

Брать, если

  • Данных много и полный невозможен.
  • Обучается с большим бюджетом эпох.
  • Нужно онлайн-дообучение на потоке.

Не брать, если

  • Данных мало и они помещаются в память — полный даст более гладкую траекторию.
  • Обучается : там практически безальтернативен .

Чем заменяют

Видеолекции

Тайм-кода именно на эту тему в записях нет. Но глава «Оптимизация обучения» разобрана в курсе целиком — с той оговоркой, что место в записи придётся искать самому.

Связанные темы

Оптимизаторы

Optimization85%

Оптимизация · Основы

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

Optimizers85%

Оптимизаторы · Глубокое обучение

Правила обновления весов по градиенту: от чистого SGD до адаптивных методов.

Gradient Descent85%

Градиентный спуск · Оптимизация обучения

Итеративный шаг против градиента функции потерь — базовый алгоритм обучения.

Momentum85%

Момент · Оптимизация обучения

Накопление экспоненциального среднего градиентов — движение по инерции сквозь колебания.

Adam85%

Adam · Оптимизация обучения

Адаптивный метод: хранит средние градиента и его квадрата, подбирая шаг для каждого параметра.

AdamW85%

AdamW · Оптимизация обучения

Adam с корректно отделённым weight decay — регуляризация применяется к весам, а не к градиенту.

RMSProp85%

RMSProp · Оптимизация обучения

Нормирует шаг на скользящее среднее квадратов градиента, выравнивая масштаб обновлений.

Learning Rate Scheduling85%

Расписание скорости обучения · Оптимизация обучения

Изменение шага по ходу обучения: большой в начале для исследования, малый в конце для точной настройки.

Batch size85%

Размер батча · Оптимизация обучения

Число объектов на одно обновление весов: влияет на скорость, память и качество обобщения.

Кому эта тема нужна

Профильная компетенция для ролей: ML Engineer, CV-инженер, Исследователь, Инженер речи.

Усиливает профиль: NLP-инженер.

Следующий шагДальше по связи: OptimizationПоиск параметров, минимизирующих функцию потерь. Свойства задачи — выпуклость, гладкость, обусловленность — определяют, насколько это просто.Перейти →

Глава «Оптимизация обучения» последний раз правилась . Нашли ошибку — напишите.