Module 6 — Descente de gradient et taux d'apprentissage
Le module 5 a donné l'instrument — le gradient. Ce module le transforme en algorithme : la descente de gradient, la méthode qui entraîne l'immense majorité des modèles d'apprentissage, du plus simple régresseur linéaire aux plus grands réseaux de neurones.
L'algorithme, en quatre étapes qui se répètent
La descente de gradient est une boucle d'une simplicité désarmante :
- Prédire avec les paramètres actuels et calculer le coût (l'erreur).
- Calculer le gradient du coût par rapport à chaque paramètre.
- Mettre à jour chaque paramètre en s'éloignant de la pente.
- Recommencer jusqu'à ce que le coût cesse de baisser.
for epoch in range(n_epochs):
y_pred = X @ w # 1. prédire
erreur = y_pred - y
cout = (erreur ** 2).mean() # coût quadratique moyen
gradient = 2 * X.T @ erreur / len(y) # 2. gradient
w = w - taux_apprentissage * gradient # 3. mise à jour
Cette boucle est le cœur battant de l'apprentissage automatique. Tout le reste — architectures, régularisation, optimiseurs sophistiqués — n'en est qu'un raffinement.
Le taux d'apprentissage : le réglage qui fait tout basculer
Le taux d'apprentissage fixe la taille du pas. C'est l'hyperparamètre le plus déterminant de l'entraînement, et il se règle en équilibriste :
- Trop petit : le modèle apprend, mais avec une lenteur exaspérante ; il peut s'immobiliser dans un creux médiocre.
- Trop grand : les pas dépassent la cible, le coût oscille ou part à l'infini — l'entraînement diverge.
- Bien réglé : le coût descend régulièrement vers un minimum.
Le premier réflexe de diagnostic, quand un entraînement se comporte mal, est presque toujours : « et si je changeais le taux d'apprentissage ? »
Trois saveurs : lot complet, stochastique, mini-lots
Sur combien de données calcule-t-on le gradient à chaque pas ? Trois réponses :
| Variante | Données par pas | Caractère |
|---|---|---|
| Lot complet (batch) | tout le jeu | pas précis mais lents et lourds en mémoire |
| Stochastique (SGD) | une seule observation | pas bruités mais très rapides |
| Mini-lots (mini-batch) | un petit paquet (32, 64…) | le compromis, standard partout |
La descente de gradient par mini-lots domine en pratique : elle combine la stabilité du lot complet et la rapidité du stochastique, tout en exploitant le parallélisme des GPU. Quand vous voyez batch_size=32 dans un code d'entraînement, c'est ce choix qui est fait.
Au-delà du gradient brut : les optimiseurs modernes
La formule est la version de base. Les optimiseurs modernes l'améliorent : le momentum garde de l'élan pour traverser les petits creux, et Adam — le plus utilisé — adapte automatiquement le pas à chaque paramètre. On ne les code pas soi-même ; on choisit Adam dans TensorFlow ou PyTorch. Mais tous reposent sur l'idée de ce module : suivre la pente vers le bas.
En dimension deux, on imagine le randonneur piégé dans un creux qui n'est pas le plus profond (minimum local). En très grande dimension — le cas réel — ces pièges sont rares : il est presque toujours possible de descendre dans une direction parmi des milliers. Le vrai obstacle n'est pas le minimum local mais les plateaux (régions plates où le gradient est quasi nul) et les points-selles, que le momentum et Adam aident précisément à franchir.
En résumé
- La descente de gradient répète : prédire, mesurer l'erreur, calculer le gradient, mettre à jour les paramètres à l'opposé de la pente.
- Le taux d'apprentissage règle la taille du pas : trop petit = lent, trop grand = divergence ; c'est le premier réglage à interroger.
- Trois variantes selon les données par pas ; les mini-lots sont le standard, alliant stabilité, vitesse et parallélisme GPU.
- Les optimiseurs modernes (momentum, Adam) raffinent la formule de base pour franchir plateaux et points-selles.
Module suivant : les probabilités — indépendance et probabilité conditionnelle, le langage de l'incertitude au cœur de tout modèle prédictif.