MLP en numpy
Propager à travers deux couches à la main.
Forward explicite
import numpy as np
def relu(z): return np.maximum(0, z)
W1 = np.array([[1., -1.], [0.5, 2.]]); b1 = np.zeros(2)
W2 = np.array([1., 1.]); b2 = 0.
x = np.array([2., 3.])
h = relu(x @ W1 + b1) # cachée
y = h @ W2 + b2 # sortie
Lecture
x @ W1 + b1 = deux sommes pondérées, ReLU casse la linéarité, h @ W2 recombine. Changer W1[0,0] ne touche que le neurone 0 : c'est cette localité que la backprop exploitera en sens inverse.
Pas de correction en ligneConfrontez votre code aux résultats attendus du cours.