No learning rates needed: Introducing SALSA -- Stable Armijo Line Search Adaptation

Philip Kenneweg, Tristan Kenneweg, Fabian Fumagalli, Barbara Hammer
7/30/2024
cs.LGcs.AI

No official code found. Best implementation: TheMody/No-learning-rates-needed-Introducing-SALSA-Stable-Armijo-Line-Search-Adaptation (32 stars, MIT, PyTorch, last commit 2025-05-21).

Abstract

In recent studies, line search methods have been demonstrated to significantly enhance the performance of conventional stochastic gradient descent techniques across various datasets and architectures, while making an otherwise critical choice of learning rate schedule superfluous. In this paper, we identify problems of current state-of-the-art of line search methods, propose enhancements, and rigorously assess their effectiveness. Furthermore, we evaluate these methods on orders of magnitude larger datasets and more complex data domains than previously done. More specifically, we enhance the Armijo line search method by speeding up its computation and incorporating a momentum term into the Armijo criterion, making it better suited for stochastic mini-batching. Our optimization approach outperforms both the previous Armijo implementation and a tuned learning rate schedule for the Adam and SGD optimizers. Our evaluation covers a diverse range of architectures, such as Transformers, CNNs, and MLPs, as well as data domains, including NLP and image data. Our work is publicly available as a Python package, which provides a simple Pytorch optimizer.

View on arXivView PDF

Code Implementations(1)

PyTorchMIT

SaLSa Optimizer implementation (No learning rates needed)

321PythonApr 2, 20241 years agoMIT
learning-rateline-searchoptimizationpytorch

Similar Papers

Cite this paper

@article{kenneweg2024learning,
  title  = {No learning rates needed: Introducing SALSA -- Stable Armijo Line Search Adaptation},
  author = {Philip Kenneweg and Tristan Kenneweg and Fabian Fumagalli and Barbara Hammer},
  year   = {2024},
  eprint = {2407.20650},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2407.20650v1}
}

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

Discussion