Adam

Материал из in.wiki
Перейти к навигации Перейти к поиску

Adam[1] (сокращение от «метод адаптивной оценки моментов», англ. Adaptive Moment Estimation) — одна из модернизацией алгоритма стохастического градиентного спуска, наиболее популярный оптимизатор в современном машинном обучении.

Предложен в 2014 году как обновление оптимизатора RMSProp[1], основанное на комбинировании его с оптимизатором импульса[2].

В этом оптимизационном алгоритме используются скользящие средние как градиентов, так и вторых моментов градиентов. Если даны параметры w ( t ) w^ {(t)} , а функция потерь L ( t ) L ^ {(t)} , где t t отражает индекс текущей итерации (отчёт начинается с 0 0 ), пересчёт параметра алгоритмом Adam задаётся формулами m w ( t + 1 ) β 1 m w ( t ) + ( 1 β 1 ) w L ( t ) m_w ^ {(t+1)} \leftarrow \beta_1 m_w ^ {(t)} + (1 - \beta_1) \nabla _w L ^ {(t)} v w ( t + 1 ) β 2 v w ( t ) + ( 1 β 2 ) ( w L ( t ) ) 2 v_w ^ {(t+1)} \leftarrow \beta_2 v_w ^ {(t)} + (1 - \beta_2) (\nabla _w L ^ {(t)} )^2 m ^ w = m w ( t + 1 ) 1 β 1 t + 1 \hat{m}_w=\frac{m_w ^ {(t+1)}}{1 - \beta_1 ^{t+1}} v ^ w = v w ( t + 1 ) 1 β 2 t + 1 \hat{v}_w=\frac{ v_w ^ {(t+1)}}{1 - \beta_2 ^{t+1}} w ( t + 1 ) w ( t ) η m ^ w v ^ w + ϵ w ^ {(t+1)} \leftarrow w ^ {(t)} - \eta \frac{\hat{m}_w}{\sqrt{\hat{v}_w} + \epsilon}

где ϵ \epsilon является малой добавкой, используемой для предотвращения деления на 0, а β 1 \beta_1 и β 2 \beta_2 являются коэффициентами забывания для градиентов и вторых моментов градиентов соответственно. Возведение в квадрат и квадратный корень вычисляются поэлементно.

Поскольку экспоненциальные скользящие средние градиента m w ( t ) m_w ^ {(t)} и квадрата градиента v w ( t ) v_w ^ {(t)} инициализируются вектором из нулей, на первых итерациях обучения возникнет смещение в сторону нуля. Для компенсации этого смещения и получения более точных оценок m ^ w ( t ) \hat{m}_w ^ {(t)} и v ^ w ( t ) \hat{v}_w ^ {(t)} вводится коэффициент 1 1 β 1 / 2 t \tfrac{1}{1 - \beta_{1/2}^t} .

Первоначальное доказательство, устанавливающее сходимость Adam, было неполным, и последующий анализ показал, что Adam сходится не для всех выпуклых целей[3][4]. Несмотря на это, Adam продолжает использоваться из-за его высокой эффективности на практике[5] и, возможно, общей ригидности сообщества ML-разработчиков, оптимизировавшего используемый технологический стек под наилучшую работу с Adam вместо поиска более эффективных для этой задачи[6] алгоритмов оптимизации[7]. В качестве примера подобных действий приводится тот факт, что, хотя в исходных статьях[8] по сетям Колмогорова-Арнольда (KAN) в качестве оптимизатора использовался приближённый алгоритм оптимизации второго порядка LBFGS, в очень большом числе работ других исследователей, рассматривавших KAN, он был заменён на Adam.

Варианты[править | править код]

Существуют, также, многочисленные варианты и усовершенствования алгоритма.

Популярность Adam вдохновила исследователей на создание множества его усовершенствованных вариантов.

