Yolo Vision Shenzhen
Shenzhen
Iscriviti ora
Glossario

Ottimizzatore Adam

Scoprite come l'ottimizzatore Adam consente un addestramento efficiente delle reti neurali con tassi di apprendimento adattivi, slancio e applicazioni reali nell'IA.

Adam (Adaptive Moment Estimation) è un algoritmo di ottimizzazione sofisticato e ampiamente utilizzato, progettato per aggiornare algoritmo di ottimizzazione progettato per aggiornare parametri di una rete neurale durante il processo di addestramento. Combinando le migliori proprietà di altre due popolari estensioni di Stochastic Gradient Descent (SGD), in particolare Adaptive Gradient Algorithm (AdaGrad) e Root Mean Square Propagation (RMSProp), Adam calcola tassi di apprendimento adattivi per ogni singolo parametro. di apprendimento adattivo per ogni singolo parametro. Questa Questa capacità gli consente di gestire in modo efficiente gradienti radi su problemi rumorosi, rendendolo una scelta obbligata per l'addestramento di architetture complesse di deep learning (DL). complesse architetture di deep learning (DL), compresi i più recenti modelliYOLO11 .

Come funziona Adam

Il meccanismo alla base di Adam prevede il calcolo del primo e del secondo momento dei gradienti per adattare il tasso di apprendimento di ogni peso in tasso di apprendimento per ogni peso della rete neurale. Si può pensare al "primo momento" come lo slancio, che mantiene l'ottimizzazione nella giusta direzione, come una palla pesante che rotola giù per una collina. una palla pesante che rotola giù per una collina. Il "secondo momento" tiene traccia della varianza non centrata, scalando di fatto la dimensione del passo in base alla grandezza storica dei gradienti.

Durante la retropropagazione, l'algoritmo calcola il il gradiente della funzione di perdita rispetto ai pesi. pesi. Adam aggiorna quindi le medie mobili esponenziali del gradiente (momentum) e del gradiente al quadrato (varianza). Queste medie mobili vengono utilizzate per scalare il gradiente corrente, assicurando che il modello faccia passi più grandi in direzioni con gradienti consistenti e passi più piccoli in direzioni con alta varianza. Questo processo è descritto in dettaglio nell'articolo originale di Adam di Kingma e Ba.

Distinguere Adam da altri ottimizzatori

Per capire quando utilizzare Adam è necessario confrontarlo con altri algoritmi comuni presenti nei framework di apprendimento automatico (ML).

  • Stochastic Gradient Descent (SGD): SGD aggiorna i parametri utilizzando un tasso di apprendimento fisso (o un semplice programma di decadimento). Sebbene SGD sia computazionalmente efficiente dal punto di vista computazionale e spesso è in grado di generalizzare bene, ma può avere problemi con i "punti di sella" nel panorama delle perdite e converge più lentamente di Adam. converge più lentamente di Adam. Molte attività di di computer vision utilizzano SGD per la messa a punto finale messa a punto finale per ottenere la massima precisione.
  • RMSProp: Questo ottimizzatore si occupa principalmente della diminuzione dei tassi di apprendimento riscontrata in AdaGrad. Adam migliora RMSProp aggiungendo aggiungendo il termine momentum, che aiuta a smorzare le oscillazioni e accelera la convergenza verso il minimo.
  • AdamW: Una variante nota come Adam con decadimento del peso disaccoppiato AdamW) è spesso preferita per l'addestramento di moderni trasformatori e modelli di visione artificiale di grandi dimensioni. Questa variante separa la regolarizzazione del decadimento del peso dall'aggiornamento del gradiente, ottenendo spesso una migliore generalizzazione rispetto all'Adam standard. Adam standard.

Applicazioni nel mondo reale

Grazie alla sua robustezza e ai requisiti minimi per la regolazione dell'iperparametro, Adam viene utilizzato in vari settori ad alto impatto.

  1. L'intelligenza artificiale nell'assistenza sanitaria: Quando formazione di modelli per l'analisi di analisi di immagini mediche, come ad esempioil rilevamento di anomalie nelle risonanze magnetiche, i dati possono essere scarsi o sbilanciati. I tassi di apprendimento adattivo di Adam aiutano il modello a convergere rapidamente anche quando determinate caratteristiche appaiono poco frequentemente nei dati di dati di addestramento, facilitando una più rapida strumenti diagnostici.
  2. Elaborazione del linguaggio naturale (NLP): I modelli linguistici di grandi dimensioni (LLM) come GPT-4 si basano molto su Adam (o AdamW) durante il pre-training. L'algoritmo gestisce in modo efficiente l'enorme numero di parametri, spesso nell'ordine dei miliardi, e la natura rada delle incorporazioni di parole, di modelli linguistici complessi da vasti insiemi di dati testuali come Wikipedia. Wikipedia.

Utilizzo in Ultralytics YOLO

Quando si utilizza l'APIPython di Ultralytics , è possibile selezionare facilmente l'ottimizzatore Adam per l'addestramento dei modelli di rilevamento, segmentazione o stima della posa degli oggetti. Mentre SGD è il modello predefinito per molte configurazioni YOLO , Adam è un'eccellente alternativa per i set di dati più piccoli o quando la convergenza rapida è priorità la convergenza rapida.

L'esempio seguente mostra come addestrare un YOLO11 utilizzando l'ottimizzatore Adam :

from ultralytics import YOLO

# Load a generic YOLO11 model
model = YOLO("yolo11n.pt")

# Train the model on the COCO8 dataset using the 'Adam' optimizer
# The 'optimizer' argument creates the specific PyTorch optimizer instance internally
results = model.train(data="coco8.yaml", epochs=5, optimizer="Adam")

Questa flessibilità consente a ricercatori e ingegneri di sperimentare con configurazioni dell'ottimizzatore per trovare la configurazione migliore per i loro specifici set di dati personalizzati.

Unitevi alla comunità di Ultralytics

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

Iscriviti ora