COMPUTE WARS · BOOTSTRAPPING

Magik LLM
Gathering

Selando o pacto…
Pular para o conteúdo
Classical ML dl-era 1986 technique

Backpropagation

Algoritmo que ajusta pesos de redes neurais propagando erro do output para input via chain rule.

O quê

Backpropagation (ou backprop) é o algoritmo que calcula os gradientes de uma função de loss em relação a cada parâmetro de uma rede neural, aplicando recursivamente a regra da cadeia do cálculo. Sem backprop, treinar redes neurais profundas com gradient descent seria computacionalmente intratável.

A ideia data dos anos 1960–70 — Henry J. Kelley (1960), Stuart Dreyfus (1962), Seppo Linnainmaa (1970, descreveu como “reverse-mode automatic differentiation”), Paul Werbos (1974, tese de doutorado em Harvard). Mas foi Rumelhart, Hinton e Williams (Nature, 1986) que mostraram, com experimentos convincentes, que backprop conseguia treinar multi-layer perceptrons para resolver tarefas não-triviais (XOR, paridade, codificação simétrica). Essa publicação tirou redes neurais do AI Winter pós-Minsky-Papert.

Toda rede neural moderna — CNN para visão, transformer para linguagem, diffusion para imagem, RL policy network — é treinada com alguma variante de backprop. É o algoritmo central do deep learning.

Como funciona

A regra da cadeia, aplicada

Considere uma rede com 2 camadas:

input x → [W₁, b₁] → hidden h = σ(W₁x + b₁) → [W₂, b₂] → output ŷ = W₂h + b₂
loss L = (ŷ - y)²

Queremos saber como L muda quando ajustamos cada peso. Para W₂ é direto:

∂L/∂W₂ = 2(ŷ - y) × h

Para W₁, precisamos da regra da cadeia (porque W₁ afeta ŷ indiretamente, via h):

∂L/∂W₁ = ∂L/∂ŷ × ∂ŷ/∂h × ∂h/∂W₁
       = 2(ŷ - y) × W₂ × σ'(W₁x + b₁) × x

O insight do backprop: calcule os gradientes camada por camada, propagando do output em direção ao input. Cada camada precisa apenas da derivada parcial vinda da camada seguinte (∂L / ∂output daquela camada) — ela combina com derivadas locais (que conhece) para produzir ∂L / ∂input e ∂L / ∂parâmetros.

O passo computacional

Para uma rede com L camadas, treino de um exemplo é:

1. Forward pass: computar e armazenar ativações a[1], a[2], ..., a[L].
2. Loss: L = loss(a[L], y).
3. Backward pass:
   - Iniciar com delta[L] = ∂L / ∂a[L].
   - Para l = L-1, L-2, ..., 1:
       delta[l]    = (W[l+1])ᵀ · delta[l+1] ⊙ σ'(z[l])
       ∂L/∂W[l]    = delta[l] · a[l-1]ᵀ
4. Update: W[l] := W[l] - η · ∂L/∂W[l].

Custo computacional do backward pass é da mesma ordem que o forward pass — uma matriz multiplication por camada, mas no sentido inverso. Esse é o ganho central: gradientes para milhões de parâmetros pelo preço de duas passadas de inferência.

Automatic Differentiation moderno

PyTorch e JAX implementam backprop como caso particular de reverse-mode automatic differentiation (AD). Você não escreve a fórmula da derivada: o framework constrói um grafo computacional durante o forward pass, e percorre o grafo no sentido inverso aplicando regras de derivação locais.

import torch
x = torch.tensor([1.0, 2.0], requires_grad=True)
y = (x ** 2).sum()      # forward: y é função de x
y.backward()            # backward: x.grad agora contém ∂y/∂x = [2.0, 4.0]

Cada operação tensorial tem uma “regra de gradiente” registrada. A magia (autograd) é só varredura do grafo. Internamente, esse grafo pode ser otimizado, paralelizado em GPU, ou — em compiladores como XLA — transformado em kernels customizados.

Por que não tinha sido descoberto antes

Backprop conceitualmente é só a regra da cadeia. Linnainmaa (1970) publicou o algoritmo geral. Werbos (1974) aplicou explicitamente a redes neurais em sua tese. Porque, então, o paper de 1986 é citado como “invenção”?

