Backpropagation nasıl çalışır? İki katmanlı basit bir ağ için gradyanları adım adım gösterin.

Cevap

Backpropagation, loss'un tüm parametrelere göre gradyanını zincir kuralı (chain rule) ile verimli şekilde hesaplayan algoritmadır. Önce forward pass ile ara değerler hesaplanıp saklanır, sonra çıktıdan girdiye doğru geriye gidilerek her katmanın yerel gradyanı yukarıdan gelen gradyanla çarpılır. Maliyeti kabaca bir forward pass kadardır.

Örnek: x → Linear → ReLU → Linear → softmax + cross-entropy

Forward:

z1 = W1·x + b1
h  = ReLU(z1)
z2 = W2·h + b2
p  = softmax(z2)
L  = -log p[y]

Backward (zincir kuralı):

dL/dz2 = p - onehot(y)              # softmax + CE birleşik gradyanı
dL/dW2 = dL/dz2 · hᵀ
dL/db2 = dL/dz2
dL/dh  = W2ᵀ · dL/dz2
dL/dz1 = dL/dh * (z1 > 0)           # ReLU türevi: 1 veya 0
dL/dW1 = dL/dz1 · xᵀ
dL/db1 = dL/dz1
import numpy as np
# X: (N, D), y: (N,)
z1 = X @ W1 + b1; h = np.maximum(0, z1)
z2 = h @ W2 + b2
p = np.exp(z2 - z2.max(1, keepdims=True)); p /= p.sum(1, keepdims=True)
dz2 = p.copy(); dz2[np.arange(len(y)), y] -= 1; dz2 /= len(y)
dW2 = h.T @ dz2;  db2 = dz2.sum(0)
dh  = dz2 @ W2.T
dz1 = dh * (z1 > 0)
dW1 = X.T @ dz1;  db1 = dz1.sum(0)

Önemli noktalar

  • Forward'daki ara aktivasyonların saklanması gerekir. Eğitimde bellek tüketiminin büyük kısmı buradan gelir (çözüm: gradient checkpointing).
  • PyTorch gibi framework'ler bunu autograd ile otomatik yapar: hesaplama grafiğini forward'da kaydeder, loss.backward() ile ters yönde dolaşır (reverse-mode automatic differentiation).
  • Gradyanın doğruluğunu sayısal türevle (gradient checking) test edebilirsiniz.
  1. NumPy ile sayısal olarak kararlı (numerically stable) softmax ve cross-entropy loss yazın. Logit'lere göre gradyanı nedir?ZorDerin ÖğrenmeYapay Zeka
  2. PyTorch ile bir sınıflandırma modeli için eksiksiz bir training loop yazın. Hangi adımlar sık unutulur?OrtaDerin ÖğrenmeYapay Zeka
  3. Transfer learning nedir? Önceden eğitilmiş bir modeli küçük bir veri setine nasıl fine-tune edersiniz?OrtaDerin ÖğrenmeYapay Zeka
  4. Embedding nedir? One-hot encoding'e göre avantajı nedir ve nerelerde kullanılır?KolayDerin ÖğrenmeYapay Zeka
  5. Transformer mimarisini anlatın. Encoder-only, decoder-only ve encoder-decoder modeller arasındaki fark nedir?ZorDerin ÖğrenmeYapay Zeka
  6. Self-attention nasıl çalışır? Scaled dot-product attention'ı NumPy ile yazın ve neden sqrt(d_k) ile bölündüğünü açıklayın.ZorDerin ÖğrenmeYapay Zeka

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle