Imaginez un randonneur perdu dans le brouillard cherchant à descendre une vallée le plus vite possible : à chaque pas, il tâte la pente sous ses pieds et avance dans la direction qui descend le plus. L'optimiseur est exactement ce randonneur : c'est l'algorithme qui ajuste les poids d'un réseau de neurones, pas après pas, pour minimiser la fonction de perte (l'erreur du modèle).
Le principe : la descente de gradient
L'optimiseur s'appuie sur le gradient, c'est-à-dire la dérivée de la perte par rapport à chaque poids — la « pente » mathématique. La règle de mise à jour la plus simple, la descente de gradient stochastique (SGD), s'écrit :
$$\theta_{t+1} = \theta_t - \eta \nabla_\theta L(\theta_t)$$
où $\theta$ représente les poids, $\eta$ le taux d'apprentissage (la taille du pas), et $\nabla_\theta L$ le gradient. Un pas trop grand fait diverger l'entraînement ; un pas trop petit le rend interminable.
Les grandes familles
Les optimiseurs modernes ajoutent de la mémoire et adaptent le pas à chaque paramètre.
| Optimiseur | Idée clé | Atout |
|---|---|---|
| SGD | Pas fixe | Simple, robuste |
| Momentum | Accumule la vitesse | Traverse les plateaux |
| RMSProp | Pas adaptatif par poids | Gère les échelles |
| Adam | Momentum + adaptatif | Standard par défaut |
Adam (Kingma & Ba, 2014) combine l'inertie du momentum et l'adaptation de RMSProp ; c'est aujourd'hui le choix par défaut pour entraîner la plupart des grands modèles.
Sans optimiseur, un réseau ne serait qu'une boîte de chiffres figés : c'est lui qui transforme l'erreur en apprentissage.