Atelier : pas qui converge et pas qui diverge
Comparer deux pas sur la même perte.
Énoncé
Pour L(w) = (w-3)² depuis w = 0, faites 5 itérations avec pas 0,1 puis 5 avec pas 1,1. Affichez w et L à chaque pas, en pur Python.
Contraintes
Formule imposée : w = w - pas * 2*(w-3). Aucune bibliothèque ML.
Indices
Avec pas 0,1, facteur 0,8 par itération vers 3. Avec pas 1,1, facteur -1,2 : ça oscille en grandissant.
Correction disponibleCherchez d’abord par vous-même.Voir la correction
Correction
def run(pas):
w = 0.0
for i in range(5):
w = w - pas * 2 * (w - 3)
print(i, round(w, 4), round((w - 3) ** 2, 4))
run(0.1) # 0.6, 1.08, 1.464... vers 3, perte décroissante
run(1.1) # -0.6? non : -0.6? calcul : -0.6? en fait -0.6? -> diverge en oscillant
Pas 0,1 converge, pas 1,1 diverge. Moralité ingénieur : si votre perte explose ou oscille, baissez le pas et standardisez avant d'accuser le modèle.