In plain words: A plain-language tour of gradient descent, the trick that nudges a model's settings downhill to cut its errors, comparing the main variants and when each helps or fails. It also covers common pitfalls, training across many machines, and extra tricks for faster, steadier learning.
Abstract
Gradient descent optimization algorithms, while increasingly popular, are often used as black-box optimizers, as practical explanations of their strengths and weaknesses are hard to come by. This article aims to provide the reader with intuitions with regard to the behaviour of different algorithms that will allow her to put them to use. In the course of this overview, we look at different variants of gradient descent, summarize challenges, introduce the most common optimization algorithms, review architectures in a parallel and distributed setting, and investigate additional strategies for optimizing gradient descent.
Sebastian Ruder
arXiv:1609.04747 · cs.LG · submitted Sep 15, 2016 · updated Jun 15, 2017
abstract · pdf · html · Added derivations of AdaMax and Nadam
So each of those training points represents a sort of separable or parallelizable piece of the whole processes, giving you a ton of freedom in how you actually execute the gradient stepping (with one training point, several of them, or all of them). As I understand it, stochasticity in this process interestingly seems to add enough "noise" that local minima seem to be avoided in many cases.
In more general applications of non-linear gradient-based optimization (say for optimizing parametric models in physical engineering), this doesn't necessarily come into play.