Calcolo multivariabile dai primi principi
Una struttura dati organizza tutto delle ultime due lezioni: il grafo di calcolo. Ogni operazione aritmetica in un modello (somma, moltiplica, matmul, attivazione) diventa un nodo in un grafo diretto. Questo grafo è come PyTorch, JAX, e TensorFlow calcolano i gradienti automaticamente.
L'addestramento percorre il grafo in due passate. Il forward pass fluisce da sinistra a destra, calcolando e memorizzando in cache il valore di ciascun nodo. Il backward pass fluisce da destra a sinistra, usando la regola della catena per spingere il gradiente dalla loss a ogni input, un nodo alla volta.
L'idea che lo fa scalare: ciascun nodo ha solo bisogno di conoscere la propria derivata locale. Per mandare il gradiente all'indietro attraverso un nodo, moltiplica il gradiente in arrivo (dall'alto) per la Jacobiana locale del nodo (come il suo output dipende dai suoi input). Nessun nodo ha mai bisogno del quadro globale; regole locali concatenate producono il gradiente totale esatto.