Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

Exploding Gradient

I gradienti esplosivi crescono in modo esponenziale durante la backpropagation, causando enormi aggiornamenti dei pesi, picchi della loss e valori NaN. Panoramica di cause, segnali e soluzioni.

L'esplosione del gradiente è un problema di addestramento in cui i gradienti calcolati tramite backpropagation aumentano esponenzialmente mentre attraversano all'indietro una rete neurale profonda o ricorrente. La discesa del gradiente applica quindi aggiornamenti enormi ai pesi del modello, la funzione di perdita aumenta bruscamente o diventa NaN o inf e l'addestramento diverge. È il fenomeno opposto al problema del gradiente evanescente. Pascanu, Mikolov e Bengio hanno analizzato entrambi i problemi nelle reti neurali ricorrenti e proposto il clipping della norma del gradiente per contrastarne l'esplosione: una misura di protezione ancora standard nell'addestramento del deep learning.

Perché i gradienti esplodono#

Per la regola della catena, il gradiente che raggiunge un livello iniziale è il prodotto di un fattore per ogni livello successivo, oppure per ogni passo temporale in una rete ricorrente. Quando questi fattori sono costantemente maggiori di 1, il prodotto cresce esponenzialmente con la profondità: un fattore pari a 1.5 ripetuto per 30 livelli moltiplica il segnale per circa 190,000. Tra le cause comuni rientrano un'inizializzazione dei pesi inadeguata, un tasso di apprendimento troppo alto, input non normalizzati, sequenze lunghe nei modelli ricorrenti e l'overflow nell'addestramento a precisione mista, durante il quale i valori FP16 superiori a 65,504 diventano inf. I segnali sono una curva della perdita che subisce un'impennata improvvisa o assume il valore NaN, log della norma del gradiente che mostrano aumenti di diversi ordini di grandezza tra un passaggio e l'altro e pesi che diventano NaN.

Prevenzione e mitigazione#

La maggior parte delle pipeline di addestramento moderne combina più di queste misure di protezione.

  • Clipping del gradiente: Quando la norma L2 globale di tutti i gradienti supera una soglia, ciascun gradiente viene ridotto dello stesso fattore. L'aggiornamento mantiene la propria direzione, ma la sua lunghezza viene limitata.
  • Batch normalization: La batch normalization e la layer normalization ridimensionano le attivazioni a ogni livello, mantenendo il segnale su una scala stabile tra i livelli e rendendo più regolare il paesaggio della funzione di perdita.
  • Inizializzazione accurata: Le inizializzazioni Xavier (Glorot) e He scalano i pesi iniziali in modo che la varianza delle attivazioni rimanga pressoché costante da un livello all'altro.
  • Connessioni residue: Le connessioni skip offrono ai gradienti un percorso identità che aggira ogni blocco, facendo sì che il segnale all'indietro sia una somma di percorsi anziché un unico prodotto prolungato.
  • Warmup del tasso di apprendimento: Iniziare con un tasso di apprendimento basso e aumentarlo gradualmente nei primi passaggi evita aggiornamenti iniziali enormi, mentre i pesi e le statistiche dell'ottimizzatore sono ancora instabili.

Il frammento di codice qui sotto crea una sequenza di 30 livelli, ciascuno dei quali amplifica il proprio input di 1.5x, quindi applica il clipping al gradiente risultante con PyTorch:

import torch
from torch import nn

torch.manual_seed(0)

# 30 stacked linear layers, each initialized to amplify its input by 1.5x
layers = [nn.Linear(64, 64, bias=False) for _ in range(30)]
for layer in layers:
    nn.init.orthogonal_(layer.weight, gain=1.5)
model = nn.Sequential(*layers)

loss = model(torch.randn(8, 64)).pow(2).mean()
loss.backward()

# clip_grad_norm_ rescales all gradients in place and returns their norm before clipping
norm_before = nn.utils.clip_grad_norm_(model.parameters(), max_norm=1.0)
norm_after = nn.utils.get_total_norm([p.grad for p in model.parameters()])
print(f"Gradient norm before clipping: {norm_before:.2e}, after: {norm_after:.2f}")

La norma del gradiente grezzo è 9.90e+10 e, dopo il clipping, è 1.00; così, il successivo passaggio dell'ottimizzatore rimane limitato, a prescindere dall'entità del gradiente grezzo.

L'addestramento di Ultralytics YOLO26 applica questa misura di protezione a ogni passaggio: il trainer riporta alla scala originale i gradienti a precisione mista, limita la loro norma globale a 10.0 e consente allo scaler del gradiente di saltare qualsiasi aggiornamento che contenga ancora valori inf o NaN. Un trainer personalizzato può modificare il limite, ad esempio abbassandolo a 0.1 per RT-DETR.

Gradienti esplosivi e gradienti evanescenti#

Entrambi i problemi derivano dallo stesso prodotto di fattori per livello durante la backpropagation. I fattori superiori a 1 fanno esplodere i gradienti, generando aggiornamenti instabili, overflow numerico e divergenza; la soluzione abituale è il clipping. I fattori inferiori a 1 riducono i gradienti quasi a zero, impedendo ai livelli iniziali di apprendere; tra le soluzioni abituali ci sono le attivazioni non saturanti come ReLU, le connessioni residue e le unità ricorrenti con gate come le LSTM. La normalizzazione e un'inizializzazione accurata aiutano a contrastare entrambi i problemi.

Applicazioni nel mondo reale#

I modelli linguistici di grandi dimensioni vengono addestrati per centinaia di migliaia di passaggi su sequenze di testo lunghe, nelle quali i picchi improvvisi della perdita sono un rischio noto; per questo, le procedure di addestramento applicano il clipping dei gradienti: GPT-3 è stato addestrato con Adam e una norma globale del gradiente limitata a 1.0.

Nella visione artificiale, le reti profonde di rilevamento degli oggetti vengono addestrate su dataset delle dimensioni di COCO, con tassi di apprendimento elevati e precisione mista; clipping e loss scaling impediscono quindi che un raro batch estremo corrompa i pesi. I rilevatori basati su Transformer sono più sensibili, perché i gradienti che attraversano la cross-attention del decoder possono subire picchi; i modelli della famiglia DETR, come RT-DETR e DINO, applicano quindi di norma il clipping con una norma massima di 0.1.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning