• Yapay zeka soru ve sorunlarınızı uygun olan kategorilere açıp yanıt alabilirsiniz...

Adam optimizasyonu nedir?

Garfield

YZF Admin
Yaş
40
Konum
YurtDışı
Katılım
27 Eki 2026
Konular
664
Mesajlar
689
AI Seviyesi
Yeni
Adam optimizasyonu, yapay sinir ağlarını eğitirken ağırlıkları kayıp değerini azaltacak yönde güncelleyen bir optimizasyon algoritmasıdır. Gradyanın yalnızca anlık değerini değil, geçmiş gradyanların ortalamasını ve karelerinin ortalamasını da izlediği için öğrenme hızını otomatik olarak ayarlayabilir. Bu nedenle özellikle derin öğrenme modellerinde iyi bir başlangıç seçeneğidir; ancak her veri kümesinde en iyi sonucu vereceği garanti edilmez. Kullanımda temel yaklaşım, uygun bir öğrenme oranıyla Adam’ı başlatmak, eğitim ve doğrulama kaybını izlemek, ardından gerekirse öğrenme oranını veya düzenlileştirme ayarlarını değiştirmektir.

Adam nasıl çalışır?​


Bir modelin ağırlıkları θ, kayıp fonksiyonunun gradyanına göre güncellenir. Klasik gradyan inişinde her ağırlık için aynı öğrenme oranı kullanılırken Adam, her parametre için ayrı bir güncelleme büyüklüğü hesaplar.

Adam iki hareketli ortalama tutar:
  • Birinci moment: Gradyanların yönünü ve ortalama büyüklüğünü izler. Bu, momentum gibi davranarak güncellemelerin daha kararlı olmasına yardım eder.
  • İkinci moment: Gradyanların karelerini izler. Büyük gradyan alan parametrelerde adımın küçülmesini, küçük gradyan alanlarda ise göreli olarak daha etkili güncelleme yapılmasını sağlar.
Gradyan g_t olmak üzere Adam’ın temel hesaplaması şöyledir:

m_t = β_1 m_(t-1) + (1-β_1)g_t

v_t = β_2 v_(t-1) + (1-β_2)g_t^2

İlk adımlarda hareketli ortalamalar sıfıra yakın başladığı için Adam bunları yanlılık düzeltmesiyle düzenler:

m_hat_t = m_t/(1-β_1^t)

v_hat_t = v_t/(1-β_2^t)

Son güncelleme genel olarak şu biçimdedir:

θ_t = θ_(t-1) - α × m_hat_t/(sqrt(v_hat_t)+ε)

Burada α öğrenme oranı, β_1 ve β_2 hareketli ortalamaların etkisini, ε ise sıfıra bölme riskini azaltan küçük sabiti belirtir.

Küçük bir sayısal örnek​


Varsayımsal olarak tek bir ağırlığın gradyanı ilk eğitim adımında g_1=0,8, öğrenme oranı α=0,001, β_1=0,9 ve β_2=0,999 olsun. Başlangıçta m_0=0 ve v_0=0 kabul edilir.

İlk moment:

m_1 = 0,9×0 + 0,1×0,8 = 0,08

İkinci moment:

v_1 = 0,999×0 + 0,001×0,8^2 = 0,00064

İlk adımdaki yanlılık düzeltmesi, bu değerleri başlangıçtaki sıfır etkisinden arındırır. Böylece Adam gradyanın yönünü kullanırken güncelleme büyüklüğünü de gradyanın geçmiş ölçeğine göre ayarlar. Bu ilk adımda pozitif gradyan ağırlığı azaltır. Sonraki adımlarda yön, geçmişi içeren düzeltilmiş birinci momente bağlıdır; anlık gradyanın işareti değişse de güncelleme yönü hemen değişmeyebilir. Bu işlem bütün ağırlıklar için tekrarlanır.

Bu örnek, Adam’ın kayıp fonksiyonunu kendi başına değiştirmediğini gösterir. Algoritma yalnızca model ağırlıklarının nasıl güncelleneceğini belirler; model mimarisi, veri kalitesi, kayıp fonksiyonu ve mini yığın büyüklüğü hâlâ sonucu etkiler.

Kod içinde temel kullanım​


