Grafi di Calcolo

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.

Dove si trova nel MLUn grafo di calcolo è autograd. Quando scrivi un modello in PyTorch, ogni operazione registra silenziosamente un nodo; chiamare loss.backward() percorre il grafo al contrario, moltiplicando Jacobiane locali via la regola della catena, e deposita ∂loss/∂w su ogni parametro. Non scrivi mai una derivata a mano, e quella comodità, derivate calcolate esattamente e gratuitamente, è gran parte del…
▶ Grafi di Calcolo
← Regola della Catena: Forma MatricialePunti Critici in Rⁿ →