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

Adam

Adam

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

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

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

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

  • Работает «из коробки» при lr ≈ 1e-3 почти на любой задаче.
  • Быстро сходится, но иногда обобщает хуже SGD с momentum.
  • Bias correction компенсирует смещение оценок на первых шагах.
Тема также относится к главам:Глубокое обучениеОбучение

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

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

1

Механика метода

Два скользящих средних и адаптивный шаг для каждого параметра.

Обозначения
  • скорость обучения — длина шага оптимизатора
  • коэффициент инерции (momentum): доля прошлого направления
  • малая величина: шум, допуск или защита от деления на ноль
  • скользящие средние градиента и его квадрата в адаптивных оптимизаторах
  • веса модели — то, что подбирается при обучении
  • — инерция (первый момент), — масштаб градиента (второй момент).
  • Деление на делает шаг большим там, где градиенты малы, и наоборот — это лечит эффект оврага.
  • Bias correction нужен потому, что и инициализированы нулями и первые шаги были бы недооценены.
  • Дефолты: , , , .
методSGD
шагов сделано30
f(x, y)0.2153
‖(x, y)‖0.656
Оптимизатор
Adam выравнивает масштаб по осям — траектория идёт почти прямо к минимуму
2

Когда Adam хуже SGD

Быстрая сходимость не равна лучшему обобщению.

В задачах компьютерного зрения SGD с momentum и хорошим расписанием часто даёт лучшее итоговое качество, хотя сходится медленнее. Одна из гипотез: адаптивный шаг приводит в более «острые» минимумы.

На практике

Память: Adam хранит два состояния на каждый параметр. Для модели на 7 млрд параметров это ~56 ГБ в fp32 только под оптимизатор — отсюда 8-битные оптимизаторы и ZeRO-шардинг.

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

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

Optimization85%

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

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

Optimizers85%

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

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

Gradient Descent85%

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

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

SGD85%

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

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

Momentum85%

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

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

AdamW85%

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

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

RMSProp85%

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

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

Learning Rate Scheduling85%

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

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

Batch size85%

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

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