Backpropagation

[bekpropaghèiscion]

Algoritmo che calcola di quanto correggere ogni parametro di una rete neurale dopo un errore. Senza backprop, il deep learning non esisterebbe.

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.