Накопление экспоненциального среднего — движение по инерции сквозь колебания.
- накопленная инерция: сохраняем часть прошлого направления (обычно β = 0.9)
- свежий градиент — поправка к накопленному направлению
Ключевые тезисы
- Ускоряет спуск по длинным пологим направлениям.
- Типичное значение коэффициента — 0.9.
- Nesterov смотрит на шаг вперёд и точнее корректирует траекторию.
Какую задачу решает
редко похожа на чашу: чаще это вытянутый овраг, где поперёк склоны крутые, а вдоль — пологий спуск ко дну. Чистый спуск на такой поверхности прыгает со склона на склон и продвигается вдоль оврага крошечными шагами.
добавляет инерцию: шаг делается не по текущему , а по его скользящему среднему. Поперечные компоненты на соседних шагах смотрят в разные стороны и гасят друг друга, продольная компонента везде одинакова и накапливается. Движение выпрямляется вдоль дна оврага, а заодно сглаживается шум мини-батчей.
При и постоянном скорость сходится к — эффективный шаг в десять раз длиннее. Именно поэтому при добавлении обычно приходится уменьшать: если раньше работало , с 0.9 разумно начать с . Забывают об этом часто, и обучение расходится сразу после включения инерции — а причина не в , а в том, что фактическая длина шага выросла на порядок.
Подробный разбор
- скорость обучения — длина шага оптимизатора
- коэффициент инерции (momentum): доля прошлого направления
- веса модели — то, что подбирается при обучении
- номер или количество: индекс шага, число соседей, кластеров или позиций
- функция потерь — то, что минимизируется при обучении
- градиент: вектор частных производных
Скользящее среднее гасит колебания поперёк оврага (там знаки чередуются и взаимно уничтожаются) и усиливает движение вдоль дна (там знаки совпадают и складываются). Эффективный шаг вдоль стабильного направления увеличивается примерно в раз.
При инерция даёт ускорение примерно в 10 раз по сравнению с чистым в направлении, где стабилен.
- скорость обучения — длина шага оптимизатора
- коэффициент инерции (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%
Размер батча · Оптимизация обученияЧисло объектов на одно обновление весов: влияет на скорость, память и качество обобщения.
Всё, что названо в описании, разобрано здесь же или в соседней теме — переходы под каждым определением.
Скорость (velocity)
Накопленное среднее : . Именно оно, а не сам , задаёт шаг.
Разбор ниже: Как работает инерцияКоэффициент
Обычно 0.9: эффективно усредняется около 10 последних .
Разбор ниже: Как работает инерцияNesterov
считается в точке, куда инерция уже собирается привести, — упреждающая коррекция.
Разбор ниже: Ускорение НестероваГашение колебаний
Противоположно направленные компоненты сокращаются при усреднении, согласованные накапливаются.
Разбор ниже: Как работает инерцияГлава «Оптимизация обучения» последний раз правилась . Нашли ошибку — напишите.