Aktivasyon fonksiyonları neden gereklidir? ReLU, sigmoid, tanh ve GELU'yu karşılaştırın.
Cevap
Aktivasyon fonksiyonları ağa doğrusal olmayan (non-linear) bir yapı kazandırır. Aktivasyon olmadan, kaç katman olursa olsun art arda lineer dönüşümler tek bir lineer dönüşüme eşittir (W2(W1x) = (W2W1)x). Ağ karmaşık örüntüleri öğrenemez.
| Fonksiyon | Aralık | Avantaj | Dezavantaj | Tipik kullanım |
|---|---|---|---|---|
| Sigmoid | (0, 1) | Olasılık olarak yorumlanır | Doyar, vanishing gradient, merkezlenmemiş | Binary çıktı katmanı, gate'ler |
| Tanh | (-1, 1) | Sıfır merkezli | Yine doyar | RNN/LSTM içi |
| ReLU | [0, ∞) | Hızlı, doymaz (pozitif tarafta) | Dying ReLU: negatifte gradyan 0 | CNN'ler, genel gizli katmanlar |
| Leaky ReLU | (-∞, ∞) | Negatifte küçük eğim, ölmez | Ek hiperparametre | ReLU alternatifi |
| GELU | yaklaşık (-0.17, ∞) | Pürüzsüz, olasılıksal kapı | Biraz daha pahalı | BERT, GPT ailesi |
| SwiGLU | – | Gated yapı, daha iyi kalite | Ekstra parametre | Llama, modern LLM'ler |
| Softmax | (0,1), toplamı 1 | Çok sınıflı olasılık dağılımı | – | Çok sınıflı çıktı katmanı |
Pratik seçim
- Gizli katmanlar için varsayılan: ReLU (CNN) veya GELU/SwiGLU (transformer).
- Çıktı katmanı probleme göre seçilir: regresyon için aktivasyonsuz (lineer), binary için sigmoid, çok sınıflı için softmax.
import torch.nn as nn
mlp = nn.Sequential(nn.Linear(128, 256), nn.GELU(), nn.Linear(256, 10))Not: PyTorch'ta nn.CrossEntropyLoss softmax'ı kendi içinde uygular. Modelin sonuna ayrıca softmax eklemek yaygın bir hatadır.
İlgili Derin Öğrenme soruları
- NumPy ile sayısal olarak kararlı (numerically stable) softmax ve cross-entropy loss yazın. Logit'lere göre gradyanı nedir?
- PyTorch ile bir sınıflandırma modeli için eksiksiz bir training loop yazın. Hangi adımlar sık unutulur?
- Transfer learning nedir? Önceden eğitilmiş bir modeli küçük bir veri setine nasıl fine-tune edersiniz?
- Embedding nedir? One-hot encoding'e göre avantajı nedir ve nerelerde kullanılır?
- Transformer mimarisini anlatın. Encoder-only, decoder-only ve encoder-decoder modeller arasındaki fark nedir?
- 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.
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.