Comment un modèle répartit le blâme sur un milliard de boutons d'un seul coup.

SRC·09 Source
Un milliard de boutons, chacun veut sa pente. Un seul balayage les trouve tous.

Un milliard de boutons, chacun veut sa pente. Un seul balayage les trouve tous.

La descente de gradient n'avance que si elle connaît la pente de la perte pour chaque poids — et un vrai modèle en compte des milliards. Les mesurer un par un voudrait dire un milliard de passages complets dans le réseau. La rétropropagation te donne la pente exacte de tous, en un seul balayage en arrière. C'est le moteur qui rend même possible l'entraînement d'un modèle géant.
Touche un bouton, relance, observe le changement — refais-le un milliard de fois.

Touche un bouton, relance, observe le changement — refais-le un milliard de fois.

LθL(θ+ε)L(θ)ε\frac{\partial L}{\partial \theta} \approx \frac{L(\theta + \varepsilon) - L(\theta)}{\varepsilon}
Tu pourrais mesurer l'effet d'un bouton de front : change-le d'un cheveu, relance tout le réseau, et lis de combien la perte a bougé. C'est la formule ci-dessous — et elle coûte un passage complet par bouton. Comme goûter une soupe en recuisant toute la marmite pour chaque pincée de sel : parfaitement juste, et sans espoir à un milliard d'ingrédients.
L'issue est une règle du calcul : multiplier les pentes le long de la chaîne.

L'issue est une règle du calcul : multiplier les pentes le long de la chaîne.

dLdx=dLdydydx\frac{dL}{dx} = \frac{dL}{dy}\cdot\frac{dy}{dx}
La perte n'atteint un poids précoce qu'à travers une chaîne d'étapes. La règle de la chaîne dit que la pente de toute la chaîne, c'est simplement les pentes locales multipliées ensemble. Comme une rangée de lentilles : chacune multiplie le grossissement, donc le zoom final est le facteur de chaque lentille multiplié tout au long de la ligne. Trouve chaque pente locale, multiplie, c'est fini.
Étape un : fais-le tourner vers l'avant et retiens chaque valeur en chemin.

Étape un : fais-le tourner vers l'avant et retiens chaque valeur en chemin.

z(l)=W(l)a(l1)+b(l),a(l)=σ ⁣(z(l))z^{(l)} = W^{(l)} a^{(l-1)} + b^{(l)}, \qquad a^{(l)} = \sigma\!\big(z^{(l)}\big)
Chaque pente locale dépend des valeurs qui ont traversé cette couche — alors tu fais d'abord tourner le réseau vers l'avant et tu mets en cache chacune. Chaque couche mélange ses entrées avec des poids, puis les courbe à travers une courbe. Comme un spéléologue qui pose un fil-guide en entrant : tu suis ce même cordage pour retrouver la sortie. Saute-le, et le passage en arrière n'a rien à multiplier.
Étape deux : pars de l'erreur et pousse le blâme vers l'arrière.

Étape deux : pars de l'erreur et pousse le blâme vers l'arrière.

δ(l)=(W(l+1))δ(l+1)    σ ⁣(z(l))\delta^{(l)} = \big(W^{(l+1)}\big)^{\top}\delta^{(l+1)} \;\odot\; \sigma'\!\big(z^{(l)}\big)
Maintenant balaie vers l'arrière. Pars de l'erreur à la sortie ; à chaque couche, prends le blâme qui arrive, mets-le à l'échelle selon la sensibilité de cette couche, et passe-le en amont. Un seul balayage atteint chaque bouton — le travail commun n'est fait qu'une fois. Comme remonter une fuite à travers les tuyaux : suis la trace humide de la flaque jusqu'au joint vraiment fautif. (δ est la part de blâme de chaque couche.)
Et la pente de chaque bouton tombe toute seule : son blâme fois son entrée.

Et la pente de chaque bouton tombe toute seule : son blâme fois son entrée.

LW(l)=δ(l)(a(l1))\frac{\partial L}{\partial W^{(l)}} = \delta^{(l)}\,\big(a^{(l-1)}\big)^{\top}
Le blâme connu à chaque couche, la pente d'un seul poids n'est que son blâme fois l'entrée qu'il a multipliée — aucune vue d'ensemble requise. Comme une voile : la poussée que tu reçois, c'est le vent fois la toile qui le capte — un produit purement local. Cette localité, répétée partout, c'est ce qui permet à la rétropropagation de passer à l'échelle de milliards de poids.
C'est tout : un passage à l'aller pour retenir, un au retour pour blâmer.

C'est tout : un passage à l'aller pour retenir, un au retour pour blâmer.

La rétropropagation, c'est la règle de la chaîne plus de la comptabilité : tourne vers l'avant une fois et mets en cache, balaie en arrière une fois et multiplie. Pour à peu près le prix de deux passages, tu obtiens la pente exacte de chaque poids — pas le milliard de passages qu'exigeait la voie naïve. Comme un boomerang : un lancer part, et ce même mouvement le ramène jusque dans ta main.
🌱 Tu ne traces pas un milliard de blâmes pour rattraper un verre qui tombe.

🌱 Tu ne traces pas un milliard de blâmes pour rattraper un verre qui tombe.

La rétropropagation apprend en faisant courir chaque erreur vers l'arrière, bouton par bouton, jusqu'à la source exacte de la faute. Un cerveau, presque à coup sûr, ne le fait pas — tu t'ajustes sans jamais calculer un milliard de pentes partielles. Alors, tracer le blâme en arrière, est-ce vraiment ainsi que les esprits apprennent — ou seulement ainsi que les machines le doivent, pour l'instant ? Le prochain saut sera peut-être une façon d'apprendre qui n'a jamais à regarder en arrière.
touchez →balayez ↑ pour approfondirbalayez ↓ pour quitter