Adam Optimizer
Derin öğrenme için Adam optimizer'ını keşfet. Daha hızlı yakınsama için momentum ile RMSProp'u nasıl birleştirdiğini ve Ultralytics YOLO26 gibi modellerde nasıl kullanıldığını öğren.
Uyarlamalı Moment Tahmini ifadesinin kısaltması olan Adam optimizer, derin öğrenme modellerini eğitmek için yaygın olarak kullanılan gelişmiş bir optimizasyon algoritmasıdır. Stokastik gradyan inişinin (SGD) iki popüler uzantısı olan Uyarlamalı Gradyan Algoritması (AdaGrad) ve Karekök Ortalama Yayılımı (RMSProp) yöntemlerinin avantajlarını birleştirerek bu alanda devrim yaratmıştır. Gradyanların birinci ve ikinci moment tahminlerinden farklı parametreler için ayrı uyarlamalı öğrenme oranları hesaplayan Adam, sinir ağlarının geleneksel yöntemlere kıyasla çok daha hızlı yakınsamasını sağlar. Sağlamlığı ve minimum ayar gerektirmesi, onu yeni bir makine öğrenimi (ML) projesine başlayan birçok uygulayıcı için varsayılan seçenek hâline getirir.
Adam Nasıl Çalışır#
Temel olarak model eğitimi, modelin tahminleri ile gerçek veriler arasındaki farkı ölçen bir kayıp işlevini en aza indirmeyi içerir. Standart algoritmalar genellikle minimum hataya doğru "kayıp manzarasında" ilerlemek için sabit bir adım boyutu (öğrenme oranı) kullanır. Ancak bu manzara çoğu zaman karmaşıktır; daha basit algoritmaları tuzağa düşürebilen vadiler ve platolar içerir.
Adam, her parametre için iki geçmiş arabelleğini koruyarak bu sorunu ele alır:
-
Momentum (Birinci Moment): Yokuş aşağı yuvarlanan ağır bir topa benzer şekilde, ilgili yöndeki hızı korumak için geçmiş gradyanların hareketli ortalamasını izler.
-
Varyans (İkinci Moment): Öğrenme oranını ölçeklendiren karesi alınmış gradyanların hareketli ortalamasını izler.
Bu birleşim, optimizer'ın manzaranın düz alanlarında daha büyük adımlar, dik veya gürültülü alanlarında ise daha küçük ve temkinli adımlar atmasını sağlar. Ayrıntılı mekanizma, çeşitli derin öğrenme (DL) görevlerinde ampirik üstünlüğünü ortaya koyan Kingma ve Ba'nın Adam araştırma makalesinde açıklanmıştır.
Gerçek Dünya Uygulamaları#
Adam optimizer'ın çok yönlülüğü, onun yapay zekânın (AI) neredeyse tüm alanlarında benimsenmesini sağlamıştır.
- Doğal Dil İşleme (NLP): Üretken önceden eğitilmiş Transformer'lar (GPT) gibi büyük dil modelleri, eğitim için büyük ölçüde Adam'a (veya AdamW varyantına) dayanır. Algoritma, geniş kelime dağarcıkları ve devasa veri kümeleriyle ilişkili seyrek gradyanları verimli bir şekilde işler ve güçlü sohbet botlarının ve çeviri sistemlerinin oluşturulmasını mümkün kılar.
- Sağlık Hizmetlerinde Bilgisayarlı Görü: Tıbbi görüntü analizinde modeller, MRI taramalarındaki tümörler gibi belirsiz anormallikleri tespit etmelidir. Adam, evrişimli sinir ağlarının (CNN) yüksek doğruluklu çözümlere hızla yakınsamasına yardımcı olur; bu da Sağlık Hizmetlerinde AI için tanı araçları geliştirirken kritik öneme sahiptir.
Adam ve SGD Karşılaştırması#
Adam genellikle daha hızlı yakınsasa da onu Stokastik Gradyan İnişinden (SGD) ayırt etmek önemlidir. SGD, model ağırlıklarını sabit bir öğrenme oranı kullanarak günceller ve bazen test verilerinde biraz daha iyi genelleme (nihai doğruluk) sağlayabildiği için, en gelişmiş nesne algılama modellerinin eğitiminin son aşamalarında sıklıkla tercih edilir.
Bununla birlikte Adam "uyarlamalıdır"; yani öğrenme oranının ayarlanmasını otomatik olarak gerçekleştirir. Bu özellik, onu ilk deneyler ve SGD'yi ayarlamanın zor olacağı karmaşık mimariler için çok daha kullanıcı dostu hâle getirir. Ultralytics Platformunda deneyleri yöneten kullanıcılar için performansı karşılaştırmak üzere bu optimizer'lar arasında geçiş yapmak, çoğu zaman hiperparametre ayarlamanın önemli bir adımıdır.
Ultralytics ile Uygulama#
PyTorch ve Ultralytics kitaplığı gibi modern çerçeveler Adam'ı kullanmayı kolaylaştırır. AdamW (Ağırlık Çürümesi ile Adam) adlı popüler bir varyant, orijinal Adam algoritmasındaki düzenlileştirme sorunlarını giderdiği için sıklıkla önerilir. Bu, AdamW'nin sağladığı kararlılıktan yararlanan YOLO26 gibi en yeni mimariler için özellikle etkilidir.
Aşağıdaki örnek, bir Ultralytics YOLO26 modelinin AdamW optimizer kullanılarak nasıl eğitileceğini gösterir:
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 Optimizasyon Notları, Adam'ın RMSProp ve AdaGrad gibi diğer algoritmalarla nasıl karşılaştırıldığını gösteren mükemmel görselleştirmeler sunar. Ayrıca PyTorch Optimizer Belgeleri, özelleştirme için kullanılabilen bağımsız değişkenler ve uygulama ayrıntıları hakkında teknik bilgiler sağlar.









