Comprendre la descente de gradient
La descente de gradient est l'algorithme qui permet à un modèle d'apprendre. L'idée est simple : ajuster les paramètres pas à pas dans la direction qui réduit l'erreur.
L'intuition
Imaginez une bille lâchée sur une surface vallonnée. Elle roule naturellement vers le bas. La descente de gradient fait pareil avec la fonction de coût : on cherche son minimum.
La formulation mathématique
On note les paramètres du modèle et la fonction de coût. La règle de mise à jour est :
où est le taux d'apprentissage (learning rate) et le gradient du coût par rapport aux paramètres.
Le rôle du taux d'apprentissage
- Si est trop petit, la convergence est lente.
- Si est trop grand, l'algorithme peut diverger.
Une implémentation minimale
Voici une descente de gradient sur une régression linéaire en Python :
import numpy as np
def gradient_descent(X, y, lr=0.01, epochs=100):
theta = np.zeros(X.shape[1])
n = len(y)
for _ in range(epochs):
error = X @ theta - y
grad = (2 / n) * X.T @ error
theta -= lr * grad
return thetaLes lignes surlignées correspondent au cœur de l'algorithme : calcul de l'erreur, du gradient, puis mise à jour des paramètres.
Pour aller plus loin
En pratique on utilise des variantes : descente de gradient stochastique (SGD), mini-batch, ou des optimiseurs adaptatifs comme Adam.