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ù

L'ottimizzatore Adam è un algoritmo di ottimizzazione popolare ed efficace, molto utilizzato nel deep learning (DL) e nel machine learning (ML). Acronimo di Adaptive Moment Estimation, Adam combina i vantaggi di altre due estensioni della discesa stocastica del gradiente (SGD): Il suo punto di forza principale è la capacità di calcolare tassi di apprendimento adattivi per ogni parametro, il che lo rende adatto a problemi con grandi insiemi di dati, spazi di parametri altamente dimensionali o gradienti rumorosi, comuni in campi come la computer vision (CV) e l'elaborazione del linguaggio naturale (NLP).

Come funziona Adam

Adam aggiorna i parametri del modello in modo iterativo durante l'addestramento utilizzando le informazioni dei gradienti passati. Mantiene due medie mobili per ogni parametro: una stima del primo momento (la media dei gradienti) e una stima del secondo momento (la varianza non centrata dei gradienti). Questi momenti aiutano ad adattare il tasso di apprendimento individualmente per ogni parametro. I parametri che ricevono aggiornamenti del gradiente grandi o frequenti ricevono tassi di apprendimento più piccoli, mentre quelli con aggiornamenti piccoli o poco frequenti ne ricevono di più grandi. Questa natura adattiva spesso porta a una convergenza più rapida rispetto all'SGD standard. L'algoritmo incorpora anche il momentum utilizzando la media mobile del gradiente, che aiuta ad accelerare i progressi lungo le direzioni rilevanti e smorza le oscillazioni. Maggiori dettagli sono disponibili nell'articolo originale di Adam.

Confronto con altri algoritmi di ottimizzazione

Sebbene Adam sia una potente scelta predefinita, è utile capire la sua relazione con altri ottimizzatori:

  • Stochastic Gradient Descent (SGD): L'ottimizzatore più semplice. A differenza di Adam, l'SGD standard utilizza un unico tasso di apprendimento fisso per tutti i parametri, anche se esistono varianti come l'SGD con slancio. Adam spesso converge più velocemente nella pratica, soprattutto all'inizio dell'addestramento, ma alcune ricerche suggeriscono che SGD può talvolta ottenere una migliore generalizzazione in determinati compiti.
  • AdaGrad: adatta i tassi di apprendimento in base alla somma dei gradienti passati al quadrato, ma il tasso di apprendimento può diventare infinitamente piccolo nel tempo, interrompendo potenzialmente l'apprendimento.
  • RMSProp: Simile ad AdaGrad, ma utilizza una media decrescente esponenziale dei gradienti al quadrato, evitando che il tasso di apprendimento si riduca in modo troppo aggressivo. Adam si basa sulle idee di RMSProp.

Applicazioni del mondo reale

L'ottimizzatore Adam viene utilizzato per addestrare una vasta gamma di modelli di intelligenza artificiale:

Esempio 1: Riconoscimento e rilevamento di immagini

Nella computer vision, Adam viene spesso utilizzato per addestrare le reti neurali convoluzionali (CNN). Ad esempio, l'addestramento di modelli per la classificazione di immagini su grandi dataset come ImageNet o lo sviluppo di complessi sistemi di rilevamento di oggetti traggono vantaggio dall'efficienza di Adam nel gestire milioni di parametri e raggiungere un'elevata precisione.

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 perdite associate a questi modelli.

Utilizzo in Ultralytics YOLO

All'interno dell'ecosistema Ultralytics , Adam e la sua variante AdamW 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. Sebbene SGD sia spesso l'ottimizzatore predefinito e consigliato per i modelli YOLO grazie alla generalizzazione finale potenzialmente migliore, Adam offre una solida alternativa, particolarmente utile in alcuni scenari o durante la sperimentazione iniziale. 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. Per ottimizzare le prestazioni, considera tecniche come la regolazione degli iperparametri. Framework come PyTorch e TensorFlow forniscono implementazioni di Adam.

Leggi tutto