Idée
Plutôt qu'une équation par neurone, on range tous les poids d'une couche dans un tableau et un seul produit calculé tout en une fois.
Pourquoi
Plutôt qu'une équation par neurone, on range tous les poids d'une couche dans une matrice et tous les biais dans un vecteur, et un seul produit matriciel calculé en une fois les pré-activations de tous les neurones. Rajouter un neurone à la couche, c'est rajouter une ligne à la matrice — pas une équation à recopier. Même geste mental que passer d'un système à $n$ équations à l'écriture $AX = B$ en algèbre linéaire.
Outil
Même geste mental que passer d'un système à $n$ équations à l'écriture $AX = B$ en algèbre linéaire.
Formule
Pour la couche $\ell$ d'un réseau (avec la convention transposée du cours, où chaque ligne de $W^{[\ell]}$ correspond à un neurone) : $$Z^{[\ell]} = W^{[\ell]} , A^{[\ell-1]} + b^{[\ell]}, \qquad A^{[\ell]} = \sigma!\left(Z^{[\ell]}\right)$$ avec la convention $A^{[0]} = X$ pour la couche d'entrée. La sigmoïde est appliquée terme à terme. $W^{[\ell]}$ a pour dimensions $n_\ell \times n_{\ell-1}$ et $b^{[\ell]}$ a pour dimension $n_\ell \times 1$.
Piège
Tentation MPSI face à un réseau à 100 neurones par couche : écrire les 100 équations $z_i = \sum_j w_{ij} x_j + b_i$. Le cours coupé court : on ne le fait jamais en pratique, on vectorise dès le début. La compréhension fine du cas scalaire est un passage obligé, mais l'écriture matricielle est l'outil de travail. Erreur miroir : ne JAMAIS regarder la version scalaire au prétexte qu'on à la matricielle — on perd alors le sens des indices $i, j$.