← Tous les exercices
Le réglage α / r et le départ à zéro
Partie 4 · ★★
En pratique, la bibliothèque multiplie la correction par α / r (ici 16 / 8 = 2 ; l'exemple jouet est de rang 1, mais on garde le α / r du cours pour voir l'effet du facteur) : la sortie devient x W₀ + (α/r) × x A B. Au départ, B est remplie de zéros : la correction est nulle et le modèle se comporte exactement comme le modèle de base. L'entraînement construit ensuite la correction, pas après pas.
Reprends l'exemple en dimension 2 (mêmes x, W₀, A, B que pour ΔW), applique le facteur, puis vérifie le départ avec B = zéros. matmul et add sont fournies.
def matmul(M, N): return [[sum(a * b for a, b in zip(ligne, col)) for col in zip(*N)] for ligne in M] def add(M, N): return [[a + b for a, b in zip(l1, l2)] for l1, l2 in zip(M, N)] x = [[1.0, 1.0]] W0 = [[1.0, 0.0], [0.0, 1.0]] A = [[0.0], [1.0]] B = [[0.5, 0.0]] alpha, r = 16, 8 echelle = alpha / ___ correction = [[echelle * v for v in ligne] for ligne in matmul(x, matmul(A, B))] sortie = add(matmul(x, W0), ___) B0 = [[0.0, 0.0]] correction0 = matmul(x, matmul(A, ___)) sortie_depart = add(matmul(x, W0), correction0)
Ctrl/⌘+Entrée