keyboard_return Nasıl Öğreniyor?
Ağa bir kedi fotoğrafı verdiğinizde, sinyal ilk katmandan son katmana kadar (İleri Besleme / Forward Pass) gider. Ağ %80 ihtimalle 'Köpek' der. Bu tamamen yanlış bir cevaptır. Backpropagation algoritması tam bu noktada devreye girer. Hatayı (Loss) hesaplar ve ağın çıkışından girişine doğru Geriye Doğru (Backward) ilerleyerek, 'Bu hataya hangi nöron sebep oldu?' sorusunu sorar. Hatalı tahmine neden olan nöronların ağırlıklarını (katsayılarını) cezalandırıp düşürerek, bir sonraki denemede doğru cevabı bulmalarını sağlar.
Tarihsel Önemi
- check_circle Yapay Zeka Kışını Bitirdi: 1970'lerde çok katmanlı ağların nasıl eğitileceği bilinmiyordu. 1986'da Geoffrey Hinton ve arkadaşları Backpropagation'ı popülerleştirince ağların 'kendi hatalarını optimize etme' yolu açıldı ve modern derin öğrenme çağı başladı.
Geri Yayılım: Matematiksel Adımlar
- check_circle İleri Geçiş (Forward Pass): Giriş verisi ağ katmanlarından geçirilir; her katmanda z = Wx + b ve aktivasyon a = f(z) hesaplanır. Tüm ara aktivasyonlar bellekte saklanır — geri geçiş bu değerlere ihtiyaç duyar.
- check_circle Kayıp Hesaplama: Tahmin ve gerçek etiket arasındaki fark kayıp fonksiyonuyla ölçülür. Sınıflandırma: çapraz entropi L = -Σ y log(ŷ). Regresyon: MSE L = (y - ŷ)² / n. Kayıp skaler bir değerdir ve tüm parametrelere göre türevi alınabilir.
- check_circle Geri Geçiş (Backward Pass) — Zincir Kuralı: ∂L/∂W = ∂L/∂a × ∂a/∂z × ∂z/∂W formülü zincir kuralıyla hesaplanır. Çıkış katmanından giriş katmanına doğru katman katman gradyan akışı. Her ağırlık için gradient hesaplandıktan sonra W = W - η × ∂L/∂W ile güncelleme yapılır.
- check_circle Gradyan Yok Olması ve Patlaması: Vanishing gradient: sigmoid/tanh aktivasyonlarında derine indikçe gradyan 0'a yaklaşır; derin ağ öğrenemez. Exploding gradient: gradyan üstel büyür; kayıp dengesizleşir. Çözümler: ReLU aktivasyonu, gradient clipping, batch normalization, artık bağlantılar (ResNet).
Otomatik Türev (Autograd) ve Modern Çerçeveler
Modern derin öğrenme çerçeveleri geri yayılımı otomatik hesaplar. PyTorch Autograd: her hesaplama grafiği dinamik olarak oluşturulur; loss.backward() çağrısıyla tüm gradyanlar hesaplanır. TensorFlow/Keras: tf.GradientTape() ile gradyan takibi. JAX: fonksiyonel programlama; jax.grad() saf fonksiyonun türevini alır. Computational graph: her işlem düğüm, her tensor kenar — geri yayılım bu grafik üzerinde toposolojik sırayla ilerler. Gradient checkpointing: bellek kısıtlı durumlarda ara aktivasyonlar silinir ve gerektiğinde yeniden hesaplanır.