01Dar bir vadide düz iniş#
Eğitim döngüsü yazısında kuralı gördün: kaybın gradyanını hesapla, parametreleri öğrenme oranı kadar ters yönde oynat. Bu kural, kayıp yüzeyinin her yönde benzer eğimde olduğu durumlarda iyi çalışır. Gerçek yüzeyler ise çoğu zaman bir vadiye benzer: bir yönde çok dik (yan duvarlar), öteki yönde çok yatay (vadi tabanı). Böyle yüzeylere kötü koşullanmış denir.
Aşağıda böyle bir vadi var: f = (u² + 100·v²)/2. Bir yönde eğrilik 1, öbür yönde 100. Düz gradyan inişi iki sınırın arasında sıkışır: öğrenme oranı 2/100 = 0,02’den büyükse dik yönde ileri geri sıçrayarak patlar; küçükse vadi tabanı boyunca çok yavaş ilerler. Üç yöntemi aynı noktadan başlat, öğrenme oranını değiştir.
Aynı vadi, üç yürüyüş biçimi
Öğrenme oranını değiştir. Her yöntemin kendine ait bir “çalışma aralığı” olduğunu gör. Sonra vadiyi 45° döndür: Adam’ın avantajına ne oluyor?
Düz: 2,395 · Momentum: 0,105 · Adam: 49,755Düz: 333 · Momentum: 65 · Adam: ulaşamadıHesabı gör
Düz iniş: p ← p − η·g. Momentum: v ← 0,9·v + g; p ← p − η·v. Adam: m ← β₁m + (1−β₁)g; s ← β₂s + (1−β₂)g²; p ← p − η·m̂/(√ŝ + ε), burada m̂ ve ŝ başlangıç yanlılığı düzeltilmiş değerlerdir. Düz iniş yalnızca η < 2/100 = 0,02 iken kararlıdır; bu yüzden vadi boyunca (x) ilerlemesi yavaştır. Momentum bu sınırı yaklaşık 2·(1+0,9)/100 = 0,038’e çıkarır.
Düz inişle kaybın 0,01’in altına inmesi için gereken adım sayısı, öğrenme oranı 0,01’de 333, sınırın hemen altındaki 0,019’da 175’tir. Daha az adım için oranı büyütmek gerekirdi, ama o zaman patlar. Yani vadi tabanı boyunca ilerleme hızı, dik yönün izin verdiği adım büyüklüğüyle sınırlıdır.
02Momentum: yön hafızası#
Momentum, güncellemeye bir hız ekler: v ← 0,9·v + gradyan; parametre ← parametre − η·v. Dik yönde gradyanın işareti sürekli değişir, hızlar birbirini söndürür; vadi tabanı boyunca ise gradyan hep aynı yönü gösterir, hızlar birikir. Sonuç: aynı kararlılık bölgesinde çok daha hızlı ilerleme.
Demoda aynı vadi için momentumla kayıp 0,01’in altına, öğrenme oranı 0,01’de 65, 0,03’te 49 adımda iniyor; düz inişte aynı iş 175–333 adım sürüyordu. Üstelik momentumun kararlılık sınırı da genişliyor: yaklaşık 2·(1+0,9)/100 = 0,038. Ama sınırın dışına çıkınca (0,05) o da patlıyor.
03Adam: her parametreye kendi adım boyu#
Adam, gradyanın hareketli ortalamasını (momentum gibi) ve gradyanın karesinin hareketli ortalamasını tutar; her parametrenin adımını, kendi gradyanının tipik büyüklüğüne bölerek ölçekler. Dik yönde gradyan büyüktür, adım küçülür; yatay yönde gradyan küçüktür, adım büyür. Kingma ve Ba’nın tanımıyla yöntem, düşük mertebeden momentlerin uyarlamalı tahminlerine dayanır, az bellek kullanır ve gradyanların köşegen ölçeklenmesinden etkilenmez. Adam ↗
Demoda sonuç çarpıcı: öğrenme oranı 0,2 iken Adam kaybı 0,01’in altına 25 adımda indiriyor; düz iniş ve momentum aynı oranda patlıyor. Adam, öğrenme oranına karşı da çok daha toleranslı: denediğim 0,1; 0,2; 0,3 ve 0,5 değerlerinin hepsinde eşiğe 25–65 adımda ulaşıyor. Ama oranı küçük seçersen (0,01) 400 adımda bile ulaşamıyor: adımı oranla sınırlı.
Şimdi demoda vadiyi 45° döndür. Vadi artık koordinat eksenleriyle hizalı değil. Aynı öğrenme oranında (0,2) Adam 400 adımda bile eşiğe ulaşamıyor; 100. adımda kaybı hâlâ yaklaşık 1,0; hizalı vadide 0,0025’ti. Düz iniş ve momentum ise yön değişikliğinden bağımsız çalışır. Neden? Adam, her koordinatı ayrı ayrı ölçekler. Kötü koşullanma eksenlerle hizalıysa bu tam ihtiyaç duyulan şeydir; vadi eğikse hiçbir koordinat başına ölçekleme sorunu çözmez.
04Sonuçlar: bu vadide kim ne zaman kazanır?#
Kayıp 0,01’in altına inene kadar adım sayısı (eksenlere hizalı vadi, en fazla 400 adım):
| Öğrenme oranı | Düz iniş | Momentum | Adam |
|---|---|---|---|
| 0,01 | 333 | 65 | ulaşamadı |
| 0,019 | 175 | 89 | 397 |
| 0,03 | patladı | 49 | 243 |
| 0,2 | patladı | patladı | 25 |
Burada çıkarılabilecek şey, tek bir kazanan olmadığıdır: her yöntemin kendi çalışan aralığı var ve en iyi öğrenme oranı yönteme göre değişiyor. Tablo, bu tek yapay vadi için geçerlidir; gerçek bir sinir ağında kayıp yüzeyi çok daha karmaşıktır ve gradyanlar gürültülüdür (bu demoda yok).
05Uygulamada neler bilinir?#
- Adam ailesi geniş kullanılır, ama tartışmasızdır denemez. Wilson ve arkadaşları, uyarlamalı yöntemlerin (AdaGrad, RMSProp, Adam) bazı basit aşırı parametreli problemlerde SGD’den farklı çözümlere ulaştığını ve denedikleri birkaç derin öğrenme modelinde, eğitim performansı daha iyi olsa bile daha kötü genelleme verebildiğini bildirdi. The Marginal Value of Adaptive Gradient Methods ↗
- Ağırlık sönümü Adam’da ayrı düşünülür. Loshchilov ve Hutter, L2 düzenlileştirmesi ile ağırlık sönümünün SGD için eşdeğer ama Adam için eşdeğer olmadığını gösterdi; ağırlık sönümünü kayıp tabanlı güncellemeden ayırmak (AdamW) Adam’ın genellemesini ve öğrenme oranı ayarını iyileştirdi. Decoupled Weight Decay Regularization ↗
- Öğrenme oranı en duyarlı ayardır (en azından bu demoda): oran bir mertebe oynadığında yöntemin davranışı sınıf değiştirir.
Şimdi yapı taşlarına dönelim: görüntülerde işleri yapan küçük pencere. Evrişimli ağlar nasıl çalışır?
Bu yazıyı bitirdiğinde:
- Dar bir vadide düz gradyan inişinin neden zorlandığını anlatabilirsin.
- Momentum ve Adam’ın düz inişten farkını açıklayabilirsin.
- Hiçbir optimizasyon yönteminin her yerde kazanmadığını, öğrenme oranı duyarlılığıyla birlikte söyleyebilirsin.
Cümlelerden birini kendi sözlerinle anlatamıyorsan, ilgili bölüme dön ve demoyu yeniden dene.
Evrişimli ağlar: görüntüde küçük bir pencere
Orta · 9 dk okuma