Glossario

Retropropagazione

Scopri come la retropropagazione addestra le reti neurali, riduce i tassi di errore e rende efficienti le applicazioni AI come il riconoscimento delle immagini e l'NLP.

Addestra i modelli YOLO semplicemente
con Ultralytics HUB

Per saperne di più

La backpropagation, abbreviazione di "propagazione all'indietro degli errori", è un algoritmo fondamentale utilizzato per l'addestramento delle reti neurali artificiali, in particolare nel deep learning. È il motore che permette ai modelli di imparare dai propri errori calcolando in modo efficiente quanto ogni parametro (peso e bias) della rete abbia contribuito all'errore complessivo delle previsioni. Queste informazioni vengono poi utilizzate dagli algoritmi di ottimizzazione per regolare i parametri e migliorare le prestazioni del modello nel corso della sua formazione.

Come funziona la retropropagazione

Il processo prevede due fasi principali dopo una previsione iniziale:

  1. Passaggio in avanti: I dati in ingresso vengono fatti passare attraverso la rete, strato per strato, attivando i neuroni e applicando i pesi del modello finché non viene generato un output (previsione).
  2. Calcolo dell'errore: La differenza tra la previsione della rete e il valore effettivo dell'obiettivo (verità di base) viene calcolata utilizzando una funzione di perdita. Questa perdita quantifica il grado di errore della previsione. Una risorsa comune per comprendere questo aspetto è il capitolo del Deep Learning Book dedicato alle MLP.
  3. Passaggio all'indietro: È qui che avviene la vera e propria retropropagazione. Partendo dallo strato di uscita, l'algoritmo calcola il gradiente della funzione di perdita rispetto ai weights and biases di ogni strato. Utilizza la regola della catena del calcolo per propagare in modo efficiente il segnale di errore all'indietro attraverso la rete, strato per strato. In questo modo si determina quanto ogni parametro deve essere modificato per ridurre l'errore complessivo. Visualizzazioni come quelle di "Calculus on Computational Graphs" possono aiutare a illustrare questo flusso.
  4. Aggiornamento dei pesi: i gradienti calcolati vengono poi utilizzati da un algoritmo di ottimizzazione, come Gradient Descent o varianti più avanzate come Adam, per aggiornare i weights and biases della rete, spingendo il modello a fare previsioni migliori nell'iterazione successiva.

Importanza nell'apprendimento profondo

La retropropagazione è fondamentale per il successo del moderno deep learning. Permette l'addestramento di architetture molto profonde e complesse, come le Reti Neurali Convoluzionali (CNN), ampiamente utilizzate nella computer vision, e le Reti Neurali Ricorrenti (RNN), utilizzate per dati sequenziali come il testo. Senza un metodo efficiente per calcolare i gradienti come la backpropagation, l'addestramento di questi modelli di grandi dimensioni sarebbe computazionalmente impossibile. Permette ai modelli di apprendere automaticamente caratteristiche e relazioni complesse da grandi quantità di dati, costituendo la base di molti progressi nell'ambito dell'intelligenza artificiale a partire dalla sua diffusione negli anni '80, descritta in dettaglio nelle risorse che illustrano la storia del Deep Learning.

Applicazioni del mondo reale

La retropropagazione viene utilizzata implicitamente ogni volta che viene addestrato un modello di deep learning. Ecco due esempi:

  1. Rilevamento degli oggetti: Modelli come Ultralytics YOLO vengono addestrati utilizzando la retropropagazione. Quando il modello non identifica correttamente un oggetto o posiziona in modo impreciso un riquadro di delimitazione in un'immagine proveniente da set di dati come COCO, la retropropagazione calcola i gradienti necessari per regolare i pesi del modello, migliorando la sua capacità di eseguire il rilevamento degli oggetti in modo accurato.
  2. Elaborazione del linguaggio naturale (NLP): L'addestramento di modelli linguistici di grandi dimensioni come BERT o GPT per compiti come la traduzione automatica o l'analisi del sentimento si basa molto sulla retropropagazione. Questa regola i parametri del modello per minimizzare la differenza tra il testo generato e l'output desiderato, consentendo a questi modelli di comprendere e generare un linguaggio simile a quello umano. Il gruppo NLP di Stanford offre molte risorse su questi argomenti.

Concetti correlati

Sebbene sia strettamente correlato, il Backpropagation si distingue dal Gradient Descent. Il Backpropagation è l'algoritmo specifico per calcolare i gradienti della funzione di perdita rispetto ai parametri della rete. Il Gradient Descent (e le sue varianti) è l'algoritmo di ottimizzazione che utilizza questi gradienti calcolati per aggiornare iterativamente i parametri e minimizzare la perdita. La retropropagazione può talvolta soffrire di problemi come il problema del gradiente che svanisce, soprattutto nelle reti molto profonde, anche se tecniche come l'utilizzo di funzioni di attivazione ReLU e connessioni residue aiutano a mitigare questo problema.

Leggi tutto