← Tous les exercices
ΔW = A · B sur une petite couche
Partie 4 · ★★
Reprenons le calcul à la main en dimension 2. Les poids gelés sont W₀ = l'identité. La correction est ΔW = A B avec A une colonne (de 2 lignes, 1 colonne) et B une ligne (1 ligne, 2 colonnes) : r = 1. L'entrée est la ligne x = [1 ; 1], et la sortie vaut x W₀ + x ΔW (on laisse de côté le facteur α/r pour l'instant).
Calcule d'abord delta_W : l'ordre du produit compte, A puis B pour obtenir une matrice 2 × 2 comme W₀. Les fonctions 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]] delta_W = matmul(___, ___) sortie = add(matmul(x, W0), matmul(x, ___))
Ctrl/⌘+Entrée