Aşağıdaki örnek, PyTorch kullanan varsayımsal bir sınıflandırma modelinde Adam’ın en küçük kullanımını gösterir. Model, kaybı hesaplar, gradyanları temizler, geriye yayılım yapar ve ağırlıkları günceller:

Python:
import torch
import torch.nn as nn

model = nn.Linear(4, 2)
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)
criterion = nn.CrossEntropyLoss()

inputs = torch.randn(8, 4)
targets = torch.randint(0, 2, (8,))

optimizer.zero_grad()
outputs = model(inputs)
loss = criterion(outputs, targets)
loss.backward()
optimizer.step()

print("Kayıp:", loss.item())

Bu kod çalıştırıldığında çıktı, o mini yığın için hesaplanan kayıp değeridir. Tek bir adımda kaybın azalması modelin genelleme yaptığını kanıtlamaz; eğitim boyunca eğitim kaybı ve daha önce görülmemiş doğrulama verisindeki kayıp birlikte izlenmelidir.

Adam ne zaman tercih edilir?​


Adam, gradyanların ölçekleri parametreler arasında farklı olduğunda ve eğitim sürecinde hızlı bir başlangıç gerektiğinde kullanışlıdır. Özellikle seyrek gradyanlar, değişken özellik ölçekleri veya derin ağlarda başlangıç optimizasyonu için pratik olabilir.

Buna karşılık Adam’ın eğitim kaybını hızlı düşürmesi, doğrulama başarımının da en iyi olacağı anlamına gelmez. Bazı görevlerde SGD ve momentum, özellikle son aşamadaki genelleme bakımından daha iyi sonuç verebilir. Bu nedenle seçim yalnızca eğitim kaybının ilk birkaç adımına göre yapılmamalıdır.
Durumİlk tercih için yorum
Hızlı ve pratik başlangıçAdam genellikle uygun bir başlangıç seçeneğidir.
Genelleme başarımı kritikAdam ile SGD veya momentumlu SGD doğrulama verisinde karşılaştırılmalıdır.
Eğitim kaybı dalgalanıyorÖğrenme oranı fazla yüksek olabilir; önce bu değer azaltılmalıdır.
Eğitim kaybı düşüyor, doğrulama kaybı yükseliyorAşırı öğrenme, veri farkı veya yetersiz düzenlileştirme incelenmelidir.
Tablodaki ayrım, Adam’ın iyi veya kötü diye kesin sınıflandırılamayacağını gösterir. Sonuç; veri kümesine, model yapısına, öğrenme oranına, yığın büyüklüğüne ve düzenlileştirme yöntemlerine bağlıdır. Başlangıçta sık kullanılan bir öğrenme oranı 0,001 olsa da bu değer evrensel bir kural değildir; kayıp eğrisi ve doğrulama başarımıyla kontrol edilmelidir.

Öğrenme sırasında sonucu nasıl yorumlamalısınız?​


Eğitim kaybı düzenli biçimde azalıyor, doğrulama kaybı da azalıyor ve doğrulama başarımı iyileşiyorsa Adam’ın mevcut ayarları görev için işe yarıyor olabilir. Eğitim kaybı azalırken doğrulama kaybı artıyorsa model eğitim verisine fazla uyuyor olabilir; daha erken durdurma, düzenlileştirme, veri artırma veya daha küçük bir model değerlendirilmelidir.

Kayıp baştan itibaren çok dalgalıysa öğrenme oranını azaltmak ilk denenecek değişikliklerden biridir. Kayıp neredeyse hiç değişmiyorsa öğrenme oranı çok düşük olabilir; bunun yanında gradyanların sıfıra yaklaşması, hatalı etiketler, uygun olmayan veri ölçekleri veya modelin ileri geçişindeki bir hata da kontrol edilmelidir. Yalnızca optimizer’ı değiştirmek bu sorunların hepsini çözmez.

Adam kullanırken öğrenme oranı çizelgeleme, ağırlık çürümesi ve erken durdurma gibi yöntemler ayrıca uygulanabilir. Ancak her değişikliği aynı anda yapmak yerine bir ayarı değiştirip doğrulama sonucunu karşılaştırmak, hangi değişikliğin etkili olduğunu anlamayı kolaylaştırır.
 

Sen de şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Robotlar:
  • Anthropic
Geri
Üst