Idée
Un sac unique qui porte tous les coefficients du modèle, étiquetés par leur nom (W1, b1, W2, b2).
Outil
Comme une famille indexée (a_i)_{i∈I} en algèbre — au lieu de variables nommées une à une, on indexe par un libellé.
Formule
Pour un réseau avec $n_0$ entrées, $n_1$ neurones en couche cachée, $n_2$ neurones en couche de sortie : $W^{(1)} \in \mathbb{R}^{n_1 \times n_0}$, $b^{(1)} \in \mathbb{R}^{n_1 \times 1}$, $W^{(2)} \in \mathbb{R}^{n_2 \times n_1}$, $b^{(2)} \in \mathbb{R}^{n_2 \times 1}$. La matrice $X$ est transposée en $\mathbb{R}^{n_0 \times m}$ où $m$ est le nombre d'exemples.
Piège
Si la fonction update fait for key, val in parametres.items(): ... et compte sur l'ordre 'W1, b1, W2, b2', ré-écrire le dict en {W2, b2, W1, b1} peut casser. Python 3.7+ préserve l'ordre d'insertion ; mais une régénération en désordre via **kwargs peut le briser. Préférer optimizer.step() Pytorch qui ne dépend pas de l'ordre.