# 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 similar to linear regression, logistic regression, and neural networks. It makes use of first-order derivatives iteratively to reduce the fee operate by updating mannequin coefficients (for regression) and weights (for neural networks).

On this article, we’ll delve into the mathematical principle of gradient descent and discover the right way to carry out calculations utilizing Python. We’ll study varied implementations together with Batch Gradient Descent, Stochastic Gradient Descent, and Mini-Batch Gradient Descent, and assess their effectiveness on a variety of take a look at instances.

Whereas following the article, you’ll be able to try 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 operate.

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

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

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

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

The linear regression mannequin works behind the scenes by going by way 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 normally 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’ve got reached a slope that’s nearly 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 just’ve reached a operate’s minimal or most worth.

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

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

- Choose a place to begin for the mannequin parameters.
- Decide the gradient of the fee operate with respect to the parameters and frequently modify the parameter values by way of iterative steps to reduce the fee operate.
- Repeat step 2 till the fee operate not decreases or the utmost variety of iterations is reached.

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

💡 Generally, the purpose that has been reached might solely be a *native minimal* or a *plateau*. In such instances, 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 probabilities.

`Learning_rate`

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

- If the
`learning_rate`

is about too excessive it might end in a leap that produces a loss worth larger than the start line. A excessive`learning_rate`

may trigger gradient descent to**diverge**,

- If the
`learning_rate`

is about too low it may possibly result in a prolonged computation course of the place gradient descent iterates by way of quite a few rounds of gradient calculations to achieve**convergence**and uncover the minimal loss worth.

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

When utilizing low studying charges, the progress made will likely be regular, whereas excessive studying charges might end in both exponential progress or being caught at low factors.