# How to get out of local minimums on stochastic gradient descent?

I'm not programming a neural network but I'm looking at it from a non-hands-on, theoretical point of view and I'm currently wondering how to escape a local minimum and how to get to a global minimum.

If you start at a point, for instance: (red)

When you compute the gradient of the error function and step in the direction of greatest descent, you'd end up in that immediate local minimum. AFAIK, you'd get stuck there. How do neural network trainers go about this? Do they start from a new random configuration of weights at each batch and see if the cost is smaller, or is there some way of immediately getting to the global minimum?

I've heard of a method resetting the learning rate to 'pop' out of local minimums but I'm not sure how that works when the gradient is 0. I've also heard that stochastic gradient descent is more reliable than gradient descent at finding global minimums, but I don't know how using the training data in batches rather than all at once allows it to steer around local minimum in the example, which is clearly steeper than the path to the global minimum behind it.

I don't know how using the training data in batches rather than all at once allows it to steer around local minimum in the example, which is clearly steeper than the path to the global minimum behind it.

So, stochastic gradient descent is more able to avoid local minimum because the landscape of batch loss function is different than the loss function of whole dataset (the case when you calculate the losses on all data and then update parameters). That means the gradient on the whole dataset could be 0 at some point, but at that same point, the gradient of the batch could be different (so we hope to go in other direction than the local minimum).

## Neural network architecture and loss landscape

In order to escape the local minimum, your neural architecture can also help. For example, see this work: Visualizing the Loss Landscape of Neural Nets. It shows that skip connections can smoothen your loss landscape and, hence, help the optimizers to find the global minimum more easily.

## Local minimums vs global optimum

Finally, there are some works suggesting that the local minimums have almost the same function value as the global optimum. See this question and answer.

• It should be also said that mini-batches is not the only source of stochasticity introduced to avoid local minima. Also, the fact that we have so many variables makes local minima unlikely. Saddle points are more common which are considerably easier to get away from. This is why in practice neural network training works as well as it does. Jan 24, 2019 at 20:37

Ordinary, vanilla gradient descent (GD) is a numerical approximation method, and not inherently stochastic. A stochastic process by nature has some "randomness", which a numerical method like GD does not have (unless you want to debate that the data set is itself inherently random and GD obtains it's stochastic properties from the data).

It's fairly common for numerical methods like GD to get stuck in their local minimums/maximums. I've a few lectures on optimization methods, here is one on simulated annealing. Methods like simulated annealing have an advantage over deterministic numerical methods because they allow some randomness to be involved in the global optimum search. Whereas deterministic methods can often be fooled by following the steepest direction, or the nearest optima.

GD, whether done in batch or by individual sample, more than often gets stuck in a local minimum, especially with deeper networks because the cost function becomes more and more complicated.

Overall, GD on its own is not a great method for truly finding a global optimum. A better approach would be to include some random perturbation in the weight update step as discussed by Robert & Casella. Their approach is actually very similar to simulated annealing.

Other methods include similar Monte Carlo approaches to adding stochastic properties to the GD step in neural network learning.

The Berkeley Artificial Intelligence Research (BAIR) lab has a nice blog post, Minibatch Metropolis-Hastings , of combining GD methods with Metropolis-Hastings steps. It'll be a little out of your field of interest, but it is a good example of how GD can be modified to work better.