Yolo Vision Shenzhen
Shenzhen
Iscriviti ora
Glossario

Discesa stocastica del gradienteSGD)

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.

Lo Stochastic Gradient DescentSGD) è un algoritmo di ottimizzazione algoritmo di ottimizzazione utilizzato pesantemente in apprendimento automatico (ML) e apprendimento profondo (DL). Agisce come forza trainante di addestramento del modello, regolando iterativamente i pesi interni del modello e le pesi e le polarizzazioni interne del modello per ridurre al minimo l'errore calcolato da una funzione di perdita. A differenza della tradizionale discesa del gradiente, che elabora l'intero set di dati per calcolare un singolo aggiornamento, SGD modifica i parametri del modello utilizzando solo un singolo esempio di addestramento selezionato casualmente alla volta. Questo approccio "stocastico" o casuale rende l'algoritmo efficiente dal punto di vista computazionale e altamente scalabile, creando un percorso fattibile per l'addestramento su dati, laddove l'elaborazione dell'intero set di dati in una sola volta sarebbe sarebbe proibitivo per la memoria.

Come funziona la discesa del gradiente stocastico

L'obiettivo primario dell'addestramento di una rete neurale è quello di navigare in un complesso paesaggio di errori per trovare il punto più basso, che rappresenta la massima precisione. SGD raggiunge questo obiettivo attraverso un ciclo ripetitivo. In primo luogo, calcola il gradiente - la direzione dell'aumento più ripido dell'errore - per un campione specifico utilizzando la backpropagation. campione specifico utilizzando la retropropagazione. Quindi, aggiorna i pesi aggiorna i pesi nella direzione opposta per ridurre l'errore.

L'ampiezza di questo passo è controllata dal tasso di apprendimento, un valore critico configurato durante di regolazione dell'iperparametro. Poiché SGD utilizza campioni singoli, il percorso verso il minimo è rumoroso e zig-zagante piuttosto che una linea retta. Questo rumore è spesso questo rumore è spesso benefico, in quanto aiuta il modello a sfuggire ai minimi locali, soluzioni subottimali in cui gli algoritmi non stocastici potrebbero bloccarsi. non stocastici, permettendogli di trovare una soluzione globale migliore. Questo processo si ripete per molte epoche, o passaggi completi attraverso il set di dati, fino a quando il modello non modello converge. I lettori possono approfondire l'intuizione matematica nella sezione Stanford CS231n.

SGD vs. altri algoritmi di ottimizzazione

Capire in che modo l SGD si differenzia dai concetti correlati è fondamentale per selezionare la strategia giusta per i vostri dati di formazione.

  • Batch Gradient Descent: Questo metodo calcola il gradiente utilizzando l'intero set di dati per ogni passo. Sebbene produca una curva di errore stabile, è estremamente lento e costoso dal punto di vista computazionale per grandi insiemi di dati.
  • Mini-Batch Gradient Descent: In pratica, la maggior parte delle In pratica, la maggior parte delle implementazioniSGD" in framework come PyTorch utilizzano in realtà dei mini-batch. Questo approccio aggiorna i parametri parametri utilizzando un piccolo gruppo di campioni (ad esempio, 32 o 64 immagini). Si tratta di un equilibrio, che offre l'efficienza computazionale di SGD efficienza computazionale di SGD con la stabilità dell'elaborazione in batch.
  • OttimizzatoreAdam : L'algoritmo Adam estende l'SGD introducendo tassi di apprendimento adattivi per ogni parametro. Mentre Adam spesso converge più velocemente, SGD con momentum è talvolta preferito per le attività di computer vision per ottenere una migliore generalizzazione ed evitare l'overfitting. overfitting.

Applicazioni nel mondo reale

SGD e le sue varianti sono lo standard per l'addestramento dei moderni sistemi di intelligenza artificiale in diversi settori.

  1. Rilevamento di oggetti in tempo reale: Quando si addestrano modelli ad alte prestazioni come Ultralytics YOLO11 per il per il rilevamento di oggetti, l'ottimizzatore deve elaborare migliaia di immagini da set di dati come COCO. SGD permette al modello di apprendere rapidamente caratteristiche come i bordi e le forme degli oggetti. La natura stocastica aiuta il modello a generalizzare bene, il che è fondamentale per le applicazioni critiche per la sicurezza, come i veicoli autonomi che rilevano i pedoni in diverse condizioni atmosferiche.
  2. Elaborazione del linguaggio naturale (NLP): Formazione modelli linguistici di grandi dimensioni (LLM) dataset contenenti miliardi di parole. È impossibile caricare tutti questi dati in memoria in una sola volta. SGD consente al modello di di apprendere la grammatica, il contesto e l'analisi del sentiment analysis in modo incrementale. Questa efficienza efficienza supporta lo sviluppo di sofisticati assistenti virtuali e strumenti di traduzione.

Implementazione di SGD con Ultralytics

Il ultralytics permette agli utenti di passare facilmente da un ottimizzatore all'altro. Mentre AdamW potrebbe essere il AdamW potrebbe essere il predefinito per alcuni compiti, SGD viene spesso utilizzato per la messa a punto o per esigenze di ricerca specifiche. Lo snippet qui sotto mostra come selezionare esplicitamente SGD per l'addestramento di un modello.

from ultralytics import YOLO

# Load the latest YOLO11 model (nano version)
model = YOLO("yolo11n.pt")

# Train the model on the COCO8 dataset using the SGD optimizer
# The 'lr0' argument sets the initial learning rate
results = model.train(data="coco8.yaml", epochs=50, optimizer="SGD", lr0=0.01)

Questo codice inizializza un oggetto YOLO11 e inizia la formazione con optimizer="SGD". Per ulteriori personalizzazioni, consultare la sezione configurazione di addestramento del modello documentazione. Quadri come TensorFlow e Scikit-learn forniscono anche robuste implementazioni di SGD per vari compiti di apprendimento automatico.

Unitevi alla comunità di Ultralytics

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

Iscriviti ora