Sinir Ağları
Birim, ReLU, katman yığını ve XOR.
Mimari kodun sık kullanılan bir şekli: sayıları çarp, bir eşik uygula, çıktıyı tekrar çarp. Buna sinir ağı denir. İsim biyolojiden kalmadır; beyin hücresi kopyası veya ayrı bir işlemci değildir. Hâlâ for döngüsü ve ağırlık dizisidir. Tek bir çarpma (bir doğru) yetmeyince bu tarifi katman katman istifleriz.
Bir birim
z = w · x + b, h = φ(z). φ olmasa h = W₂(W₁ x) = (W₂ W₁)x: iki katman tek katmana çöker. Doğrusallık yığılmaz; φ yığılır.
ReLU φ(z) = max(0, z). Türev: z > 0 ise 1, z < 0 ise 0, 0’da genellikle 0 veya 1 seçilir. Pozitif yarıda gradyan ölçeklenmez (sigmoid’deki σ(1−σ) yok). Negatif yarıda birim ölür: o örnekte w güncellenmez. Çok birim ölürse ölü ReLU; küçük b veya daha düşük η bazen kurtarır.
Sigmoid (0,1)’e ezer; çıktı katmanında olasılık için kalır, derin gizli katmanda uçlarda gradyanı boğar. Tanh (-1,1), sıfır merkezli; aynı uç sorunu var. GELU / SiLU Transformer MLP’lerinde yaygındır; ReLU’nun keskin köşesi yerine pürüzsüz bir geçit.
function relu(z: number): number {
return Math.max(0, z);
}
function dense(x: number[], W: number[][], b: number[]): number[] {
return W.map((row, i) => relu(row.reduce((sum, wij, j) => sum + wij * x[j], 0) + b[i]));
}
Katman, derinlik, genişlik
Bir katman, aynı x’i paylaşan birimlerin vektörüdür: h = φ(Wx + b). W m × d ise genişlik m’dir. MLP, h^{(ℓ+1)} = φ(W^{(ℓ)} h^{(ℓ)} + b^{(ℓ)}) zinciri, sonda çoğu zaman φ’siz skor.
Derinlik = affine+φ sayısı. Evrensel yaklaşım: yeterince geniş tek gizli katman, sürekli fonksiyonları yaklaşır — pratikte derinlik, hiyerarşik temsil ve hesap için kullanılır. Kapasite θ sayısıyla artar; genelleme artmaz.
İleri geçiş, her katmanda z ve h üretir. Geri yayılım (sonraki yazı) bu ara değerleri ister: φ'(z) için z saklanır.
XOR’u ayırmak
Girdi (x₁, x₂) ∈ {0,1}². Hedef XOR. İki gizli ReLU birimi, örneğin:
h₁ = ReLU(x₁ + x₂ − 1.5)→ yalnızca(1,1)’de 0.5, diğerinde 0. Amaç “ikisi de 1”.h₂ = ReLU(x₁ + x₂)→ toplam.
Daha temiz bir geometri: h₁ = ReLU(x₁ − x₂), h₂ = ReLU(x₂ − x₁). (1,0) → (1, 0), (0,1) → (0, 1), (0,0) ve (1,1) → (0, 0). Sınıf 1 noktaları artık eksen üzerindedir; sınıf 0 orijindedir. Çıktı birimi h₁ + h₂ ile XOR’u doğrusal ayırır. Ağ, bu W’leri kayıptan öğrenmek zorundadır; yukarıdaki sayılar var olan bir çözümdür, tek çözüm değil.
Aynı omurga, farklı topoloji
Konvolüsyon: aynı küçük W görüntüde kayar; konum paylaşımı, parametre sayısı K×K×kanallar mertebesindedir, piksel piksel dense değil. Tekrarlayan ağ: h_t = φ(W_h h_{t−1} + W_x x_t); dizi boyu kadar derinlik, gradyan zaman boyunca çarpılır. Transformer: her konum diğerine dikkatle bakar; topoloji tam bağlıdır, ağırlıklar Q/K/V matrisleridir.
“Kedi nöronu” folklordur. Bir birim bazen bir kavrama tepki verir; çoğu zaman dağılmış koddur. Yorum, ayrı bir iddiadır.
Alıştırma
XOR için tek katman ŷ = σ(w₁ x₁ + w₂ x₂ + b) ile dört noktayı doğru etiketleyecek w, b bulunamayacağını varsayalım (bulursanız tabloda hangi satır kırılır?). Sonra h₁ = ReLU(x₁ − x₂), h₂ = ReLU(x₂ − x₁) ara temsillerini dört girdi için yazıp çıktı katmanının işinin neden kolaylaştığını söyleyin.