Sinir Ağı
Neural Network
İnsan beynindeki nöron bağlantılarından esinlenen, katmanlı matematiksel öğrenme yapısı.
Bir sinir ağı; girdi katmanı, bir veya daha çok gizli katman ve çıktı katmanından oluşur. Her bağlantının bir ağırlığı vardır. Eğitim sırasında bu ağırlıklar, hata azalacak şekilde sürekli ayarlanır (backpropagation algoritması ile).
Birden fazla gizli katmanı olan sinir ağına derin sinir ağı denir. Modern AI'nın temeli budur: CNN'ler görseli, RNN/Transformer'lar metni, GAN/Diffusion modelleri yaratımı bu temele oturur.
Ağın "öğrendiği" şey aslında milyonlarca sayı (ağırlık). Bir 7B LLM = 7 milyar ayarlanmış sayı. Bu sayılar manuel okunamaz ama birlikte çalışınca dil üretebilirler.
Mutfaktaki bir sürü musluğu düşün. Her birini biraz açıp kapatarak sıcaklığı ayarlamaya çalışıyorsun. Sıcak su gelene kadar musluk açılarını sürekli güncelliyorsun. Bir sinir ağında "musluklar" = ağırlıklar, "sıcaklık" = doğru cevap. 7 milyar musluğu eş zamanlı ayarlamak zor görünüyor — gradient descent tam olarak bunu yapar.
El yazısı rakam tanıma (klasik MNIST örneği): 28×28 piksel görsel, 784 girdi nöronu. Sonra 128 nöronlu gizli katman. Sonra 10 çıktı nöronu (0-9 rakamları). Bu küçük ağ ~100K ağırlık ile %98 doğrulukla rakamları tanır.
Aynı yapının büyük versiyonu: GPT-4 ~1.8 trilyon ağırlık. Aynı matematik, sadece çok daha çok katman ve bağlantı.
- Karmaşık, doğrusal olmayan örüntüler (görsel, ses, dil)
- Bol veri varsa — sinir ağları büyük veri setlerinde parlar
- Özellik mühendisliği (feature engineering) yapamadığın ham veri — ağ özellikleri kendi çıkarır
- Aktarım öğrenmesi (transfer learning) gerektiğinde — önceden eğitilmiş ağa ince ayar yapabilirsin
- Az veri varsa — aşırı öğrenme riski yüksek, klasik ML daha iyi
- Sütunlu küçük veri (Excel boyutlarında) — XGBoost genelde sinir ağını yener
- Hesap kaynağın sınırlıysa — sinir ağları GPU yer
- Tam açıklanabilirlik gerekiyorsa — ağ bir kara kutudur
Yok olan / patlayan gradyan
Çok derin ağda gradyan ya yok olur (öğrenme durur) ya da patlar (sayılar sonsuza gider). ResNet, parti normalleştirme (batch norm) ve doğru başlatma (initialization) bu sorunu çözmek için vardır.
Yanlış aktivasyon fonksiyonu
ReLU bugünün standardı ama her zaman doğru seçim değil. Çıktı katmanında sigmoid (ikili sınıflandırma), softmax (çok sınıflı), doğrusal (regresyon) seçimi kritiktir.
Sihirli sayı gibi hiperparametreler
Öğrenme oranı (learning rate), parti boyu (batch size), katman sayısı — hepsi deneme-yanılma. 'Varsayılan değerler hep çalışır' beklemek yanılgıdır; her veri seti farklı.