Como um modelo distribui a culpa por um bilhão de botões de uma só vez.

SRC·09 Source
Um bilhão de botões, cada um precisa da sua inclinação. Uma só varredura acha todos.

Um bilhão de botões, cada um precisa da sua inclinação. Uma só varredura acha todos.

O gradiente descendente só se move se conhece a inclinação da perda para cada peso — e um modelo real tem bilhões. Medi-los um a um significaria um bilhão de passagens completas pela rede. A retropropagação te entrega a inclinação exata de todos eles em uma única varredura para trás. É o motor que torna possível sequer treinar um modelo gigante.
Mexa um botão, rode de novo, veja a mudança — agora faça isso um bilhão de vezes.

Mexa um botão, rode de novo, veja a mudança — agora faça isso um bilhão de vezes.

LθL(θ+ε)L(θ)ε\frac{\partial L}{\partial \theta} \approx \frac{L(\theta + \varepsilon) - L(\theta)}{\varepsilon}
Você poderia medir o efeito de um botão de frente: mude-o um fio, rode a rede inteira de novo e leia quanto a perda se moveu. É a fórmula abaixo — e custa uma passagem completa por botão. Como provar uma sopa recozinhando a panela inteira a cada pitada de sal: perfeitamente correto, e inviável com um bilhão de ingredientes.
A saída é uma regra do cálculo: multiplique as inclinações ao longo da cadeia.

A saída é uma regra do cálculo: multiplique as inclinações ao longo da cadeia.

dLdx=dLdydydx\frac{dL}{dx} = \frac{dL}{dy}\cdot\frac{dy}{dx}
A perda alcança um peso inicial só através de uma cadeia de passos. A regra da cadeia diz que a inclinação de toda a cadeia é apenas as inclinações locais multiplicadas entre si. Como uma fileira de lentes: cada uma multiplica a ampliação, então o zoom final é o fator de cada lente multiplicado ao longo da linha. Ache cada inclinação local, multiplique, pronto.
Passo um: rode para frente e guarde cada valor do caminho.

Passo um: rode para frente e guarde cada valor do caminho.

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)
Cada inclinação local depende dos valores que fluíram por aquela camada — então primeiro você roda a rede para frente e guarda cada um. Cada camada mistura suas entradas com pesos e depois as dobra através de uma curva. Como um espeleólogo estendendo uma linha-guia ao entrar: você segue esse mesmo cabo para achar o caminho de volta. Pule isso, e a passagem para trás não tem nada para multiplicar.
Passo dois: comece no erro e empurre a culpa para trás.

Passo dois: comece no erro e empurre a culpa para trás.

δ(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)
Agora varra para trás. Comece com o erro na saída; em cada camada, pegue a culpa que chega, escale-a conforme o quanto aquela camada era sensível, e passe-a rio acima. Uma só varredura alcança cada botão — o trabalho compartilhado é feito uma única vez. Como rastrear um vazamento pelos canos: siga o rastro úmido da poça até a junta de fato culpada. (δ é a parte da culpa de cada camada.)
E a inclinação de cada botão surge sozinha: sua culpa vezes sua entrada.

E a inclinação de cada botão surge sozinha: sua culpa vezes sua entrada.

LW(l)=δ(l)(a(l1))\frac{\partial L}{\partial W^{(l)}} = \delta^{(l)}\,\big(a^{(l-1)}\big)^{\top}
Com a culpa conhecida em cada camada, a inclinação de um único peso é apenas sua culpa vezes a entrada que ele multiplicou — sem precisar de uma visão global. Como uma vela: o empurrão que você recebe é o vento vezes o pano que o captura — um produto puramente local. Essa localidade, repetida em toda parte, é o que deixa a retropropagação escalar para bilhões de pesos.
É isso: uma passagem de ida para lembrar, uma de volta para culpar.

É isso: uma passagem de ida para lembrar, uma de volta para culpar.

A retropropagação é a regra da cadeia mais contabilidade: rode para frente uma vez e guarde, varra para trás uma vez e multiplique. Por mais ou menos o preço de duas passagens você obtém a inclinação exata de cada peso — não o bilhão de rodadas que o jeito ingênuo exigia. Como um bumerangue: um lançamento sai, e esse mesmo movimento o traz todo o caminho de volta à sua mão.
🌱 Você não rastreia um bilhão de culpas para aparar um copo que cai.

🌱 Você não rastreia um bilhão de culpas para aparar um copo que cai.

A retropropagação aprende rodando cada erro para trás, botão por botão, até a fonte exata da falha. Um cérebro quase com certeza não faz isso — você se ajusta sem nunca calcular um bilhão de inclinações parciais. Então rastrear a culpa para trás é realmente como as mentes aprendem — ou só como as máquinas precisam, por enquanto? Talvez o próximo salto seja um jeito de aprender que nunca precise olhar para trás.
toque →deslize ↑ para maisdeslize ↓ para sair