AI Atlas
Orta· ~2 dk okuma#activation-function#relu#sigmoid

Aktivasyon Fonksiyonu

Activation Function

Bir nöronun girdilerinin ağırlıklı toplamını çıktıya dönüştüren doğrusal olmayan fonksiyon — sinir ağına 'düşünme' kapasitesini kazandırır.

AKTİVASYON FONKSİYONUReLUSigmoidTanhDoğrusal toplamı doğrusal olmayana çevirip ağa ifade gücü kazandırır.
Tanım

Bir sinir ağı sadece doğrusal katmanlardan oluşsa, yığılmış matris çarpımları sonunda yine tek bir doğrusal dönüşüme eşitti — yani derinlik anlamsızlaşırdı. Aktivasyon fonksiyonu, her nöronun çıktısına doğrusal olmayan bir dönüşüm uygular ve ağa karmaşık örüntüleri öğrenme kapasitesi kazandırır.

En çok kullanılan aktivasyonlar:

- ReLU (Rectified Linear Unit): max(0, x). Modern derin öğrenmenin standardı. Negatif girdiler 0 olur, pozitifler değişmez. Hızlı ve gradyan ölmesi azdır ama "ölü ReLU" problemi vardır (sürekli 0 çıktı veren nöronlar). - Leaky ReLU / GELU / SiLU: ReLU varyantları. Negatif tarafta küçük bir eğim bırakarak ölü nöron problemini hafifletir. GELU özellikle transformer'larda standart. - Sigmoid: 1 / (1+e^-x). Çıktı 0–1 arasında. Klasik ikili sınıflandırma çıkışında kullanılır ama gizli katmanlarda gradient vanishing sorunu yapar. - Tanh: [-1, 1] aralığında merkezi 0'da olan sigmoid benzeri. - Softmax: çok sınıflı sınıflandırma çıktısında — N sınıfa olasılık dağılımı verir.

Aktivasyon seçimi modelin öğrenme hızını ve son performansını belirgin etkiler. CNN'ler ve transformer'lar için ReLU/GELU, çıkış katmanı için soruna göre sigmoid/softmax/identity tercih edilir.

Benzetme

Bir kapı iğnesi gibi. Üzerine bir kuvvet uyguluyorsun; belirli bir eşiğin altındaysa hiçbir şey olmuyor (sıfır çıktı), eşiğin üstündeyse iğne hareket ediyor (kuvvete orantılı çıktı). ReLU tam olarak budur — eşiği 0 olan, sadece pozitif yönde tepki veren bir mekanik. Sigmoid ise yumuşak bir kapı; küçük dokunuşa hafif tepki, büyük kuvvette doyuma ulaşıp daha fazla açılmıyor.

Gerçek dünyadan örnek

Bir görüntü sınıflandırma CNN'i tasarlıyorsun. Üç gizli katmanın her biri konvolüsyon + aktivasyon + pooling şeklinde. Üç farklı aktivasyon dener, ImageNet alt kümesinde başarıyı kıyaslarsın:

| Aktivasyon | Doğruluk | Eğitim hızı | Notlar | |-----------|----------|-------------|--------| | Sigmoid | %71 | yavaş | derin katmanlarda gradient vanishing | | ReLU | %78 | hızlı | bazı nöronlar ölü kalıyor | | GELU | %79 | hızlı | smooth, transformer'lar tercih ediyor |

ReLU veya GELU seçimi gerçekten anlamlı fark yaratıyor. Çıkış katmanı 1000 sınıflı olduğu için softmax kullanılır; çıktı vektörü olasılık dağılımına dönüşür ve cross-entropy kaybı bu olasılıklarla gerçek etiketi kıyaslar.

Kod örnekleri
PyTorch · aktivasyon karşılaştırmasıPython
import torch
import torch.nn as nn

x = torch.linspace(-3, 3, 7)
print("Girdi:", x.tolist())

activations = {
    "ReLU":      nn.ReLU(),
    "LeakyReLU": nn.LeakyReLU(0.01),
    "GELU":      nn.GELU(),
    "Sigmoid":   nn.Sigmoid(),
    "Tanh":      nn.Tanh(),
}

for name, fn in activations.items():
    y = fn(x).tolist()
    print(f"{name:10s}: {[round(v, 3) for v in y]}")

# ReLU negatifleri 0'a kırpıyor
# GELU smooth, küçük negatif değerleri kısmen geçiriyor
# Sigmoid 0–1 arasına sıkıştırıyor
Sınıflandırma çıkışında softmaxPython
logits = torch.tensor([[2.0, 1.0, 0.1]])  # ham skorlar
probs = nn.functional.softmax(logits, dim=-1)
print(probs)  # tensor([[0.659, 0.242, 0.099]])
# Üç olasılık toplamı 1.0; çok sınıflı tahmin için tipik
Ne zaman kullan
  • Sinir ağı tasarlarken — her gizli katman aktivasyon ister
  • Gizli katmanlarda: ReLU, LeakyReLU, GELU, SiLU
  • Çıkış katmanında: ikili sınıflandırma için sigmoid, çok sınıflı için softmax, regresyon için identity
Ne zaman kullanma
  • Klasik ML algoritmaları (rastgele orman, SVM vb.) — aktivasyon kavramı yok
  • Çıkış katmanına yanlış aktivasyon koymak — örn. çok sınıflı için sigmoid
Sık yapılan hatalar

Ölü ReLU problemi

Bir nöronun girdisi sürekli negatif olursa, ReLU her zaman 0 verir, gradient 0, nöron öğrenmeyi durdurur. LeakyReLU veya GELU bu sorunu büyük ölçüde çözer.

Sigmoid'i derin ağda kullanmak

Sigmoid'in türevi en fazla 0.25; üst üste çarpınca gradyan 0'a yaklaşır (vanishing gradient). Gizli katmanlarda ReLU/GELU tercih edilir.

Yanlış çıkış aktivasyonu

Regresyonda sigmoid kullanırsan 0–1 arası sıkışırsın; çok sınıflıda sigmoid kullanırsan olasılıklar toplamı 1 olmaz. Soruna uygun çıkış katmanı seç.