Scopri 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 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.
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).
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.
Adam è popolare per diversi motivi:
Adam è un ottimizzatore di riferimento per molti modelli all'avanguardia:
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.
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).
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.