Glossario

Ottimizzatore Adam

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

Addestra i modelli YOLO semplicemente
con Ultralytics HUB

Per saperne di più

Adam (Adaptive Moment Estimation) è un algoritmo di ottimizzazione ampiamente utilizzato nel deep learning (DL) e nel machine learning (ML). È stato progettato per aggiornare in modo efficiente i pesi della rete durante il processo di addestramento, adattando il tasso di apprendimento per ogni singolo parametro. Introdotto nell'articolo"Adam: A Method for Stochastic Optimization" di Diederik P. Kingma e Jimmy Ba, Adam combina i vantaggi di altre due popolari tecniche di ottimizzazione: AdaGrad (Adaptive Gradient Algorithm) e RMSprop(Root Mean Square Propagation). Questa combinazione la rende particolarmente efficace per l'addestramento di reti neurali di grandi dimensioni con numerosi parametri e dataset complessi.

Come funziona Adam

Adam calcola i tassi di apprendimento adattivi per ogni parametro basandosi sulle stime del primo e del secondo momento dei gradienti. In sostanza, tiene traccia di una media a decadimento esponenziale dei gradienti passati (simile al momentum) e di una media a decadimento esponenziale dei gradienti quadrati passati (simile a AdaGrad/RMSprop).

  • Momento: Aiuta ad accelerare la discesa del gradiente nella direzione interessata e smorza le oscillazioni, portando a una convergenza più rapida.
  • Tasso di apprendimento adattivo: Regola il tasso di apprendimento per ogni peso in base alla frequenza e all'entità degli aggiornamenti storici. I parametri che ricevono aggiornamenti grandi o frequenti ricevono tassi di apprendimento minori, mentre quelli con aggiornamenti piccoli o poco frequenti ricevono tassi maggiori. Questo è particolarmente utile per i problemi con gradienti radi o dati rumorosi.
  • Correzione del bias: Adam include un meccanismo per contrastare la distorsione iniziale verso lo zero delle stime dei momenti, soprattutto nelle prime fasi dell'addestramento, quando le medie di decadimento si stanno ancora inizializzando.

Rispetto ad algoritmi più semplici come lo Stochastic Gradient Descent (SGD), che utilizza un unico tasso di apprendimento fisso (o che decade in base a un programma), l'adattamento per parametro di Adam consente spesso di progredire più rapidamente nella ricerca di una buona soluzione, soprattutto in caso di paesaggi di perdita complessi.

Vantaggi di Adam

Adam è popolare per diversi motivi:

  • Efficienza computazionale: Richiede relativamente poca memoria ed è efficiente dal punto di vista computazionale.
  • Buone prestazioni predefinite: Gli iperparametri predefiniti spesso funzionano bene in un'ampia gamma di problemi, riducendo la necessità di un'ampia messa a punto degli iperparametri.
  • Adatta a problemi di grandi dimensioni: Si comporta bene su problemi con grandi insiemi di dati e spazi di parametri ad alta dimensione, comuni nella computer vision (CV) e nell'elaborazione del linguaggio naturale (NLP).
  • Gestisce obiettivi non stazionari: È adatto a problemi in cui la funzione obiettivo cambia nel tempo.
  • Efficace con i gradienti radi: I tassi di apprendimento adattivi lo rendono adatto a scenari in cui i gradienti sono scarsi.

Esempi del mondo reale

Adam è un ottimizzatore di riferimento per molti modelli all'avanguardia:

Esempio 1: Visione artificiale

Nella computer vision, Adam viene spesso utilizzato per addestrare le reti neurali convoluzionali (CNN) per compiti come la classificazione delle immagini, il rilevamento degli oggetti e la segmentazione delle immagini. Ad esempio, l'addestramento di una Ultralytics YOLO di Ultralytics per il rilevamento di oggetti nelle immagini(come quelli presenti nel set di dati COCO) o per la segmentazione di istanze, può sfruttare Adam per ottenere una convergenza efficiente durante la fase di addestramento. Viene applicato anche nell'analisi delle immagini mediche per compiti come il rilevamento dei tumori.

Esempio 2: Elaborazione del linguaggio naturale

Adam è un ottimizzatore standard per l'addestramento di modelli linguistici di grandi dimensioni (LLM) come BERT e le varianti GPT. Quando si addestrano modelli per compiti come la traduzione automatica, la sintesi del testo o l'analisi del sentimento, Adam aiuta a navigare in modo efficiente nel complesso panorama delle funzioni di perdita associate a questi modelli di grandi dimensioni(basati su trasformatori).

Utilizzo in Ultralytics YOLO

All'interno dell'ecosistema Ultralytics , Adam e la sua variante AdamW (Adam con decadimento del peso disaccoppiato) sono ottimizzatori disponibili per l'addestramento dei modelli Ultralytics YOLO . Sfruttando i tassi di apprendimento adattivi di Adam è possibile accelerare la convergenza durante l'addestramento dei modelli di rilevamento degli oggetti, di segmentazione delle istanze o di stima della posa, come ad esempio YOLO11 o YOLOv10. Sebbene SGD sia spesso l'ottimizzatore predefinito e consigliato per alcuni modelli YOLO grazie alla generalizzazione finale potenzialmente migliore(evitando l'overfitting), Adam offre una solida alternativa, particolarmente utile in alcuni scenari o durante la sperimentazione iniziale e la valutazione del modello. Puoi configurare facilmente l'ottimizzatore e altre impostazioni di formazione. Strumenti come Ultralytics HUB semplificano il processo, consentendo agli utenti di addestrare i modelli utilizzando diversi ottimizzatori, tra cui Adam, sia localmente che tramite l'addestramento nel cloud. Framework come PyTorch e TensorFlow forniscono implementazioni standard di Adam, che vengono utilizzate all'interno del framework Ultralytics . Per migliorare ulteriormente le prestazioni, si possono prendere in considerazione tecniche come la distillazione della conoscenza o l'esplorazione di diverse architetture di modelli.

Leggi tutto