Ответ вслух Middle SGD, momentum и Adam обновлено

SGD, momentum и Adam

Вопрос

Сравните SGD, SGD с momentum и Adam: как работают, плюсы и минусы, что выберете по умолчанию.

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Обычный SGD делает шаг против градиента мини-батча с одним learning rate для всех параметров. Он прост, экономен по памяти, но медленно идёт по плохо обусловленным «оврагам» и чувствителен к lr.

Что должно прозвучать в ответе

  • SGD: шаг против градиента батча, один lr на всё

  • Momentum: экспоненциальное среднее градиентов, гасит зигзаги

  • Adam: momentum плюс нормировка по √v для каждого параметра

  • Память: Adam хранит два доп. тензора на параметр

  • По умолчанию AdamW для трансформеров, SGD+momentum бывает лучше в CV

Что могут спросить следом

  • Почему AdamW, а не Adam с L2?
  • Что такое Lion или другие современные оптимизаторы, слышали?

Разбор

Обычный SGD делает шаг против градиента мини-батча с одним learning rate для всех параметров. Он прост, экономен по памяти, но медленно идёт по плохо обусловленным «оврагам» и чувствителен к lr. Momentum накапливает экспоненциальное среднее градиентов: вдоль стабильного направления разгоняется, поперёк колебания гасятся. Adam добавляет к этому адаптивную нормировку: делит шаг каждого параметра на корень из скользящего среднего его квадратов градиента, плюс поправку смещения в начале. Он быстро сходится без тонкой настройки и хорошо работает с разреженными градиентами, но хранит два дополнительных тензора на параметр, то есть оптимизатор весит вдвое больше модели. По умолчанию беру AdamW с warmup и косинусным затуханием, особенно для трансформеров. Для свёрточных сетей в CV с BatchNorm SGD с momentum и хорошим расписанием часто даёт такое же или лучшее качество на тесте.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.