La backpropagation (in italiano: retropropagazione) è il modo in cui una rete neurale capisce di chi è la colpa quando sbaglia. Risponde alla domanda: "questo errore di output, quanto dipende da ogni singolo parametro della rete?"
Funziona così, in due fasi:
- Forward pass: l'input attraversa la rete, strato dopo strato, fino a produrre l'output. Si confronta con la risposta giusta e si calcola l'errore.
- Backward pass: l'errore viaggia all'indietro nella rete, strato per strato, distribuendo la "colpa" a ogni parametro. Matematicamente è la regola della catena delle derivate.
Una volta che sai la colpa di ogni parametro, il gradient descent li aggiorna: chi ha sbagliato di più si corregge di più.
Storia rapida: l'algoritmo è del 1986 (Rumelhart, Hinton, Williams), ma è esploso davvero col deep learning negli anni 2010, quando hardware (GPU) e dati lo hanno reso pratico. Senza backprop, niente Transformer, niente ChatGPT, niente.
Problemi noti:
- Vanishing gradient: in reti molto profonde, il gradiente "si spegne" andando indietro. I primi strati non imparano. Soluzione: ReLU, residual connection, batch normalization.
- Exploding gradient: il contrario, gradienti enormi. Si tagliano (gradient clipping).
Costo computazionale: la backprop costa circa il doppio del forward pass. Ecco perché il training è molto più caro dell'inferenza.