Devmind.
Menu

Apprendre, à votre rythme

Tous les cursus sont accessibles sans compte.

Chapitre 7 / Pratique

Atelier : pas qui converge et pas qui diverge

Comparer deux pas sur la même perte.

◷ 25 minutesTravail sur votre machine

É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.