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 .
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.
Per capire quando utilizzare Adam è necessario confrontarlo con altri algoritmi comuni presenti nei framework di apprendimento automatico (ML).
Grazie alla sua robustezza e ai requisiti minimi per la regolazione dell'iperparametro, Adam viene utilizzato in vari settori ad alto impatto.
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.