Sıfırdan Yapay Sinir Ağları — 1: Sinir Ağı Nedir?
Sinir ağları (Neural Networks — NN), insan beynindeki biyolojik nöronların yapısından ve işlevlerinden ilham alan hesaplama modelleridir. Beyin, milyarlarca nöronun birbiriyle bağlantılı çalışması sayesinde bilgiyi işler. Bu biyolojik mekanizma, yapay sinir ağlarının temelini oluşturur.
Bir yapay sinir ağı, düğümler veya yapay nöronlar olarak adlandırılan birimlerden oluşur. Bu nöronlar arasında, bağlantıların gücünü belirten ve öğrenme sürecinin temelini oluşturan ağırlıklar (weights) bulunur. Her yapay nöron, kendisine gelen girdilerin ağırlıkları ile çarpımını toplar, ardından bu toplamı bir aktivasyon fonksiyonu ile işler.
Sinir ağları şu alanlarda kullanılır:
- Görsellerde nesneleri tanımak (bilgisayarlı görü)
- Metinlerden anlam çıkarmak (doğal dil işleme)
- Veri kümelerini sınıflandırmak veya desenleri belirlemek

1. İleri Yayılım (Forward Propagation)
Sinir ağının girdileri işleyerek bir çıktı üretme sürecidir. Her katmanda şu adımlar gerçekleşir:
- Parametreleri başlatma: Ağırlıklar ve biaslar rastgele atanır.
- Girdileri işleme: Her girdi, bağlantıdaki ağırlıkla çarpılır.
- Bias eklenir: Ağırlıklı toplamların üzerine bias değeri eklenir.
- Aktivasyon fonksiyonu uygulanır: ReLU veya Sigmoid gibi fonksiyonlar doğrusal olmayan ilişkilerin öğrenilmesini sağlar.
Matematiksel formül: z = (w₁ × x₁) + (w₂ × x₂) + b, ardından y = f(z)
Örnek Hesaplama (Girdiler: x1=1, x2=2)
Gizli katman nöronları için ağırlıklar ve bias değerleri verildiğinde hesaplama şöyle yapılır:
![İleri yayılım diyagramı — girdi [1,2]](/_next/image?url=https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A700%2F0*7tYyk-23QRxCYHr-.png&w=3840&q=75)
- Z1 = (1 × 0.5) + (2 × -0.1) + 0.2 = 0.5
- Z2 = (1 × 0.3) + (2 × 0.6) + 0.3 = 1.8

Çıktı katmanı: y = (0.5 × -1.2) + (1.8 × 0.02) + 2.1 = 1.536

2. Geri Yayılım (Backward Propagation)
Yapılan hataları öğrenme ve parametreleri güncelleme sürecidir. Eğitim süreci boyunca model, tahminlerindeki hatayı ölçer ve bu hatayı azaltmak için ağırlıklarını günceller.
- Hata hesaplanır: Tahmin ile gerçek değer arasındaki fark, kayıp fonksiyonu (loss function) ile ölçülür.
- Gradyanlar hesaplanır: Zincir kuralı ve türevler kullanılarak her parametrenin hataya katkısı bulunur.
- Hata geriye yayılır: Gradyanlar ağ boyunca çıktıdan girdiye doğru yayılır.
3. Parametre Güncelleme
Her iterasyondan sonra ağırlıklar, hesaplanan gradyanlara ve öğrenme oranına (learning rate) göre güncellenir. Bu döngü, kayıp istenilen seviyeye düşene kadar tekrarlanır.
Parametre güncelleme formülü: w = w - η × ∂L/∂w
Burada η (eta) öğrenme oranını, ∂L/∂w ise kaybın o ağırlığa göre türevini ifade eder.
Loss Hesaplama — MSE (Mean Squared Error)
Regresyon problemlerinde sıkça kullanılan MSE, tahmin ile gerçek değer arasındaki farkın karesinin ortalamasını alır.
MSE = (1/N) × Σ(Hedef − Tahmin)²
Örneğimiz için: Hedef = 2, Tahmin = 1.536 → Fark² = 0.215 → MSE = 0.215
Python ile Sıfırdan Uygulama
Aşağıdaki kod, yukarıdaki hesaplamayı kütüphane kullanmadan saf Python ile gerçekleştirir.
Bu kodu çalıştırdığınızda şu çıktıyı alırsınız:
Çıktı: z1: 0.5, z2: 1.8, Tahmin: 1.536, MSE: 0.215296
Sonuç
Bu yazıda sinir ağlarının temel yapısını, ileri yayılım sürecini ve MSE loss hesaplamayı sıfırdan uyguladık. Serinin bir sonraki bölümünde geri yayılımı ve gradyan inişini (gradient descent) PyTorch ile birlikte ele alacağız.