Idée
Quand on ajoute un petit vecteur à une grande matrice, on imagine que le petit vecteur est recopié autant de fois qu'il faut pour combler.
Outil
Comme un patron qui distribue la même fiche de paie à tous ses employés : chacun reçoit la même valeur ajoutée à sa colonne.
Formule
Pour $\partial L / \partial b^{[2]}$, le résultat doit être de dimension $(n_2, 1)$. On part de $dZ^{[2]}$ qui est $(n_2, m)$. Expliquez pourquoi sommer suivant l'axe 1 (les colonnes) est la bonne opération, et faites le lien avec le broadcasting utilisé en forward propagation.
Piège
On peut écrire for j in range(m): Z[:,j] += b.flatten(). Marche, mais lent. Le broadcasting Numpy Z + b (avec b shape (n,1) et Z shape (n,m)) fait la même chose en un appel C optimisé. Vidéo 8 insiste : 'le broadcasting nous permet d'étendre les dimensions du tableau y'.