Adam Optimizer
Derin öğrenme için Adam optimize edicisini keşfet. Ultralytics YOLO26 gibi modellerde daha hızlı yakınsama için momentumu ve RMSProp'u nasıl birleştirdiğini öğren.
Adaptive Moment Estimation kelimelerinin kısaltması olan Adam optimizer, derin öğrenme modellerini eğitmek için yaygın olarak kullanılan gelişmiş bir optimization algorithm (optimizasyon algoritmasıdır). stochastic gradient descent (SGD) (stokastik gradyan inişi) yönteminin diğer iki popüler uzantısının avantajlarını birleştirerek alanda devrim yaratmıştır: Adaptive Gradient Algorithm (AdaGrad) ve Root Mean Square Propagation (RMSProp). Gradlerin birinci ve ikinci moment tahminlerinden farklı parametreler için bireysel uyarlamalı learning rates (öğrenme oranları) hesaplayan Adam, neural networks (sinir ağlarının) geleneksel yöntemlere göre çok daha hızlı yakınsamasını sağlar. Sağlamlığı ve minimum ayar gereksinimleri, onu yeni bir machine learning (ML) (makine öğrenimi) projesine başlayan birçok uygulayıcı için varsayılan seçim haline getirir.
Adam Nasıl Çalışır#
Özünde, bir modeli eğitmek, modelin tahminleri ile gerçek veriler arasındaki farkı ölçen bir loss function (kayıp fonksiyonunu) en aza indirmeyi içerir. Standart algoritmalar tipik olarak "kayıp manzarasında" minimum hataya doğru inmek için sabit bir adım boyutu (öğrenme oranı) kullanır. Ancak bu manzara genellikle daha basit algoritmaları tuzağa düşürebilecek vadiler ve platolar içeren karmaşık bir yapıya sahiptir.
Adam, her parametre için iki geçmiş arabelleği tutarak bu sorunu çözer:
-
Momentum (Birinci Moment): Tepeden aşağı yuvarlanan ağır bir topa benzer şekilde, ilgili yönde hızı korumak için geçmiş gradyanların hareketli ortalamasını izler.
-
Varyans (İkinci Moment): Bu, öğrenme oranını ölçeklendiren karesi alınmış gradyanların hareketli ortalamasını izler.
Bu kombinasyon, optimizatörün manzaranın düz alanlarında daha büyük adımlar atmasını, dik veya gürültülü alanlarda ise daha küçük ve temkinli adımlar atmasını sağlar. Belirli mekanizmalar, çeşitli deep learning (DL) (derin öğrenme) görevlerinde ampirik üstünlüğünü kanıtlayan temel nitelikteki Adam research paper by Kingma and Ba (Kingma ve Ba'nın Adam araştırma makalesinde) detaylandırılmıştır.
Gerçek Dünya Uygulamaları#
Adam optimizerın çok yönlülüğü, artificial intelligence (AI) (yapay zekanın) neredeyse tüm sektörlerinde benimsenmesini sağlamıştır.
- Doğal Dil İşleme (NLP): Generative Pre-trained Transformers (GPT) gibi büyük dil modelleri, eğitim için büyük ölçüde Adam'a (veya onun varyantı olan AdamW'ye) güvenir. Algoritma, geniş kelime dağarcıkları ve devasa veri setleriyle ilişkili seyrek gradyanları verimli bir şekilde yöneterek güçlü chatbots (sohbet botları) ve çeviri sistemlerinin oluşturulmasını sağlar.
- Sağlık Hizmetlerinde Bilgisayarlı Görü: medical image analysis (Tıbbi görüntü analizinde), modellerin MRI taramalarındaki tümörler gibi ince anomalileri tespit etmesi gerekir. Adam, AI in Healthcare (Sağlıkta Yapay Zeka) için tanı araçları geliştirirken kritik öneme sahip olan yüksek doğruluklu çözümlere convolutional neural networks (CNNs) (evrişimli sinir ağlarının) hızlı bir şekilde yakınsmasına yardımcı olur.
Adam ve SGD Karşılaştırması#
Adam genellikle daha hızlı yakınsasa da, onu Stochastic Gradient Descent (SGD)'den ayırmak önemlidir. SGD, sabit bir öğrenme oranı kullanarak model weights (model ağırlıklarını) günceller ve son teknoloji ürünü object detection modellerinin eğitiminin son aşamaları için genellikle tercih edilir çünkü test verilerinde bazen biraz daha iyi genelleme (nihai doğruluk) elde edebilir.
Ancak Adam "uyarlamalıdır", yani öğrenme oranının ayarlanmasını otomatik olarak yönetir. Bu, ilk denemeler ve SGD ayarının zor olacağı karmaşık mimariler için onu çok daha kullanıcı dostu hale getirir. Ultralytics Platform üzerinde deneyleri yöneten kullanıcılar için, performansı karşılaştırmak amacıyla bu optimizatörler arasında geçiş yapmak genellikle hyperparameter tuning (hiperparametre ayarında) sürecinde önemli bir adımdır.
Ultralytics ile Uygulama#
PyTorch ve Ultralytics kütüphanesi gibi modern çerçeveler, Adam'ı kullanmayı kolaylaştırır. Orijinal Adam algoritmasındaki düzenlileştirme sorunlarını düzelttiği için genellikle AdamW (Ağırlık Azaltmalı Adam) adı verilen popüler bir varyant önerilir. Bu, AdamW'nin sağladığı kararlılıktan yararlanan YOLO26 gibi en son mimariler için özellikle etkilidir.
Aşağıdaki örnek, AdamW optimizatörünü kullanarak bir Ultralytics YOLO26 modelinin nasıl eğitileceğini göstermektedir:
from ultralytics import YOLO
# Load the cutting-edge YOLO26n model
model = YOLO("yolo26n.pt")
# Train the model using the 'AdamW' optimizer
# The 'optimizer' argument allows easy switching between SGD, Adam, AdamW, etc.
results = model.train(data="coco8.yaml", epochs=5, optimizer="AdamW")Daha derin teorik temellerle ilgilenen geliştiriciler için Stanford CS231n Optimization Notes gibi kaynaklar, Adam'ın RMSProp ve AdaGrad gibi diğer algoritmalarla nasıl karşılaştırıldığına dair mükemmel görselleştirmeler sunar. Ek olarak, PyTorch Optimizer Documentation, özelleştirme için mevcut olan argümanlar ve uygulama detayları hakkında teknik bilgiler sunar.






