Algoritmo di Back Propagation
Algoritmo di Back Propagation
Categoria: Intelligenza Artificiale | Reti Neurali | Machine Learning | Corsi AI Generativa
Indice dei Contenuti – Algoritmo di Back Propagation
- Che cos’è il Back Propagation e perché è fondamentale
- Il problema dell’apprendimento supervisionato: la funzione errore
- Come funziona: Forward Pass e Backward Pass
- Il Gradient Descent: scendere verso il minimo
- Implementazione pratica con Python e PyTorch
- Vanishing e Exploding Gradient: i problemi reali
- Back Propagation nei modelli moderni: dal MLP ai Transformer
- Best practice: pro e contro dell’algoritmo di Back Propagation
- Conclusioni e formazione continua
Ogni volta che un modello di deep learning impara a riconoscere un’immagine, tradurre un testo o generare codice, c’è un algoritmo che lavora instancabilmente sotto la superficie: il Back Propagation. Introdotto nella sua forma moderna da Rumelhart, Hinton e Williams nel 1986, è ancora oggi il meccanismo di apprendimento più usato nell’intera intelligenza artificiale, dalla regressione logistica ai Transformer che alimentano i modelli generativi. In questo articolo lo analizziamo nel dettaglio: principi matematici, implementazione pratica, problemi noti e soluzioni adottate nel 2026.
1. Che cos’è il Back Propagation e perché è fondamentale
Il Back Propagation (abbreviato in BP, letteralmente “propagazione all’indietro dell’errore”) è un algoritmo di apprendimento supervisionato che consente di addestrare le reti neurali artificiali multi-strato modificando i pesi sinaptici in modo da minimizzare una funzione errore. È il metodo di gran lunga più adottato per l’apprendimento nelle reti neurali profonde e può essere utilizzato indipendentemente dall’architettura adottata e dal numero di strati intermedi (hidden layers).
Il principio fondamentale è semplice: la rete riceve un input, produce un output, confronta quell’output con il valore atteso (etichetta del training set) e calcola l’errore commesso. Quell’errore viene poi propagato all’indietro attraverso tutti gli strati della rete per aggiornare i pesi in modo proporzionale al loro contributo all’errore stesso. Questo ciclo si ripete fino a quando l’errore scende al di sotto di una soglia prefissata o si raggiunge un numero massimo di iterazioni.
Secondo IBM Think, il BP è “essenziale all’ottimizzazione delle reti neurali artificiali” e rappresenta il fondamento matematico su cui si basano tutti i modelli di deep learning moderni, dai più semplici multilayer perceptron fino alle architetture complesse usate per l’AI generativa.
2. Il problema dell’apprendimento supervisionato: la funzione errore
Il training set è un insieme di coppie di vettori (x_i, y_i) dove x_i è il vettore di input e y_i è l’output desiderato. Dato che la rete produce un output o_i per ogni input x_i, l’obiettivo del training è fare in modo che o_i si avvicini il più possibile a y_i per tutte le coppie del training set. La funzione errore da minimizzare è tipicamente la somma dei quadrati degli errori su tutti i pattern e su tutti i neuroni di output:
E(w) = ½ ∑_i ∑_k (y_i_k − o_i_k)²
dove k è l’indice del k-esimo neurone di output, y_i_k è il valore atteso e o_i_k è il valore prodotto dalla rete. La funzione E(w) dipende dai pesi w che variano nel tempo durante il training. Per minimizzare E(w) si utilizza l’algoritmo della discesa del gradiente (gradient descent).
Il training set deve essere il più completo possibile e, nella selezione dei pattern di input durante l’addestramento, ogni pattern precedentemente estratto non deve partecipare alla scelta successiva (estrazione senza reinserimento). Solo quando tutti i pattern sono stati estratti almeno una volta si ricomincia dall’insieme completo. Questo approccio garantisce che la rete non sviluppi bias verso determinati esempi.
3. Come funziona: Forward Pass e Backward Pass
L’algoritmo di Back Propagation si articola in due fasi distinte che si ripetono ciclicamente per ogni pattern del training set.
Forward Pass (propagazione in avanti)
Un pattern di input viene estratto dal training set e propagato attraverso tutti gli strati della rete, dal livello di input fino al livello di output. Per ogni neurone si calcola la somma pesata degli input moltiplicati per i pesi delle connessioni, si sottrae il valore di soglia di attivazione del neurone e si filtra il risultato attraverso la funzione di attivazione (tipicamente una sigmoide, una ReLU o una tangente iperbolica). Il valore di uscita di ogni neurone diventa l’input del neurone successivo. Al termine di questo passo si dispone dell’output prodotto dalla rete per quel pattern.
Backward Pass (propagazione all’indietro)
L’errore E(w) calcolato confrontando l’output prodotto con quello atteso viene propagato all’indietro. Per ogni peso della rete si calcola la derivata parziale dell’errore rispetto a quel peso (ovvero il gradiente). Il gradiente indica di quanto e in quale direzione modificare il peso per ridurre l’errore. Si applicano poi le correzioni ai pesi con la regola di aggiornamento delta: il peso viene aggiornato sottraendo il gradiente moltiplicato per il tasso di apprendimento (learning rate η). Questo processo utilizza la regola della catena del calcolo differenziale (chain rule) per propagare efficientemente i gradienti attraverso tutti gli strati.
4. Il Gradient Descent: scendere verso il minimo
Il gradient descent parte da un punto generico nello spazio dei pesi e calcola il gradiente della funzione errore in quel punto. Il gradiente fornisce la direzione verso la quale si ha il massimo incremento della funzione errore: quindi per minimizzare l’errore ci si muove nella direzione opposta al gradiente. Una volta definita la direzione, ci si muove di una distanza h (il learning rate, predefinita) trovando un nuovo punto sui pesi, dove viene ricalcolato il gradiente. Si continua così finché il gradiente risulta sufficientemente vicino a zero.
La scelta del learning rate è critica: un valore troppo elevato può causare oscillazioni o divergenza (il modello salta il minimo), mentre un valore troppo basso rallenta enormemente il training. Nella pratica moderna si utilizzano ottimizzatori adattativi come Adam (Adaptive Moment Estimation) che aggiustano automaticamente il learning rate per ogni parametro durante il training, offrendo convergenza più rapida e stabile rispetto al semplice gradient descent.
5. Implementazione pratica con Python e PyTorch
Vediamo come il Back Propagation si traduce in codice concreto. Con PyTorch, il framework più usato nel 2026 per la ricerca e la produzione di modelli di deep learning, il BP è gestito automaticamente dall’autograd engine tramite la chiamata a loss.backward().
import torch
import torch.nn as nn
# Definizione di una rete neurale semplice a 2 strati
class SimpleNet(nn.Module):
def __init__(self, input_size, hidden_size, output_size):
super(SimpleNet, self).__init__()
self.layer1 = nn.Linear(input_size, hidden_size)
self.relu = nn.ReLU() # funzione di attivazione
self.layer2 = nn.Linear(hidden_size, output_size)
def forward(self, x): # Forward Pass
x = self.relu(self.layer1(x))
return self.layer2(x)
model = SimpleNet(4, 8, 1)
criterion = nn.MSELoss() # funzione errore
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)
# Training loop: il cuore del Back Propagation
for epoch in range(100):
optimizer.zero_grad() # azzera i gradienti
output = model(X_train) # Forward Pass
loss = criterion(output, y_train) # calcola l'errore
loss.backward() # Backward Pass: calcola i gradienti
optimizer.step() # aggiorna i pesi
In sole quattro righe operative (zero_grad, forward, backward, step) si esegue un intero ciclo di Back Propagation. PyTorch costruisce un grafo computazionale dinamico ad ogni forward pass e lo usa nel backward pass per calcolare automaticamente tutti i gradienti tramite chain rule. Questo è esattamente il meccanismo descritto dalla fonte accademica: l’errore viene prima calcolato (forward), poi propagato all’indietro (backward) e infine i pesi vengono aggiornati.
6. Vanishing e Exploding Gradient: i problemi reali
La Back Propagation non è immune da problemi. Nelle reti profonde, i gradienti devono attraversare molti strati durante il backward pass. Questo porta a due patologie classiche ben documentate da Google Developers nel Crash Course on Neural Networks.
Vanishing Gradient (gradienti che svaniscono)
Nei layer più vicini all’input, i gradienti diventano estremamente piccoli (tendono a zero) perché il prodotto di molte derivate parziali, ognuna minore di 1, converge a zero. I pesi di quei layer vengono aggiornati pochissimo o per niente: la rete smette di imparare negli strati profondi. La soluzione principale è l’uso della funzione di attivazione ReLU (Rectified Linear Unit) che, a differenza della sigmoide, non satura e mantiene gradienti non nulli.
Exploding Gradient (gradienti che esplodono)
Il problema opposto: quando i pesi sono molto grandi, i gradienti si moltiplicano strato dopo strato e diventano così enormi da rendere instabile l’aggiornamento. Il modello diverge invece di convergere. Le soluzioni consolidate includono il gradient clipping (limitare il valore massimo del gradiente), la batch normalization (normalizzare le attivazioni tra i layer) e l’uso di learning rate più basso.
# Gradient clipping: soluzione pratica all'exploding gradient
loss.backward()
torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm=1.0)
optimizer.step()
7. Back Propagation nei modelli moderni: dal MLP ai Transformer
Nonostante le sue origini negli anni ’80, il Back Propagation rimane il cuore pulsante di tutti i modelli di deep learning moderni. Dai semplici multilayer perceptron (MLP) alle architetture Transformer che alimentano GPT-4, Claude e Gemini, il meccanismo fondamentale è lo stesso: calcolo dell’errore, propagazione all’indietro tramite chain rule, aggiornamento dei pesi con gradient descent.
Nei Transformer, il meccanismo di self-attention introduce complessità aggiuntive, ma il BP continua a calcolare i gradienti rispetto a tutti i parametri (matrici Query, Key, Value, pesi delle feedforward layers, layer normalization). Framework come PyTorch e TensorFlow gestiscono questa complessità tramite differenziazione automatica (autograd), rendendo trasparente allo sviluppatore il calcolo dei gradienti. Ricerche recenti (Neural Networks, marzo 2026) esplorano alternative biologicamente ispirate come il Predictive Coding, ma il BP rimane lo standard industriale indiscusso.
Vale la pena notare che nella pratica del fine-tuning di LLM (Large Language Models) — un’attività sempre più comune nelle aziende che adottano l’AI generativa — tecniche come LoRA (Low-Rank Adaptation) non sostituiscono il BP ma lo ottimizzano, addestrando solo un sottoinsieme di pesi per ridurre drasticamente il costo computazionale. Il meccanismo di backpropagation rimane invariato.
8. Best practice: pro e contro dell’algoritmo di Back Propagation
Dopo quasi 40 anni di utilizzo in produzione, la comunità ha maturato una comprensione approfondita dei punti di forza e delle limitazioni del BP. Ecco un’analisi pratica per chi deve prendere decisioni architetturali.
PRO — Punti di forza
- Universalità: funziona con qualsiasi architettura di rete neurale (MLP, CNN, RNN, Transformer) e qualsiasi numero di hidden layer. Non richiede modifiche strutturali al cambio del modello.
- Efficienza computazionale: tramite la chain rule calcola in un’unica passata all’indietro i gradienti di tutti i parametri. La complessità è lineare rispetto al numero di pesi, non esponenziale.
- Maturità ecosistemica: PyTorch, TensorFlow, JAX implementano l’autograd che gestisce il BP automaticamente. La letteratura, i tutorial e le soluzioni a problemi noti sono vastissimi.
- Scalabilità su GPU: l’intero pipeline (forward + backward) è altamente parallelizzabile su hardware accelerato. I moderni cluster GPU permettono training di miliardi di parametri.
- Comprovata efficacia: è alla base di tutti i modelli di AI generativa del 2026 (LLM, modelli diffusione, vision models). Il suo track record di successo è ineguagliato.
CONTRO — Limitazioni e rischi
- Vanishing e Exploding gradient: nelle reti molto profonde i gradienti possono diventare insignificanti o esplosivi, rendendo il training instabile o inefficace. Richiedono accorgimenti architetturali (ReLU, batch norm, residual connections).
- Minimi locali e punti di sella: il gradient descent non garantisce di trovare il minimo globale della funzione errore. Può rimanere intrappolato in minimi locali o rallentare su plateau di punti di sella.
- Sensibilità agli iperparametri: la scelta del learning rate, del batch size e dell’ottimizzatore influenza pesantemente la convergenza. Una configurazione sbagliata può rendere inutilizzabile il training.
- Costo computazionale elevato: per modelli di grandi dimensioni (miliardi di parametri) il backward pass richiede enorme capacità di memoria e calcolo. Il training di un LLM da zero è economicamente accessibile solo a grandi organizzazioni.
- Implausibilità biologica: il BP non modella in modo realistico il funzionamento del cervello biologico (problema della simmetria dei pesi). Questo limita l’uso come modello neuroscientifiço e ha stimolato la ricerca di alternative come il Predictive Coding.
9. Conclusioni e formazione continua
Il Back Propagation non è un algoritmo del passato: è il motore che fa girare l’intelligenza artificiale del presente e del futuro prossimo. Ogni sviluppatore che lavora (o vuole lavorare) con reti neurali, modelli generativi, LLM o sistemi di computer vision deve avere una comprensione solida del BP: non solo per implementarlo correttamente, ma per diagnosticare problemi di convergenza, scegliere l’architettura giusta e ottimizzare le performance in produzione.
Il mercato dell’AI e del machine learning è in continua e accelerata evoluzione. Nuove architetture, nuovi ottimizzatori, nuove tecniche di fine-tuning e nuovi framework emergono con una cadenza che rende obsolete le competenze acquisite anche solo due o tre anni fa. Per i team di sviluppo software e ingegneria informatica, l’unico modo per rimanere competitivi e mantenere le proprie competenze aggiornate è la formazione continua e sistematica: non limitata alla semplice consultazione di blog e documentazione, ma strutturata in percorsi che portino da una comprensione teorica a un’applicazione pratica in produzione.
I Corsi AI Generativa per Aziende di InnovaFormazione sono progettati esattamente per colmare questo gap: dalla matematica del Back Propagation all’integrazione di LLM in sistemi aziendali reali, dal fine-tuning di modelli pre-addestrati al deployment in ambienti cloud. I percorsi sono rivolti a sviluppatori software, ingegneri informatici e team IT di media e avanzata esperienza che vogliono trasformare la conoscenza teorica dell’AI generativa in competenze operative spendibili ogni giorno.
Le aziende possono accedere ai percorsi formativi anche tramite Fondimpresa, il Fondo Interprofessionale che permette di finanziare la formazione continua dei dipendenti attingendo ai contributi obbligatori già versati all’INPS. Questo significa che formare il proprio team sull’AI generativa, deep learning e Back Propagation applicato può avvenire a costo zero o con investimento molto ridotto, rendendo la crescita delle competenze accessibile anche alle PMI italiane. Contattaci per verificare la tua idoneità e scoprire come attivare un piano formativo finanziato per i tuoi sviluppatori.
Consiglio: Se vuoi approfondire queste tematiche e acquisire competenze pratiche sull’AI Generativa, ti consigliamo di esplorare i Corsi di AI Generativa di InnovaFormazione: percorsi strutturati che ti guideranno dalla teoria alla pratica, con applicazioni concrete per il mondo del lavoro.
In particolare consigliamo il Corso Sviluppo applicazioni LLM.
Vuoi portare le competenze su AI Generativa, Deep Learning e Back Propagation nel tuo team aziendale?
Richiedi informazioni e un preventivo personalizzato:
Email: info@innovaformazione.net
Telefono: TEL. 3471012275
Referente: Dario Carrassi
Per altri articoli tecnici di settore consigliamo di navigare sul nostro blog a questo LINK.
Vuoi essere ricontattato? Lasciaci il tuo numero telefonico e la tua email, ti richiameremo nelle 24h:
Articoli correlati
SAP BTP RAP vs SAP CAP
Orchestrare team di agenti
Sicurezza GitHub Agentic Workflow
Cosa è Caveman
Lavoro Coordinatore Logistica Piemonte
