Atlas’ta ara

Keşfetmeye buradan başla

Öğren/Optimizasyon

Gradyan inişi nasıl akıllanır: momentum ve Adam

Düz gradyan inişi dar bir vadide neden yavaşlar? Momentum ve Adam bunu nasıl değiştirir, hangi koşulda işe yarar ve neden bir yöntem her yerde kazanmaz? Üç yöntemi aynı vadide yarıştır.

ÖN BİLGİ

Bu yazıyı rahat izlemek için şunlara önce bakmış olman iyi olur:

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.

01

Aynı vadi, üç yürüyüş biçimi

Hesaplanan · temsili girdiler

Öğ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?

başlangıçen düşük nokta−3−2−101230255075100log₁₀ kayıpadımDüz gradyan inişiMomentumAdam
60. ADIMDA KAYIPDüz: 2,395 · Momentum: 0,105 · Adam: 49,755
KAYIP < 0,01 İÇİN ADIM (EN FAZLA 400)Dü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.

Tek bir yapay vadi: f = (u² + 100·v²)/2. Üç yöntem aynı noktadan (−4; 1,5) başlıyor ve tarayıcıda gerçekten hesaplanıyor; gürültü yok. Momentum katsayısı 0,9, Adam β₁ = 0,9, β₂ = 0,999. Sonuçlar bu tek problem için geçerlidir; gerçek ağların kayıp yüzeyi çok daha karmaşıktı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şMomentumAdam
0,0133365ulaşamadı
0,01917589397
0,03patladı49243
0,2patladı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?

KENDİNİ SINA

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.

İlerleme yalnızca bu tarayıcıda saklanır.
BAĞLANTILI KAVRAMLAR

Bir fikri diğerine bağla.

Rotanı gör: sıradaki adım ne? Bütün dersler