Backpropagation, ou retropropagação do erro, é o algoritmo que torna o treinamento de redes neurais viável. Sem ele, deep learning não existiria.
A ideia: depois que o modelo faz uma previsão e descobre o erro, esse erro precisa ser distribuído de volta para todos os pesos da rede — para que cada peso saiba o quanto ele contribuiu para o erro e o quanto deve mudar.
Backpropagation usa a regra da cadeia do cálculo diferencial. Em termos práticos, ele:
- Faz uma "passagem para frente" (forward pass): dados entram, atravessam todas as camadas, geram uma saída.
- Calcula o erro na saída (diferença entre o previsto e o real).
- Faz uma "passagem para trás" (backward pass): o erro é propagado camada por camada, calculando o gradiente para cada peso.
- Os pesos são atualizados via gradiente descendente.
Esse algoritmo foi proposto nos anos 1970, popularizado nos 1980 por Geoffrey Hinton e outros, mas só virou prático nos anos 2010 quando GPUs ficaram poderosas o suficiente.
Hoje, frameworks como PyTorch, TensorFlow e JAX fazem backpropagation automaticamente via autograd — você só descreve a arquitetura da rede e o framework calcula os gradientes para você.
Para o profissional brasileiro de tecnologia, entender backpropagation ajuda a:
- Diagnosticar vanishing gradients (gradientes que ficam tão pequenos que a rede não aprende nas camadas iniciais).
- Diagnosticar exploding gradients (gradientes que ficam gigantes e desestabilizam o treino).
- Entender por que arquiteturas como Transformer, com conexões residuais e LayerNorm, foram projetadas para fazer gradientes fluírem bem.
Em alto nível, backpropagation é o motor de feedback que permite a uma rede com bilhões de parâmetros aprender. É um dos algoritmos mais importantes da história da computação.
