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 per l'addestramento delle reti neurali artificiali (NN), soprattutto nel campo del deep learning (DL). Si tratta di un meccanismo fondamentale che permette ai modelli di imparare dagli errori commessi durante il processo di formazione del modello. L'algoritmo calcola in modo efficiente il contributo di ogni parametro (come i pesi e i bias del modello ) all'interno della rete all'errore complessivo osservato nelle previsioni del modello. Queste informazioni sul gradiente vengono poi utilizzate dagli algoritmi di ottimizzazione per regolare i parametri in modo iterativo, migliorando progressivamente le prestazioni e l'accuratezza del modello.

Come funziona la retropropagazione

Il processo di retropropagazione segue tipicamente un passaggio iniziale in avanti in cui i dati di ingresso passano attraverso la rete per generare una previsione. Dopo aver confrontato la previsione con il valore effettivo dell'obiettivo utilizzando una funzione di perdita, l'algoritmo di retropropagazione esegue due fasi principali:

  1. Passaggio in avanti: I dati in ingresso vengono immessi nella rete neurale, passando attraverso strati di neuroni, ognuno dei quali applica i propri pesi, le proprie distorsioni e una funzione di attivazione (come ReLU o Sigmoid), fino a generare una previsione in uscita.
  2. Passaggio all'indietro: L'algoritmo calcola l'errore (la differenza tra la previsione e il valore reale) utilizzando la funzione di perdita scelta. Propaga poi questo segnale di errore all'indietro attraverso la rete, strato per strato. Utilizzando la regola della catena del calcolo, calcola il gradiente della funzione di perdita rispetto a ciascun peso e bias della rete. Questo gradiente rappresenta la misura in cui una piccola variazione di ciascun parametro influisce sull'errore complessivo. Per una comprensione visiva, risorse come "Calculus on Computational Graphs" offrono utili spiegazioni.

Una volta calcolati i gradienti, un algoritmo di ottimizzazione, come il Gradient Descent o varianti come lo Stochastic Gradient Descent (SGD) o l'ottimizzatore Adam, utilizza questi gradienti per aggiornare i weights and biases della rete. L'obiettivo è quello di minimizzare la funzione di perdita, insegnando di fatto alla rete a fare previsioni migliori nelle epoche successive.

Importanza nell'apprendimento profondo

La retropropagazione è indispensabile per il moderno deep learning. La sua efficienza nel calcolare i gradienti rende computazionalmente fattibile l'addestramento di architetture molto profonde e complesse. Ciò include modelli come le Reti Neurali Convoluzionali (CNN), che eccellono nelle attività di computer vision (CV), e le Reti Neurali Ricorrenti (RNN), comunemente utilizzate per dati sequenziali come nell'elaborazione del linguaggio naturale (NLP). Senza la retropropagazione, la regolazione di milioni di parametri in modelli di grandi dimensioni come il GPT-4 o quelli addestrati su dataset massicci come ImageNet sarebbe impraticabile. Questa tecnologia consente ai modelli di apprendere automaticamente caratteristiche complesse e rappresentazioni gerarchiche dai dati, alla base di molti progressi nell'ambito dell'intelligenza artificiale sin dalla sua diffusione, come illustrato in dettaglio nelle risorse che coprono la storia del Deep Learning. Framework come PyTorch e TensorFlow si basano molto sui motori di differenziazione automatica che implementano la retropropagazione.

Algoritmi di backpropagation vs. algoritmi di ottimizzazione

È importante distinguere la retropropagazione dagli algoritmi di ottimizzazione. La retropropagazione è il metodo utilizzato per calcolare i gradienti (il contributo all'errore di ogni parametro). Gli algoritmi di ottimizzazione, invece, sono le strategie che utilizzano i gradienti calcolati per aggiornare i parametri del modelloweights and biases) al fine di minimizzare la perdita. La retropropagazione fornisce la direzione del miglioramento, mentre l'ottimizzatore determina la dimensione del passo(tasso di apprendimento) e la modalità di aggiornamento.

Applicazioni del mondo reale

La retropropagazione viene utilizzata implicitamente ogni volta che un modello di deep learning viene sottoposto ad addestramento. Ecco due esempi concreti:

  1. Rilevamento degli oggetti con Ultralytics YOLO: quando si addestra un Ultralytics YOLO di Ultralytics (come YOLOv8 o YOLO11) per il rilevamento di oggetti su un set di dati come COCO, viene utilizzata la retropropagazione in ogni iterazione di addestramento. Dopo che il modello ha previsto i riquadri di delimitazione e le classi, viene calcolata la perdita (ad esempio, confrontando i riquadri previsti con la verità a terra). La retropropagazione calcola i gradienti per tutti i pesi della struttura portante del modello e della testa di rilevamento. Un ottimizzatore utilizza poi questi gradienti per regolare i pesi, migliorando la capacità del modello di individuare e classificare accuratamente gli oggetti. Gli utenti possono sfruttare piattaforme come Ultralytics HUB per gestire questo processo di formazione, beneficiando di efficienti implementazioni di backpropagation. Questo è fondamentale per applicazioni che vanno dai veicoli autonomi ai sistemi di sicurezza.
  2. Modelli di elaborazione del linguaggio naturale: I modelli linguistici di grandi dimensioni (LLM) come i modelli BERT e GPT vengono addestrati utilizzando la retropropagazione. Ad esempio, in un compito di analisi del sentimento, il modello predice il sentimento (positivo, negativo, neutro) di un dato testo. La differenza tra il sentiment previsto e l'etichetta reale determina un valore di errore. La retropropagazione calcola quanto ogni parametro della rete ha contribuito a questo errore. Gli algoritmi di ottimizzazione aggiornano quindi questi parametri, consentendo al modello di comprendere meglio le sfumature linguistiche, il contesto e il sentiment nel corso dell'addestramento. Gruppi di ricerca accademici come il gruppo NLP di Stanford esplorano e perfezionano continuamente queste tecniche.
Leggi tutto