Clipping Improves Adam-Norm and AdaGrad-Norm when the Noise Is Heavy-Tailed

Savelii Chezhegov, Yaroslav Klyukin, Andrei Semenov, Aleksandr Beznosikov, Alexander Gasnikov +3 more
6/6/2024
cs.LGmath.OC

No official code found. Best implementation: yaroslavkliukin/Clipped-AdaGrad-and-Adam (2 stars, Apache-2.0, last commit 2024-10-03).

Abstract

Methods with adaptive stepsizes, such as AdaGrad and Adam, are essential for training modern Deep Learning models, especially Large Language Models. Typically, the noise in the stochastic gradients is heavy-tailed for the later ones. Gradient clipping provably helps to achieve good high-probability convergence for such noises. However, despite the similarity between AdaGrad/Adam and Clip-SGD, the current understanding of the high-probability convergence of AdaGrad/Adam-type methods is limited in this case. In this work, we prove that AdaGrad/Adam (and their delayed version) can have provably bad high-probability convergence if the noise is heavy-tailed. We also show that gradient clipping fixes this issue, i.e., we derive new high-probability convergence bounds with polylogarithmic dependence on the confidence level for AdaGrad-Norm and Adam-Norm with clipping and with/without delay for smooth convex/non-convex stochastic optimization with heavy-tailed noise. We extend our results to the case of AdaGrad/Adam with delayed stepsizes. Our empirical evaluations highlight the superiority of clipped versions of AdaGrad/Adam in handling the heavy-tailed noise.

View on arXivView PDF

Code Implementations(1)

Apache-2.0
22Python, Jupyter NotebookJun 6, 20242 years agoApache-2.0

Similar Papers

Cite this paper

@article{chezhegov2024clipping,
  title  = {Clipping Improves Adam-Norm and AdaGrad-Norm when the Noise Is Heavy-Tailed},
  author = {Savelii Chezhegov and Yaroslav Klyukin and Andrei Semenov and Aleksandr Beznosikov and Alexander Gasnikov and Samuel Horváth and Martin Takáč and Eduard Gorbunov},
  year   = {2024},
  eprint = {2406.04443},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2406.04443v3}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2406.04443.svg)](https://codeofpaper.com/paper/2406.04443)

Discussion