
Issue #25 Training Edwin Dong
Efficient Optimization Algorithms: Mathematically Explained
Free editionPRO edition
In deep learning, an optimizer (or optimization algorithm) is a crucial element that fine-tunes a neural network’s parameters (weights and biases) during training.
Last week, we went over some simple optimization algorithms that were easy to use and easy to understand. It is highly recommended that you read that issue first, so if you want to check it out, it can be found in the link below:
Before continuing, it is important to have a good understanding of neural networks and the mathematics behind them (which can be found in the previous issue).
Make sure you understand basic multivariable calculus, linear algebra, and have a solid understanding of gradient descent.
In real practice, the optimization methods mentioned in last week’s issue do not work that well compared to more modern ones in terms of efficiency and efficacy.
Weirdly shaped parameter spaces and other issues become very apparent in many of the simple gradient descent based optimization algorithms.
For instance, in Stochastic Gradient Descent (SGD) or Mini-batch Gradient Descent (Mini-batch GD), the optimizer will oscillate a lot, leading to a longer convergence time and the risk of getting stuck in saddle points or other flat areas.
Although updating the parameters in batches or at every data point decreased the risk of getting stuck in these points, we can still make improvements as they are not fully effective at prevention.
To combat these problems, one of the first things researchers decided to do was to introduce something called momentum.
This edition is for PRO members.