Вот некоторые примеры:

  • Градиенты, улучшенные по Нестерову: NAdam[9], FASFA[10];
  • Различные интерпретации информации второго порядка: Powerpropagation[11] и AdaSqrt[12];
  • Использование нормы Чебышева: AdaMax[13];
  • AMSGrad[14], который улучшает сходимость по сравнению с Adam, используя максимум квадратов прошлых градиентов вместо экспоненциального среднего. AdamX[15] дополнительно улучшает сходимость по сравнению с AMSGrad.
  • AdamW[16] который использует регуляризацию Тихонова.
  • Стохастический градиентный спуск на основе знака. Несмотря на то, что оптимизация на основе знака восходит к методу Rprop, в 2018 году исследователи попытались упростить Adam, исключив из рассмотрения величину стохастического градиента и рассматривая только его знак[17][18].

Примечания[править | править код]

  1. 1,0 1,1 Kingma Diederik, Jimmy Ba (2014). "Adam: A method for stochastic optimization". arXiv:1412.6980 [cs.LG].
  2. 4. Beyond Gradient Descent - Fundamentals of Deep Learning [Book].
  3. Reddi, Sashank J.; Kale, Satyen; Kumar, Sanjiv (2018). On the Convergence of Adam and Beyond. 6th International Conference on Learning Representations (ICLR 2018). arXiv:1904.09237.
  4. Rubio, David Martínez (2017). Convergence Analysis of an Adaptive Method of Gradient Descent (PDF) (Master thesis). University of Oxford. Дата обращения: 5 января 2024. {{cite thesis}}: Проверьте значение даты: |access-date= (справка)
  5. Zhang, Yushun; Chen, Congliang; Shi, Naichen; Sun, Ruoyu; Luo, Zhi-Quan (2022). "Adam Can Converge Without Any Modification On Update Rules". Advances in Neural Information Processing Systems 35. Advances in Neural Information Processing Systems 35 (NeurIPS 2022). arXiv:2208.09632.
  6. Для ряда других приложений, не относящихся к машинному обучению, Adam не является особенно эффективным.
  7. Neural Networks (Maybe) Evolved to Make Adam The Best Optimizer. Bremen79. 6.12.2020.
  8. Awesome KAN(Kolmogorov-Arnold Network)
  9. Dozat, T. (2016). "Incorporating Nesterov Momentum into Adam" (англ.). S2CID 70293087. {{cite journal}}: Cite journal требует |journal= (справка)
  10. Naveen, Philip (2022-08-09). "FASFA: A Novel Next-Generation Backpropagation Optimizer". doi:10.36227/techrxiv.20427852.v1. Дата обращения: 19 ноября 2022. {{cite journal}}: Cite journal требует |journal= (справка)
  11. Whye, Schwarz, Jonathan Jayakumar, Siddhant M. Pascanu, Razvan Latham, Peter E. Teh, Yee. Powerpropagation: A sparsity inducing weight reparameterisation. — 2021-10-01.
  12. Hu, Yuzheng; Lin, Licong; Tang, Shange (2019-12-20). "Second-order Information in First-order Optimization Methods". arXiv:1912.09926. {{cite journal}}: Cite journal требует |journal= (справка)
  13. Kingma, Diederik; Ba, Jimmy (2014). "Adam: A Method for Stochastic Optimization". arXiv:1412.6980 [cs.LG].
  14. Reddi, Sashank J.; Kale, Satyen; Kumar, Sanjiv (2018). "On the Convergence of Adam and Beyond". arXiv:1904.09237. {{cite journal}}: Cite journal требует |journal= (справка)
  15. Tran, Phuong Thi; Phong, Le Trieu (2019). "On the Convergence Proof of AMSGrad and a New Version". IEEE Access. 7: 61706–61716. arXiv:1904.03590. Bibcode:2019IEEEA...761706T. doi:10.1109/ACCESS.2019.2916341. ISSN 2169-3536.
  16. Tran, Phuong Thi; Phong, Le Trieu (2019). "On the Convergence Proof of AMSGrad and a New Version". IEEE Access. 7: 61706–61716. arXiv:1904.03590. Bibcode:2019IEEEA...761706T. doi:10.1109/ACCESS.2019.2916341. ISSN 2169-3536.
  17. Hennig, Philipp; Balles, Lukas. Dissecting Adam: The Sign, Magnitude and Variance of Stochastic Gradients (15 февраля 2018).
  18. SignSGD: Compressed Optimisation for Non-Convex Problems 560–569 (3 июля 2018).