Vanishing ve exploding gradient problemi nedir? Nasıl çözülür?

Cevap

Derin ağlarda backpropagation sırasında gradyanlar katman katman çarpılarak geriye taşınır. Bu çarpanlar sürekli 1'den küçükse gradyan üstel olarak küçülür (vanishing), ilk katmanlar neredeyse hiç öğrenmez. 1'den büyükse üstel olarak büyür (exploding), loss NaN olur veya eğitim patlar.

Sebepleri

  • Sigmoid/tanh gibi doyan aktivasyonlar: sigmoid türevi en fazla 0.25'tir.
  • Kötü ağırlık başlatma (çok küçük veya çok büyük ağırlıklar).
  • Çok derin ağlar ve uzun dizilerde RNN'ler (aynı ağırlık matrisi tekrar tekrar çarpılır).

Çözümler

  1. ReLU ailesi aktivasyonlar: Pozitif bölgede türev 1'dir.
  2. Doğru başlatma: ReLU için He (Kaiming), tanh/sigmoid için Xavier (Glorot). Amaç katmanlar arası varyansı korumak.
  3. Residual connection (ResNet, transformer): y = x + F(x). Gradyan için doğrudan bir "otoyol" sağlar.
  4. Normalization: BatchNorm, LayerNorm aktivasyon dağılımlarını stabilize eder.
  5. Gradient clipping: Özellikle exploding için. Transformer ve RNN eğitiminde standarttır.
  6. LSTM/GRU: Gate mekanizmaları sayesinde RNN'deki vanishing problemini hafifletir.
  7. Uygun learning rate ve warmup.
loss.backward()
torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm=1.0)
optimizer.step()

Nasıl teşhis edilir?

  • Katman bazlı gradyan normlarını loglamak (TensorBoard, W&B).
  • Loss'un aniden NaN/inf olması exploding'e işaret eder.
  • İlk katman ağırlıklarının hiç değişmemesi vanishing'e işaret eder.
  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