Três razões pragmáticas:

  1. Hardware: em 1970, computar gradientes para redes maiores que toy era proibitivamente caro.
  2. Sigmoid bem comportada: redes pré-1986 usavam tipicamente função degrau (perceptron), cujo gradiente é zero quase em todo lugar. Sigmoid (proposta por outros antes, mas adotada amplamente pós-RHW) tem derivada $\sigma(z)(1-\sigma(z))$, sempre não-nula. Backprop precisa de ativações diferenciáveis.
  3. Demonstração convincente: Rumelhart, Hinton e Williams resolveram problemas que os críticos (Minsky/Papert) listaram como insolúveis (XOR, paridade), mostrando experimentalmente que MLPs treinados com backprop funcionavam.

A combinação desses três fatores fez backprop “decolar” em 1986, mesmo sendo matematicamente antigo.

Por que importa

Backprop é o método de gradiente único do deep learning. Adam, SGD, RMSProp, AdamW — todos os otimizadores modernos pressupõem que backprop forneceu os gradientes. Mudar de otimizador é trivial; treinar sem backprop é território de pesquisa exótica (Hebbian learning, evolution strategies, target propagation).

Habilita escala. Quando GPT-4 treina com 1.8T parâmetros, backprop computa 1.8T gradientes em cada passo. O custo escala linearmente com o número de parâmetros — exatamente porque a regra da cadeia se aplica localmente. Sem essa propriedade, treinar modelos grandes seria computacionalmente impossível.

Não é como o cérebro aprende. Esse ponto é debatido há 40 anos. O cérebro biológico não tem um sinal de “erro propagado para trás” sináptico óbvio. Hinton, em palestras recentes (2023–2024), explicitamente disse que [VERIFICAR — Hinton “Forward-Forward Algorithm” paper, NeurIPS 2022 workshop] backprop pode não ser biológicamente plausível, e propôs alternativas como o Forward-Forward Algorithm. Por enquanto, nada funciona melhor que backprop em prática.

Gradiente é interpretável. Você consegue olhar para os gradientes e diagnosticar problemas: explodindo (norma > 1000)? Saturando (norma ~ 0)? Tudo em uma direção? Gradient checking é a primeira ferramenta de debugging em DL.

Estado em 2026

  • Backprop continua o algoritmo universal de treino. Cada framework — PyTorch, JAX, MLX, TensorFlow — implementa autograd. Nenhuma alternativa séria desbancou.
  • Mixed precision (FP16 + FP32 mestre, BFloat16) é padrão para reduzir memória do backward pass. H100/B200 têm hardware otimizado para BF16.
  • Gradient checkpointing (re-computar ativações no backward em vez de armazenar) virou padrão para modelos enormes — troca compute por memória.
  • Distributed training (FSDP, ZeRO, DeepSpeed) distribui o backward pass entre GPUs/nós; backprop matematicamente continua o mesmo, mas a coreografia de comunicação é o estado-da-arte.
  • Forward-Forward (Hinton 2022), DFA — Direct Feedback Alignment (Lillicrap et al. 2016) e outras alternativas circulam em papers, mas em 2026 nenhuma destrona backprop em benchmarks reais.
  • Backprop através de tempo (BPTT) treina RNNs/LSTMs; mas RNNs estão obsoletos para sequências longas — transformers + atenção venceram.
  • Reflexões filosóficas sobre Hinton (Nobel 2024) sempre voltam ao paper de 1986. Sem aquele paper, talvez não houvesse AlexNet, ImageNet moment, ou GPT.

Backprop é o mecanismo invisível. Não é tema de carta de jogador médio, mas é o que faz qualquer Modelo do jogo aprender entre matches.

Tratamento de carta — proposta

Backpropagation Técnica · Classical ML / Deep Learning · custo 🟦🟦

Escolha um Modelo seu que sofreu dano neste turno: dê +1/+1 permanente. Ele entra “tocado” no próximo turno (não pode atacar).

“O erro volta. Os pesos ajustam. O próximo passo já sabe um pouco mais.”

A mecânica reflete o trade-off real do treino: backprop te dá força adicional permanente, mas custa um turno de “treino” (não atacar) — exatamente como um modelo em fine-tuning sai temporariamente do circuito de produção.

Veja também

Geoffrey Hinton · Gradient Descent

VEJA TAMBÉM
FONTES
  • Rumelhart, D. E., Hinton, G. E., Williams, R. J. (1986). Learning representations by back-propagating errors. Nature, 323(6088).
  • Werbos, P. (1974). Beyond Regression: New Tools for Prediction and Analysis in the Behavioral Sciences. PhD thesis, Harvard University.
  • Linnainmaa, S. (1970). The representation of the cumulative rounding error of an algorithm as a Taylor expansion of the local rounding errors. MS thesis, University of Helsinki.
  • LeCun, Y., Bottou, L., Bengio, Y., Haffner, P. (1998). Gradient-based learning applied to document recognition. Proceedings of the IEEE.