Dropout nasıl çalışır? Eğitim ve inference sırasında davranışı neden farklıdır?

Cevap

Dropout, eğitim sırasında her forward pass'te nöronların rastgele bir kısmını (oran p, örneğin 0.1–0.5) sıfırlayan bir regularization tekniğidir. Ağ tek bir nörona aşırı güvenemez ve daha dağıtık, sağlam temsiller öğrenir. Bu, örtük olarak birçok alt ağın ensemble'ını eğitmeye benzetilir.

Eğitim ve inference farkı

  • Eğitimde: Nöronlar p olasılıkla sıfırlanır. Kalanlar 1/(1-p) ile ölçeklenir (inverted dropout). Böylece aktivasyonların beklenen değeri değişmez.
  • Inference'ta: Dropout kapatılır, tüm nöronlar kullanılır. Ölçekleme eğitimde yapıldığı için ek işlem gerekmez.

PyTorch'ta bu geçişi model.train() ve model.eval() yönetir. eval() çağrılmazsa her tahmin rastgele değişir.

import torch, torch.nn as nn

drop = nn.Dropout(p=0.5)
x = torch.ones(8)
drop.train(); print(drop(x))  # bazı değerler 0, diğerleri 2.0
drop.eval();  print(drop(x))  # hepsi 1.0

Pratik notlar

  • Büyük veriyle eğitilen modern LLM'lerin pretraining aşamasında dropout genelde 0 veya çok düşüktür. Veri bol olduğu için overfitting asıl sorun değildir.
  • Fine-tuning'de (örneğin LoRA dropout) ve küçük veri setlerinde hâlâ faydalıdır.
  • CNN'lerde genelde BatchNorm + data augmentation tercih edilir, dropout daha çok sondaki fully connected katmanlarda kullanılır.
  • MC Dropout: Inference'ta dropout açık bırakılıp birden çok tahmin alınarak belirsizlik (uncertainty) tahmini yapılabilir.
  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