K-Means pas à pas
Affectation, mise à jour, affectation… Suivez les centres jusqu’à la convergence, et découvrez les cas où K-Means se trompe : mauvais départ, groupes étirés, anneaux.
Trois optimiseurs partent du même point sur une surface à deux variables. Comparez leurs trajectoires sur les lignes de niveau : zigzag, élan, pas adaptatif.
| optimiseur | η | f(θ) | distance au minimum |
|---|---|---|---|
| Descente de gradient | 0,09 | 30,5 | 4,272 |
| Moment | 0,02 | 30,5 | 4,272 |
| Adam | 0,3 | 30,5 | 4,272 |
Sur une surface à deux variables, le gradient est un vecteur qui pointe vers la plus forte montée. Les trois optimiseurs l'utilisent différemment.
Chaque pas suit la pente locale, sans mémoire. Dans une vallée étroite, la pente est forte en travers et faible le long du fond : le point zigzague d'un flanc à l'autre et progresse lentement vers le minimum. Augmenter accélère le fond mais fait diverger le travers.
La vitesse accumule les gradients passés. Les composantes qui changent de signe à chaque pas (le travers de la vallée) s'annulent ; celles qui gardent le même signe (le fond) s'additionnent. Avec , un gradient constant est amplifié jusqu'à dix fois. Le prix : la trajectoire peut dépasser le minimum et y revenir en spirale.
Adam divise chaque coordonnée du pas par une estimation de l'amplitude récente de son gradient ( et sont les moyennes corrigées de leur biais de départ). Chaque direction reçoit ainsi son propre pas effectif, de l'ordre de quelle que soit la raideur : la vallée étroite ne le gêne presque plus.
Aucun optimiseur n'est « le meilleur » : sur la figure 2, comparez la vitesse (pente de la courbe) et la stabilité (oscillations).
Affectation, mise à jour, affectation… Suivez les centres jusqu’à la convergence, et découvrez les cas où K-Means se trompe : mauvais départ, groupes étirés, anneaux.
Déplacez les points et regardez la droite des moindres carrés suivre. Puis apprenez la même droite par descente de gradient et comparez.
Faites glisser un noyau 3 × 3 sur une image : flou, netteté, détection d’arêtes. Modifiez les poids et suivez le calcul d’un pixel, terme à terme.