# Understanding Gradient Descent for Machine Studying | by Idil Ismiguzel | Could, 2023

Gradient descent is a well-liked optimization algorithm that’s utilized in machine studying and deep studying fashions akin to linear regression, logistic regression, and neural networks. It makes use of first-order derivatives iteratively to attenuate the associated fee perform by updating mannequin coefficients (for regression) and weights (for neural networks).

On this article, we’ll delve into the mathematical idea of gradient descent and discover how one can carry out calculations utilizing Python. We’ll study numerous implementations together with Batch Gradient Descent, Stochastic Gradient Descent, and Mini-Batch Gradient Descent, and assess their effectiveness on a spread of take a look at circumstances.

Whereas following the article, you possibly can take a look at the Jupyter Notebook on my GitHub for full evaluation and code.

Earlier than a deep dive into gradient descent, let’s first undergo the loss perform.

**Loss** or **value** are used interchangeably to explain the error in a prediction. A loss worth signifies how completely different a prediction is from the precise worth and the loss perform aggregates all of the loss values from a number of information factors right into a single quantity.

You may see within the picture beneath, the mannequin on the left has excessive loss whereas the mannequin on the suitable has low loss and suits the info higher.

The loss perform (J) is used as a efficiency measurement for prediction algorithms and the principle aim of a predictive mannequin is to attenuate its loss perform, which is decided by the values of the mannequin parameters (i.e., θ0 and θ1).

For instance, linear regression fashions incessantly use squared loss to compute the loss worth and imply squared error is the loss perform that averages all squared losses.

The linear regression mannequin works behind the scenes by going by means of a number of iterations to optimize its coefficients and attain the bottom attainable imply squared error.

## What’s Gradient Descent?

The gradient descent algorithm is often described with a mountain analogy:

⛰ Think about your self standing atop a mountain, with restricted visibility, and also you need to attain the bottom. Whereas descending, you will encounter slopes and move them utilizing bigger or smaller steps. As soon as you have reached a slope that’s virtually leveled, you will know that you have arrived on the lowest level. ⛰

In technical phrases, **gradient** refers to those slopes. When the slope is zero, it might point out that you simply’ve reached a perform’s minimal or most worth.

At any given level on a curve, the steepness of the slope will be decided by a **tangent line** — a straight line that touches the purpose (pink strains within the picture above). Just like the tangent line, the gradient of some extent on the loss perform is calculated with respect to the parameters, and a small step is taken in the other way to scale back the loss.

To summarize, the method of gradient descent will be damaged down into the next steps:

- Choose a place to begin for the mannequin parameters.
- Decide the gradient of the associated fee perform with respect to the parameters and regularly alter the parameter values by means of iterative steps to attenuate the associated fee perform.
- Repeat step 2 till the associated fee perform now not decreases or the utmost variety of iterations is reached.

We will study the gradient calculation for the beforehand outlined value (loss) perform. Though we’re using linear regression with an intercept and coefficient, this reasoning will be prolonged to regression fashions incorporating a number of variables.

💡 Generally, the purpose that has been reached could solely be a *native minimal* or a *plateau*. In such circumstances, the mannequin must proceed iterating till it reaches the worldwide minimal. Reaching the worldwide minimal is sadly not assured however with a correct variety of iterations and a studying fee we are able to improve the possibilities.

`Learning_rate`

is the hyperparameter of gradient descent to outline the dimensions of the training step. It may be tuned utilizing hyperparameter tuning techniques.

- If the
`learning_rate`

is ready too excessive it might lead to a leap that produces a loss worth higher than the place to begin. A excessive`learning_rate`

may trigger gradient descent to**diverge**,

- If the
`learning_rate`

is ready too low it might result in a prolonged computation course of the place gradient descent iterates by means of quite a few rounds of gradient calculations to succeed in**convergence**and uncover the minimal loss worth.

The worth of the training step is decided by the slope of the curve, which implies that as we strategy the minimal level, the training steps change into smaller.

When utilizing low studying charges, the progress made shall be regular, whereas excessive studying charges could lead to both exponential progress or being caught at low factors.