A Second look at Exponential and Cosine Step Sizes: Simplicity, Adaptivity, and Performance

Xiaoyu Li, Zhenxun Zhuang, Francesco Orabona
2/12/2020
stat.MLcs.LG

Official code: zhenxun-zhuang/SGD-Exponential-Cosine-Stepsize (5 stars, last commit 2022-08-03).

Abstract

Stochastic Gradient Descent (SGD) is a popular tool in training large-scale machine learning models. Its performance, however, is highly variable, depending crucially on the choice of the step sizes. Accordingly, a variety of strategies for tuning the step sizes have been proposed, ranging from coordinate-wise approaches (a.k.a. ``adaptive'' step sizes) to sophisticated heuristics to change the step size in each iteration. In this paper, we study two step size schedules whose power has been repeatedly confirmed in practice: the exponential and the cosine step sizes. For the first time, we provide theoretical support for them proving convergence rates for smooth non-convex functions, with and without the Polyak-Łojasiewicz (PL) condition. Moreover, we show the surprising property that these two strategies are \emph{adaptive} to the noise level in the stochastic gradients of PL functions. That is, contrary to polynomial step sizes, they achieve almost optimal performance without needing to know the noise level nor tuning their hyperparameters based on it. Finally, we conduct a fair and comprehensive empirical evaluation of real-world datasets with deep learning architectures. Results show that, even if only requiring at most two hyperparameters to tune, these two strategies best or match the performance of various finely-tuned state-of-the-art strategies.

View on arXivView PDF

Code Implementations(1)

Implementation of the paper "Exponential Step Sizes for Non-Convex Optimization"

51sed, ShellFeb 12, 20204 years ago

Similar Papers

Cite this paper

@article{li2020second,
  title  = {A Second look at Exponential and Cosine Step Sizes: Simplicity, Adaptivity, and Performance},
  author = {Xiaoyu Li and Zhenxun Zhuang and Francesco Orabona},
  year   = {2020},
  eprint = {2002.05273},
  archivePrefix = {arXiv},
  url    = {https://arxiv.org/abs/2002.05273}
}

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/2002.05273.svg)](https://codeofpaper.com/paper/2002.05273)

Discussion