Cálculo multivariável a partir dos primeiros princípios
Uma única estrutura de dados organiza tudo das duas últimas lições: o grafo de computação. Toda operação aritmética de um modelo (soma, multiplicação, matmul, ativação) torna-se um nó num grafo direcionado. É com este grafo que PyTorch, JAX e TensorFlow calculam gradientes automaticamente.
O treinamento percorre o grafo em duas varreduras. O forward pass flui da esquerda para a direita, calculando e guardando em cache o valor de cada nó. O backward pass flui da direita para a esquerda, usando a regra da cadeia para empurrar o gradiente da loss de volta até cada entrada, um nó de cada vez.
A ideia que faz tudo isso escalar: cada nó só precisa conhecer a sua própria derivada local. Para enviar o gradiente para trás através de um nó, multiplique o gradiente que chega (de cima) pela Jacobiana local do nó (ou seja, por como a sua saída depende das suas entradas). Nenhum nó precisa da imagem global; as regras locais encadeadas entre si produzem o gradiente total exato.