Geri Yayılım
Hesap grafiği, yerel gradyan ve sayısal bir adım.
Kayıp sonda, ağırlık dosyası başta. Aradaki her çarpmanın türevi varsa, zincir kuralı “bu sayıyı hangi tarafa kaydırayım?”ı üretir. Geri yayılım bu çarpımı sondan başa taşımaktır. JVM değildir. Ağ anlamaz; çarpım taşır.
Hesap grafiği
İleri: düğümler ara değer, kenarlar işlem. x, w, b → z = wx + b → h = ReLU(z) → L = ½(h − y)². Her kenarın yerel türevi vardır: ∂z/∂w = x, ∂h/∂z = 1[z>0], ∂L/∂h = h − y.
Geri: L’den başlayıp her düğüme ∂L/∂(düğüm) yazılır. Gelen gradyan, yerel türevle çarpılır. Aynı w birden fazla yolda kullanılıyorsa (paylaşım, konvolüsyon) gradyanlar toplanır.
Eğitim döngüsü:
- Mini-batch al.
- İleri geçiş: ara
z, h’yi sakla. Lhesapla.- Geri geçiş: her
θiçin∂L/∂θ. θ ← θ − η ∇θ(veya Adam).
Saklanmayan ara değer, φ'(z) için z’yi yeniden hesaplatır veya imkânsız kılar. Bellek–hesap takası (checkpointing) budur.
Sayısal örnek
x = 2, w = 0.3, b = 0.1, y = 1, η = 0.1.
İleri:
z = 0.3·2 + 0.1 = 0.7
h = ReLU(0.7) = 0.7
L = ½(0.7 − 1)² = 0.045
Geri:
∂L/∂h = 0.7 − 1 = −0.3
∂L/∂z = −0.3 · 1 = −0.3
∂L/∂w = −0.3 · 2 = −0.6
∂L/∂b = −0.3 · 1 = −0.3
∂L/∂x = −0.3 · 0.3 = −0.09 (girdi eğitilmez; zincir yine üretir)
Güncelleme:
w ← 0.3 − 0.1(−0.6) = 0.36
b ← 0.1 − 0.1(−0.3) = 0.13
Yeni z = 0.85, h = 0.85, L = ½(0.15)² = 0.01125. Kayıp düştü. w büyüdü çünkü x > 0 ve h < y: skoru artırmak hatayı küçültür.
z < 0 olsaydı ∂h/∂z = 0, ∂L/∂w = 0: o örnekte bu birim öğrenmez.
İki katman, fikir
h = ReLU(W₁ x + b₁), ŷ = W₂ h + b₂. ∂L/∂ŷ çıktıdan gelir. ∂L/∂h = W₂ᵀ (∂L/∂ŷ) — üst katmanın ağırlığı, hatayı alta yansıtır. Sonra ReLU maskesi, sonra ∂L/∂W₁ = (∂L/∂z₁) xᵀ. Matris boyutu: dış çarpım. Elle yazmak yorucu, kural aynı: gelen gradyan × yerel Jacobian.
Otomatik türev (autograd) tam bunu yapar: ileri izi kaydeder, geri ∂L/∂y seed’i ile yürür. Sizin yazdığınız loss.backward() bu grafiğin yürüyüşüdür.
Grad-check
Analitik ∂L/∂w ile [L(w+ε) − L(w−ε)] / (2ε) farkı ε ≈ 10⁻⁵ iken göreli olarak küçük kalmalıdır. Uymazsa zincirde işaret veya yayın (broadcast) hatası vardır. Eğitimi “biraz daha epoch” ile tamir etmeyin; önce bu farka bakın.
Alıştırma
Aynı ağda x = 2, w = −1, b = 0, y = 1 alın. z nedir, ReLU açık mı? ∂L/∂w neden 0’dır ve w bir adımda değişmez? b’yi +2 yapmak neden birimi tekrar hayata döndürür?