Geri yayılım ve eğitim dinamikleri
Geri yayılımı zincir kuralıyla yapılan bir pay biçme muhasebesi olarak kurar ve kayıp eğrisinden eğitim sorunlarını teşhis etmenin yolunu gösterir.
Önkoşul: Machine Learning
BU DERSİN SONUNDA
- Geri yayılımı ileri geçiş ve geri geçiş üzerinden zincir kuralıyla açıklamak
- Kayıp eğrisinin biçiminden eğitim sorununu teşhis etmek
- Öğrenme oranı, yığın boyutu ve kırpma kararlarını gerekçelendirmek
- Boru hattı hatasını hiperparametre sorunundan ayırt etmek
- 1
Teori
Kavramın çalışma mantığı
- 2
Örnek
Gerçek bir senaryo üzerinde gösterim
- 3
Lab
Uygulamalı alıştırma
- 4
Test
Kısa ölçüm
- 5
Proje
Rotadaki projeye katkı
Kısa cevap
Geri yayılım bir öğrenme yöntemi değil, bir türev hesabı yöntemidir: kaybın her ağırlığa göre türevini zincir kuralıyla katman katman geriye taşır. Cevapladığı soru tektir — “bu ağırlığı biraz değiştirsem kayıp hangi yöne gider”. Öğrenmeyi yapan şey bu türevi kullanan optimizasyon adımı ve o adımın büyüklüğüdür; eğitimdeki sorunların çoğu da tam olarak burada doğar.
Teori: ileri geçiş, geri geçiş#
İleri geçişte girdi katmanlardan geçer, çıktı ve kayıp hesaplanır; ara etkinleştirmeler saklanır. Geri geçişte aynı hesap grafiği ters yönde yürünür ve her düğümde yerel türev çarpılır. Yöntemin ucuz olmasının nedeni paylaşımdır: bir ara gradyan, yukarısındaki bütün yollar tarafından yeniden kullanılır. Bu sayede maliyet parametre başına bir geçiş değil, ileri geçişle aynı mertebede kalır.
Çok sayıda yerel türevin çarpılmasının doğrudan bir sonucu var: çarpanlar sistematik olarak birden küçükse ilk katmanlara ulaşan sinyal sönümlenir, birden büyükse patlar. Artık bağlantılar, normalleştirme katmanları ve dikkatli başlatma bu çarpımın ölçeğini kullanılabilir aralıkta tutmak için vardır. Bunlar mimarinin süsü değil, derinliği mümkün kılan taşıyıcı unsurlardır.
Optimizasyon: adım büyüklüğü kararı#
| Ayar | Çok küçükse | Çok büyükse | Nasıl karar verilir |
|---|---|---|---|
| Öğrenme oranı | Kayıp çok yavaş düşer, bütçe biter | Kayıp zıplar veya ıraksar | Kısa bir tarama: oranı kademeli artırıp kaybın döndüğü noktayı işaretleyin |
| Yığın boyutu | Gradyan gürültülü, adımlar kararsız | Bellek dolar, genelleme bazen zayıflar | Belleğin izin verdiği değerden başlayın, gerekirse gradyan biriktirme ile büyütün |
| Isınma adımı | İlk adımlarda ıraksama riski | Eğitimin başı boşa harcanır | Büyük yığın ve büyük oranla çalışırken ısınma neredeyse zorunludur |
| Ağırlık sönümü | Aşırı öğrenme kolaylaşır | Model yeterince uyum sağlayamaz | Doğrulama kaybıyla birlikte ayarlanır, tek başına değil |
| Gradyan kırpma eşiği | Gerçek gradyan sinyali de kırpılır, öğrenme yavaşlar | Sivrilmeler süzülmeden geçer, tek adım eğitimi bozabilir | Gradyan normunun dağılımına bakarak seçilir |
Teşhis: kayıp eğrisi ne söyler#
- Eğitim kaybı hiç düşmüyor: öğrenme oranı çok küçük, etiket eşlemesi bozuk ya da kayıp fonksiyonu yanlış tensöre bağlanmış.
- Eğitim kaybı ıraksıyor veya tanımsız değere gidiyor: oran çok büyük, kırpma yok veya sayısal taşma var (sıfırın logaritması, sıfıra bölme).
- Eğitim düşüyor, doğrulama yükseliyor: aşırı öğrenme başladı; veri artırma, düzenlileştirme veya erken durdurma devreye girer.
- İkisi de yüksek bir düzlükte duruyor: kapasite veya eğitim bütçesi yetersiz.
- Doğrulama eğitimden belirgin biçimde iyi: önce iki sayının aynı koşulda ölçülüp ölçülmediğine bakın (bırakma ve veri artırma yalnızca eğitimde etkindir); koşul aynıysa bölme sızdırıyor ya da doğrulama seti kolay örneklerden oluşuyor demektir.
- Kayıp düşüyor ama iş metriği kıpırdamıyor: kayıp, ölçtüğünüz sonucun vekili değil; hedef tanımını gözden geçirin.
Zincir kuralı somut olarak#
import numpy as np
def ileri_geri(x, y, w, b):
"""Tek doğrusal katman + sigmoid + ikili çapraz entropi."""
z = x @ w + b # ileri: doğrusal katman
p = 1.0 / (1.0 + np.exp(-z)) # ileri: sigmoid
kayip = -(y * np.log(p) + (1 - y) * np.log(1 - p)).mean()
# geri: sigmoid ile çapraz entropinin türevi sadeleşir
dz = (p - y) / len(y) # dKayip/dz
dw = x.T @ dz # zincir kuralı: dKayip/dz * dz/dw
db = dz.sum(axis=0)
return kayip, dw, dbÜretimde bu hesabı çerçeve otomatik yapar; elle görmenin değeri başka yerde. Eğitim hatalarının büyük kısmı grafik hatasıdır: kopmuş bir tensör, yanlış maske, dolgu üzerinde hesaplanmış bir kayıp. Bunlar hiperparametre gibi görünür ama belirtileri farklıdır — gradyanın bir kolda tam sıfır olması ya da adımlar arasında hiç değişmemesi, ayar sorunu değil bağlantı sorunudur.
Boru hattını kanıtlamanın en hızlı yolu#
Bir avuç örnek alın ve modeli o örnekleri neredeyse tam ezberleyene kadar eğitin. Ezberleyebiliyorsa veri yolu, kayıp bağlantısı ve gradyan akışı çalışıyordur; sorun öğrenmenin zorluğundadır. Ezberleyemiyorsa hata ayarda değil kodda demektir. Bu sınama, “kod yanlış” ile “problem zor” arasındaki ayrımı dakikalar içinde verir ve saatlerce süren gereksiz hiperparametre taramasını önler.
Sık yapılan hata#
İki hata sık tekrar eder. Birincisi, kayıp kıpırdamadığında ilk refleks olarak hiperparametre taramasına girişmek; oysa veri yolunun doğruluğu kanıtlanmadan taranan her ayar boşa yakılan bütçedir. İkincisi, tohumu, veri sırasını ve bölmeyi sabitlemeden iki koşuyu karşılaştırıp mimari hakkında sonuç çıkarmaktır.
LAB · UYGULAMALI ALIŞTIRMA
Küçük seti kasten aşırı öğretin
- 1Kendi etiketli verinizden 32 örnek seçip ayrı bir küçük set olarak kaydedin.
- 2Düzenlileştirmeyi kapatın: ağırlık sönümü, bırakma ve veri artırma devre dışı kalsın.
- 3Bu 32 örnek üzerinde kayıp neredeyse sıfıra inene kadar eğitin; inmiyorsa etiket eşlemesini, maskeyi ve gradyanın ulaştığı katmanları kontrol edin.
- 4Aynı kurulumu üç farklı tohumla koşup kayıp eğrilerini üst üste çizin.
- 5Öğrenme oranını on kat büyütüp bir kez daha koşun ve ıraksamanın hangi adımda başladığını not edin.
- 6Bulguları tek tabloda toplayın: tohum, öğrenme oranı, son kayıp, ıraksama var/yok.
Beklenen çıktı
Boru hattınızın öğrenebildiğini kanıtlayan bir aşırı öğrenme koşusu ve öğrenme oranının üst sınırını gösteren tohum-oran tablosu.
Sık sorulan sorular
Geri yayılım beynin öğrenmesini mi taklit ediyor?
Hayır. Biyolojik benzetme ilham düzeyinde kaldı; geri yayılım bir türev hesabı tekniğidir, sinir bilimsel bir model değil. Bu ayrımı korumak pratik bir fayda sağlar: ağın yapabileceklerini ve yapamayacaklarını benzetmeye değil, hesabın kendisine bakarak tartışırsınız.
Gradyanlar sönümleniyorsa katman sayısını azaltmak çözüm mü?
Genellikle gereksiz bir taviz. Artık bağlantı, normalleştirme ve uygun başlatma, yerel türevlerin çarpımını kullanılabilir ölçekte tutarak derinliği çalışır kılar. Derinliği azaltmak sorunu maskeler ama kapasiteyi de düşürür.
Eğitim kaybım doğrulama kaybından yüksek görünüyor, hata mı var?
Her zaman değil. Bırakma ve veri artırma eğitim sırasında etkin, değerlendirme sırasında kapalıdır; bu, eğitim kaybını sistematik olarak şişirir. Önce iki sayının aynı koşulda ölçülüp ölçülmediğini doğrulayın; farklı koşulda ölçülen iki sayı karşılaştırılamaz.
LEARN
Generative AI Engineer rotasına devam et
Dersler tek başına da okunabilir, ama sıralı ilerlemek önkoşul boşluklarını kapatır.
