# What is momentum in Machine Learning?

Optimization algorithms are frequently used in machine learning models to identify the best collection of parameters that minimize a particular cost function. Momentum is a common optimization technique that is frequently utilized in machine learning.

Momentum is a strategy for accelerating the convergence of the optimization process by including a momentum element in the update rule. This momentum factor assists the optimizer in continuing to go in the same direction even if the gradient changes direction or becomes zero. This can aid in improving convergence speed, reducing oscillations, avoiding becoming trapped in local minima, and making the optimization process more resistant to noisy gradients.

## What is momentum in Machine Learning?

Momentum is a gradient descent optimization approach that adds a percentage of the prior update vector to the current update vector to speed up the learning process. In basic terms, momentum is a method of smoothing out model parameter updates and allowing the optimizer to continue advancing in the same direction as previously, minimizing oscillations and increasing convergence speed.

Momentum can be described more precisely as the exponentially weighted moving average of previous gradients. Instead of updating the parameters with the current gradient, the optimizer employs the exponentially weighted moving average of the previous gradients. An exponentially weighted moving average serves as a memory for the optimizer, allowing it to remember the direction it was traveling in and continue in that route even if the current gradient points in a different direction.

## How does momentum work?

To understand how momentum works, first consider how gradient descent optimization works. Gradient descent is an optimization procedure that iteratively updates the model's parameters in the direction of the cost function's steepest descent.

Gradient descent estimates the gradient of the cost function with regard to the model's parameters at each iteration and updates the parameters in the opposite direction as the gradient, causing the cost function to drop. The learning rate governs the magnitude of the parameter updates, and it is normally set to a low value to guarantee that the optimization process converges slowly.

Yet, there are significant downsides to gradient descent that might slow down the optimization process. One of the major disadvantages of gradient descent is that it might become trapped at shallow local minima or saddle points when the gradient is near zero and the optimization process stops. Another disadvantage is that gradient descent might swing between opposite orientations, slowing convergence speed.

Momentum addresses these shortcomings of gradient descent by including a momentum factor in the update process. The momentum term is a fraction of the preceding update vector, which behaves as a "ball moving downhill". The momentum element helps to maintain the optimizer traveling in the same direction as it travels downhill, even if the gradient changes direction or becomes zero. This reduces oscillations and keeps you from getting caught in shallow local minima.

The update rule for momentum can be written as follows −

$$\mathrm{v = \beta\:v\:+\:(1-\beta) abla\:\theta\:J(\theta)}$$

$$\mathrm{\theta\:=\:\theta\:-\:\alpha\:v}$$

The variable v represents the momentum term, is the momentum coefficient, J() is the gradient of the cost function with respect to the parameters and is the learning rate in this equation. Typically, the momentum coefficient is set at 0.9.

The optimizer calculates the gradient of the cost function at each iteration and updates the momentum term as the exponentially weighted moving average of the previous gradients. The parameters are then updated by removing the momentum term multiplied by the learning rate.

## Why is momentum useful in machine learning?

Momentum is helpful in machine learning because it helps to accelerate optimization process convergence, decrease oscillations, and prevent being caught in shallow local minima. Following are some of the main advantages of employing momentum −

### 1. Faster convergence

Momentum aids in the optimization process's convergence by keeping the optimizer going in the same direction as previously, even if the gradient changes direction or becomes zero. This means that the optimizer can take greater steps toward the cost function's minimum, which can help it get there faster.

### 2. Reduced oscillations

Momentum helps to decrease oscillations by smoothing out model parameter updates. The momentum component functions like a "ball rolling downhill," keeping the optimizer going in the same direction even when the gradient changes direction or becomes zero. This implies that the optimizer can avoid swinging between opposing orientations, which can slow down convergence speed.

### 3. Avoiding local minima

Momentum assists the optimizer in avoiding becoming caught in shallow local minima by allowing it to go beyond these places and continue toward the global minimum. The momentum term assists in keeping the optimizer moving in the same direction even when the gradient is near zero, allowing the optimizer to continue advancing toward the cost function's minimum.

### 4. Robustness to noisy gradients

Momentum can also aid the optimization process to be more resistant to noisy gradients. In machine learning, noisy gradients are prevalent, especially when dealing with huge datasets or sophisticated models. Momentum helps to smooth out model parameter updates and lowers the influence of noisy gradients, which can assist to enhance convergence speed.

### 5. Combining with other optimization algorithms

Momentum may be used with other optimization techniques including stochastic gradient descent (SGD) and adaptive learning rates methods like Adagrad, Adadelta, and Adam. Several of these algorithms, in fact, already include momentum in their update rules. The Adam optimizer, for example, combines both momentum and adaptive learning rates to enhance convergence speed and prevent becoming stuck in local minima.

## Conclusion

Momentum is a strong optimization approach that can speed up convergence, minimize oscillations, avoid local minima, and make the optimization process more resistant to noisy gradients. It is frequently used with other optimization techniques such as stochastic gradient descent (SGD) and adaptive learning rate approaches. To acquire the best results for your unique challenge, it is critical to modify the momentum hyperparameters, such as the momentum coefficient and the learning rate.

Updated on: 13-Apr-2023

1K+ Views 