Sintonizzati su YOLO Vision 2025!
25 settembre 2025
10:00 — 18:00 BST
Evento ibrido
Yolo Vision 2024
Glossario

Stochastic Gradient Descent (SGD)

Scopri come lo Stochastic Gradient Descent ottimizza i modelli di machine learning, consentendo un training efficiente per dataset di grandi dimensioni e task di deep learning.

La Stochastic Gradient Descent (SGD) è un algoritmo di ottimizzazione fondamentale e ampiamente utilizzato nel machine learning (ML). È un metodo iterativo utilizzato per addestrare i modelli regolando i loro parametri interni, come pesi e bias, per minimizzare una funzione di perdita. A differenza del Gradient Descent tradizionale, che elabora l'intero set di dati per ogni aggiornamento, SGD aggiorna i parametri utilizzando solo un singolo campione di addestramento selezionato casualmente. Questo approccio "stocastico" rende il processo di addestramento significativamente più veloce e scalabile, il che è particolarmente importante quando si lavora con i big data. Gli aggiornamenti rumorosi possono anche aiutare il modello a sfuggire a minimi locali scadenti nel panorama degli errori e potenzialmente a trovare una soluzione complessiva migliore.

Come funziona la discesa del gradiente stocastico

L'idea alla base di SGD è quella di approssimare il vero gradiente della funzione di perdita, che viene calcolato sull'intero dataset, utilizzando il gradiente della perdita per un singolo campione. Sebbene questo gradiente a campione singolo sia una stima rumorosa, è computazionalmente economico e, in media, punta nella giusta direzione. Il processo prevede la ripetizione di un semplice ciclo in due fasi per ogni campione di addestramento:

  1. Calcola il gradiente: Calcola il gradiente della funzione di loss rispetto ai parametri del modello per un singolo esempio di training.
  2. Aggiorna i parametri: Regola i parametri nella direzione opposta del gradiente, scalata da un tasso di apprendimento. Questo sposta il modello verso uno stato con un errore inferiore per quello specifico campione.

Questo ciclo viene ripetuto per molti passaggi sull'intero dataset, noti come epoche, migliorando gradualmente le prestazioni del modello. L'efficienza di SGD lo ha reso una pietra angolare del moderno deep learning (DL), ed è supportato da tutti i principali framework come PyTorch e TensorFlow.

SGD vs. Altri ottimizzatori

SGD è uno dei diversi metodi di ottimizzazione basati sul gradiente, ognuno con i propri compromessi.

  • Batch Gradient Descent: Questo metodo calcola il gradiente utilizzando l'intero dataset di addestramento. Fornisce un percorso stabile e diretto verso il minimo, ma è estremamente lento e richiede molta memoria per dataset di grandi dimensioni, rendendolo impraticabile per la maggior parte delle applicazioni moderne.
  • Mini-Batch Gradient Descent: Questo è un compromesso tra Batch GD e SGD. Aggiorna i parametri utilizzando un piccolo sottoinsieme casuale (un "mini-batch") dei dati. Bilancia la stabilità di Batch GD con l'efficienza di SGD ed è l'approccio più comune utilizzato nella pratica.
  • Ottimizzatore Adam: Adam è un algoritmo di ottimizzazione adattivo che mantiene un tasso di apprendimento separato per ogni parametro e lo adatta man mano che l'apprendimento progredisce. Spesso converge più velocemente di SGD, ma SGD a volte può trovare un minimo migliore e offrire una migliore generalizzazione, aiutando a prevenire l'overfitting.

Applicazioni nel mondo reale

SGD e le sue varianti sono fondamentali per l'addestramento di una vasta gamma di modelli di intelligenza artificiale in diversi domini.

  • Addestramento di object detection in tempo reale: Per i modelli come Ultralytics YOLO progettati per l'inferenza in tempo reale, l'addestramento deve essere efficiente. SGD consente agli sviluppatori di addestrare questi modelli su grandi set di dati di immagini come COCO o set di dati personalizzati gestiti tramite piattaforme come Ultralytics HUB. Gli aggiornamenti rapidi consentono una convergenza più rapida rispetto a Batch GD, fondamentale per iterare rapidamente durante lo sviluppo del modello e la sintonizzazione degli iperparametri. Questa efficienza supporta applicazioni in settori come i veicoli autonomi e la robotica.
  • Addestramento di modelli linguistici di grandi dimensioni (LLM): L'addestramento di modelli per l'elaborazione del linguaggio naturale (NLP) spesso comporta enormi set di dati di testo. SGD e le sue varianti sono essenziali per iterare attraverso questi dati in modo efficiente, consentendo a modelli come GPT-4 o quelli presenti su Hugging Face di apprendere la grammatica, il contesto e la semantica. La natura stocastica aiuta a sfuggire a minimi locali scadenti nel complesso paesaggio di perdita, una sfida comune nell'addestramento di grandi reti neurali. Questo processo è fondamentale per attività come la traduzione automatica e l'analisi del sentiment.

Unisciti alla community di Ultralytics

Entra nel futuro dell'AI. Connettiti, collabora e cresci con innovatori globali

Iscriviti ora
Link copiato negli appunti