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

Momentum

Момент

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

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

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

Что означает каждый компонент
  • накопленная инерция: сохраняем часть прошлого направления (обычно β = 0.9)
  • свежий градиент — поправка к накопленному направлению
Колебания поперёк оврага гасятся, движение вдоль дна накапливается

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

  • Ускоряет спуск по длинным пологим направлениям.
  • Типичное значение коэффициента — 0.9.
  • Nesterov смотрит на шаг вперёд и точнее корректирует траекторию.

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

редко похожа на чашу: чаще это вытянутый овраг, где поперёк склоны крутые, а вдоль — пологий спуск ко дну. Чистый спуск на такой поверхности прыгает со склона на склон и продвигается вдоль оврага крошечными шагами.

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

Насколько ускоряет инерция

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

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

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

Обозначения
  • скорость обучения — длина шага оптимизатора
  • коэффициент инерции (momentum): доля прошлого направления
  • веса модели — то, что подбирается при обучении
  • номер или количество: индекс шага, число соседей, кластеров или позиций
  • функция потерь — то, что минимизируется при обучении
  • градиент: вектор частных производных

Скользящее среднее гасит колебания поперёк оврага (там знаки чередуются и взаимно уничтожаются) и усиливает движение вдоль дна (там знаки совпадают и складываются). Эффективный шаг вдоль стабильного направления увеличивается примерно в раз.

Пример

При инерция даёт ускорение примерно в 10 раз по сравнению с чистым в направлении, где стабилен.

методSGD
шагов сделано30
f(x, y)0.2153
‖(x, y)‖0.656
Оптимизатор
Переключитесь на Momentum: зигзаг заменяется движением по дну оврага

Обозначения
  • скорость обучения — длина шага оптимизатора
  • коэффициент инерции (momentum): доля прошлого направления
  • веса модели — то, что подбирается при обучении
  • номер или количество: индекс шага, число соседей, кластеров или позиций
  • функция потерь — то, что минимизируется при обучении
  • градиент: вектор частных производных
берётся в точке, куда инерция уже принесёт

Это позволяет «притормозить» заранее, если впереди подъём. На практике даёт небольшое, но стабильное улучшение и стоит ровно столько же.

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

  • Обучение с 0.9 — классический и до сих пор конкурентоспособный рецепт.
  • Овражные Везде, где кривизна сильно различается по направлениям.
  • Составная часть Первый в — это тот же momentum.

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

Плюсы

  • Ускоряет движение по устойчивому направлению в разы.
  • Гасит колебания поперёк оврага.
  • Сглаживает шум мини-батчей.
  • Один понятный параметр, значение по умолчанию 0.9 работает почти всегда.
  • Помогает проскакивать мелкие локальные ямы и плато.

Минусы

  • Может перелетать минимум по инерции.
  • Хранит дополнительное состояние размером с параметры.
  • Не решает проблему разномасштабных параметров — для этого нужна адаптивность.
  • Слишком большой (0.99+) делает обучение вялым и трудно управляемым.

Брать, если

  • Используете — добавляется практически всегда.
  • Траектория обучения выглядит колебательной.

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

  • Уже используете — там внутри, отдельно добавлять нечего.

Чем заменяют

Видеолекции

Записи университетских курсов, где эта тема звучит. Ссылка открывает запись с той секунды, где о ней говорят, — искать по трёхчасовой лекции не нужно.

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

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

Optimization85%

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

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

Optimizers85%

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

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

Gradient Descent85%

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

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

SGD85%

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

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

Adam85%

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

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

AdamW85%

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

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

RMSProp85%

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

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

Learning Rate Scheduling85%

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

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

Batch size85%

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

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

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

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