Overshoot: Taking advantage of future gradients in momentum-based stochastic optimization
Jakub Kopal, Michal Gregor, Santiago de Leon-Martinez, Jakub Simko
TL;DR
Overshoot introduces a momentum-based optimization that computes gradients at overshot weights to exploit future gradient information. It unifies CM, NAG, and vanilla SGD, and provides efficient SGDO and AdamO implementations with zero memory overhead. Across a diverse set of tasks, Overshoot accelerates convergence and improves final generalization, though the optimal overshoot factor is task-dependent. Limitations include limited theoretical guarantees and the need for adaptive gamma strategies in practice.
Abstract
Overshoot is a novel, momentum-based stochastic gradient descent optimization method designed to enhance performance beyond standard and Nesterov's momentum. In conventional momentum methods, gradients from previous steps are aggregated with the gradient at current model weights before taking a step and updating the model. Rather than calculating gradient at the current model weights, Overshoot calculates the gradient at model weights shifted in the direction of the current momentum. This sacrifices the immediate benefit of using the gradient w.r.t. the exact model weights now, in favor of evaluating at a point, which will likely be more relevant for future updates. We show that incorporating this principle into momentum-based optimizers (SGD with momentum and Adam) results in faster convergence (saving on average at least 15% of steps). Overshoot consistently outperforms both standard and Nesterov's momentum across a wide range of tasks and integrates into popular momentum-based optimizers with zero memory and small computational overhead.
