Adam

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
(Новая: {{well|Статья написана с использованием LLM '''DeepSeek-V3''' и проверена участником ~~~~}} '''Adam''' (сокращение от анг...)
 
Строка 82: Строка 82:
== Литература ==
== Литература ==
-
Duchi, J., Hazan, E., & Singer, Y. (2011). Adaptive subgradient methods for online learning and stochastic optimization. Journal of Machine Learning Research, 12(7). (Предшественник — AdaGrad).
+
* Duchi, J., Hazan, E., & Singer, Y. (2011). Adaptive subgradient methods for online learning and stochastic optimization. Journal of Machine Learning Research, 12(7). (Предшественник — AdaGrad).
-
Keskar, N. S., & Socher, R. (2017). Improving generalization performance by switching from adam to sgd. arXiv preprint arXiv:1712.07628. (Анализ проблемы обобщения).
+
* Keskar, N. S., & Socher, R. (2017). Improving generalization performance by switching from adam to sgd. arXiv preprint arXiv:1712.07628. (Анализ проблемы обобщения).
-
Kingma, D. P., & Ba, J. (2014). Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980. (Оригинальная статья).
+
* Kingma, D. P., & Ba, J. (2014). Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980. (Оригинальная статья).
-
Loshchilov, I., & Hutter, F. (2017). Decoupled weight decay regularization. arXiv preprint arXiv:1711.05101. (Модификация AdamW).
+
* Loshchilov, I., & Hutter, F. (2017). Decoupled weight decay regularization. arXiv preprint arXiv:1711.05101. (Модификация AdamW).
-
Polyak, B. T. (1964). Some methods of speeding up the convergence of iteration methods. USSR Computational Mathematics and Mathematical Physics, 4(5), 1-17. (Классический метод моментов).
+
* Polyak, B. T. (1964). Some methods of speeding up the convergence of iteration methods. USSR Computational Mathematics and Mathematical Physics, 4(5), 1-17. (Классический метод моментов).
-
Reddi, S. J., Kale, S., & Kumar, S. (2019). On the convergence of Adam and beyond. arXiv preprint arXiv:1904.09237. (Теоретический анализ расходимости и исправление AMSGrad).
+
* Reddi, S. J., Kale, S., & Kumar, S. (2019). On the convergence of Adam and beyond. arXiv preprint arXiv:1904.09237. (Теоретический анализ расходимости и исправление AMSGrad).
-
Tieleman, T., & Hinton, G. (2012). Lecture 6.5-rmsprop: Divide the gradient by a running average of its recent magnitude. COURSERA: Neural networks for machine learning. (Предшественник — RMSProp).
+
* Tieleman, T., & Hinton, G. (2012). Lecture 6.5-rmsprop: Divide the gradient by a running average of its recent magnitude. COURSERA: Neural networks for machine learning. (Предшественник — RMSProp).
-
Wilson, A. C., Roelofs, R., Stern, M., Srebro, N., & Recht, B. (2017). The marginal value of adaptive gradient methods in machine learning. Advances in neural information processing systems, 30. (Критический анализ адаптивных методов).
+
* Wilson, A. C., Roelofs, R., Stern, M., Srebro, N., & Recht, B. (2017). The marginal value of adaptive gradient methods in machine learning. Advances in neural information processing systems, 30. (Критический анализ адаптивных методов).

Текущая версия

Статья написана с использованием LLM DeepSeek-V3 и проверена участником Bogdan Kormalov 18:11, 18 июля 2026 (MSD)


Adam (сокращение от англ. Adaptive Moment Estimation — адаптивная оценка моментов) — это итеративный градиентный метод оптимизации, основанный на вычислении адаптивной скорости обучения для каждого параметра модели. Был представлен в 2014 году Дидериком П. Кингмой и Джимми Лэй Ба в работе «Adam: A Method for Stochastic Optimization»Kingma, D. P., & Ba, J. (2014). Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980.. Алгоритм объединяет преимущества двух популярных расширений стохастического градиентного спуска (SGD): AdaGrad (работа с разреженными градиентами) и RMSProp (работа с нестационарными целевыми функциями и плохой обусловленностью).

Благодаря сочетанию идеи моментов (инерции) и адаптивного масштабирования шага обучения, Adam на протяжении последнего десятилетия является де-факто стандартным выбором оптимизатора для обучения глубоких нейронных сетей.

Содержание

Исторический контекст и мотивация создания

К моменту публикации статьи в 2014 году глубокие нейронные сети стали доминирующим подходом в задачах компьютерного зрения, распознавания речи и обработки естественного языка. Однако обучение таких моделей упиралось в ряд фундаментальных проблем численной оптимизации:

Плохая обусловленность функции потерь (Ill-conditioning): Ландшафт функции потерь современных сетей имеет сильно вытянутые «овраги». Простой SGD медленно колеблется вдоль крутых стенок оврага и крайне медленно продвигается вдоль пологого дна. Разреженные градиенты (Sparse Gradients): В таких задачах, как обучение представлений слов (word2vec, GloVe) или в моделях с ReLU-активациями, значительная часть признаков обновляется крайне редко. Агрессивное уменьшение шага обучения (как в AdaGrad) приводило к преждевременной остановке обучения для редких, но важных признаков. Нестационарность и шум (Non-stationarity): Мини-батчевые оценки градиентов сильно зашумлены. Требовался механизм, позволяющий сглаживать шум без замедления обучения. Ранее предложенные методы решали лишь часть этих проблем: AdaGradDuchi, J., Hazan, E., & Singer, Y. (2011). Adaptive subgradient methods for online learning and stochastic optimization. Journal of Machine Learning Research, 12(7). накапливал историю градиентов, что хорошо работало для разреженных данных, но приводило к монотонному затуханию шага вплоть до нуля. RMSPropTieleman, T., & Hinton, G. (2012). Lecture 6.5-rmsprop: Divide the gradient by a running average of its recent magnitude. COURSERA: Neural networks for machine learning. заменил сумму квадратов экспоненциальным скользящим средним, решив проблему затухания, но не использовал момент инерции. Adam стал синтезом лучших идей: он соединил «тяжелый шарик» классического SGD с импульсом (Momentum)Polyak, B. T. (1964). Some methods of speeding up the convergence of iteration methods. USSR Computational Mathematics and Mathematical Physics, 4(5), 1-17. и адаптивные скорости обучения RMSProp.

Алгоритм: пошаговый разбор

Пусть f(\theta) — целевая функция потерь, а \theta — вектор параметров. Алгоритм Adam поддерживает экспоненциальные скользящие средние для градиента g_t (первый момент, среднее) и квадрата градиента (второй нецентральный момент, дисперсия) на каждом временном шаге t.

Гиперпараметрами алгоритма являются: \alpha (скорость обучения, learning rate), \beta_1 (коэффициент затухания для первого момента, обычно 0.9), \beta_2 (коэффициент затухания для второго момента, обычно 0.999) и \epsilon (малая константа для численной устойчивости, обычно 10^{-8}).

Шаг 1. Вычисление градиента. На итерации t вычисляется градиент функции потерь по параметрам:

g_t = \nabla_{\theta} f_t(\theta_{t-1})

Шаг 2. Обновление смещенной оценки первого момента (среднее). Этот шаг аккумулирует инерцию, накапливая историю градиентов. Коэффициент \beta_1 близок к 1, что позволяет сглаживать высокочастотный шум в мини-батче:

m_t = \beta_1 m_{t-1} + (1 - \beta_1) g_t

Шаг 3. Обновление смещенной оценки второго момента (нецентрированная дисперсия). Этот шаг накапливает информацию о магнитуде градиента для каждого параметра, что необходимо для адаптивного масштабирования:

v_t = \beta_2 v_{t-1} + (1 - \beta_2) g_t^2

Шаг 4. Коррекция смещения (Bias Correction). В начальный момент времени m_0 и v_0 инициализируются нулями. Это приводит к тому, что на первых шагах оценки смещены к нулю. Деление на (1 - \beta^t) устраняет это смещение:

\hat{m}_t = \frac{m_t}{1 - \beta_1^t}
\hat{v}_t = \frac{v_t}{1 - \beta_2^t}

Шаг 5. Обновление параметров. Финальное правило учитывает и направление (инерцию), и адаптивный шаг:

\theta_t = \theta_{t-1} - \frac{\alpha \cdot \hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon}

Знаменатель представляет собой поэлементный корень из оценки второго момента. Если параметр часто получает большие градиенты, \hat{v}_t для него велик, и шаг \alpha для него уменьшается. Если градиенты малы или редки, шаг увеличивается. Вектор \hat{m}_t работает как инерционный член, усредняя недавние градиенты и проносясь через локальные минимумы.

Практическая роль и преимущества в глубоком обучении

Adam стал стандартным выбором для подавляющего большинства архитектур (Transformers, CNN, GAN) по следующим причинам:

Минимальная настройка гиперпараметров. В то время как SGD с моментом требует тщательного подбора скорости обучения и расписания её затухания, значения Adam по умолчанию (\alpha = 0.001, \beta_1 = 0.9, \beta_2 = 0.999) работают «из коробки» для огромного класса задач.

Инвариантность к масштабу признаков. Благодаря адаптивному знаменателю \sqrt{\hat{v}_t}, алгоритм можно рассматривать как аппроксимацию метода естественного градиента или диагональное масштабирование матрицы Гессе. Это позволяет ему эффективно справляться с плохо обусловленными овражными ландшафтами, где SGD осциллирует.

Робастность к разреженным данным. В моделях вроде Transformer с эмбеддингами редких слов, механизм накопления v_t гарантирует, что редко встречающиеся признаки получат больший шаг обновления на момент появления, не будучи «задавленными» предшествующими нулевыми обновлениями.

Механизм «сходства с тяжелым шаром»: В отличие от чисто адаптивных методов, комбинация m_t и v_t позволяет алгоритму эффективно ускоряться в областях с устойчивым направлением градиента и тормозить в областях с сильной неопределенностью.

Проблемы сходимости и обобщением

Несмотря на популярность, к 2018–2019 годам в сообществе накопились свидетельства принципиальных ограничений Adam.

Расходимость на простых функциях

В 2018 году Уилсон и др. показали, что Adam может расходиться даже на простых одномерных выпуклых задачах, если гиперпараметр \beta_2 не настроен должным образомWilson, A. C., Roelofs, R., Stern, M., Srebro, N., & Recht, B. (2017). The marginal value of adaptive gradient methods in machine learning. Advances in neural information processing systems, 30.. Проблема кроется в экспоненциально скользящем среднем: нестационарное поведение нормы второго момента может привести к тому, что алгоритм «проскакивает» минимум, и адаптивный шаг начинает расти вместо того, чтобы затухать. Это нарушает базовое свойство сходимости, присущее SGD.

Обобщающая способность (Generalization Gap)

Многочисленные эмпирические исследования, в особенности на задачах классификации изображений (CIFAR, ImageNet), выявили, что модели, обученные с Adam, часто показывают более высокую ошибку на тестовой выборке по сравнению с моделями, обученными с помощью SGD с моментом и тщательно настроенным затуханием весов (weight decay)Keskar, N. S., & Socher, R. (2017). Improving generalization performance by switching from adam to sgd. arXiv preprint arXiv:1712.07628.. Адаптивные методы склонны находить «острые» минимумы функции потерь вместо «плоских», что ведет к худшему обобщению.

Модификации: AdamW

Ключевая ошибка в ванильном Adam заключалась в применении L2-регуляризации (weight decay). В SGD ослабление весов и градиент обновления аддитивны и почти эквивалентны. В Adam, однако, L2-регуляризация взаимодействует с адаптивным знаменателем, приводя к тому, что параметры с большими градиентами регуляризуются неэффективно. Лощилов и Хаттер (2019) предложили модификацию AdamWLoshchilov, I., & Hutter, F. (2017). Decoupled weight decay regularization. arXiv preprint arXiv:1711.05101., где затухание весов вынесено из градиента и применяется непосредственно к параметрам (\theta_t = \theta_{t-1} - \eta (\dots) - \eta \lambda \theta_{t-1}). AdamW решил проблему «разрыва в обобщении», став стандартом в современных библиотеках (Hugging Face, PyTorch).

Связь с другими оптимизаторами

Алгоритм Adam занимает центральное место в таксономии стохастических методов, обобщая предшественников:

Если \beta_1 = 0 и \beta_2 \rightarrow 1 (с бесконечным накоплением квадратов), Adam превращается в AdaGrad, который хорош для разреженных данных, но страдает от агрессивного затухания шага.

Если \beta_1 = 0, а \beta_2 фиксировано, Adam становится RMSProp, который в свое время решил проблему затухания AdaGrad, перейдя к скользящему среднему, но не использовал инерцию.

Если \beta_2 \rightarrow 0 (отсутствие адаптивного знаменателя), а знаменатель стремится к единице, Adam вырождается в классический SGD с моментом Нестерова или «тяжелый шарик» (в зависимости от деталей реализации коррекции смещения).

Эта преемственность делает Adam универсальным «зонтичным» методом, поведение которого может быть сведено к более простым оптимизаторам изменением гиперпараметров.

Литература

  • Duchi, J., Hazan, E., & Singer, Y. (2011). Adaptive subgradient methods for online learning and stochastic optimization. Journal of Machine Learning Research, 12(7). (Предшественник — AdaGrad).
  • Keskar, N. S., & Socher, R. (2017). Improving generalization performance by switching from adam to sgd. arXiv preprint arXiv:1712.07628. (Анализ проблемы обобщения).
  • Kingma, D. P., & Ba, J. (2014). Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980. (Оригинальная статья).
  • Loshchilov, I., & Hutter, F. (2017). Decoupled weight decay regularization. arXiv preprint arXiv:1711.05101. (Модификация AdamW).
  • Polyak, B. T. (1964). Some methods of speeding up the convergence of iteration methods. USSR Computational Mathematics and Mathematical Physics, 4(5), 1-17. (Классический метод моментов).
  • Reddi, S. J., Kale, S., & Kumar, S. (2019). On the convergence of Adam and beyond. arXiv preprint arXiv:1904.09237. (Теоретический анализ расходимости и исправление AMSGrad).
  • Tieleman, T., & Hinton, G. (2012). Lecture 6.5-rmsprop: Divide the gradient by a running average of its recent magnitude. COURSERA: Neural networks for machine learning. (Предшественник — RMSProp).
  • Wilson, A. C., Roelofs, R., Stern, M., Srebro, N., & Recht, B. (2017). The marginal value of adaptive gradient methods in machine learning. Advances in neural information processing systems, 30. (Критический анализ адаптивных методов).
Личные инструменты