01Bir nöron: tartı, bias, bükülme#
Eğitim yazısında doğrunun eğimi ile sabiti gibi birkaç sayıyı ayarlayarak öğrenmeyi gördün. Bir sinir ağı, bu basit modellerden çok sayıda alıp birbirine bağlar. Yapı taşı, yapay nörondur ve yaptığı iş üç adımdır:
- Her girdiyi kendi ağırlığıyla çarp.
- Sonuçları topla ve bir bias ekle.
- Çıkan z değerini bir aktivasyon fonksiyonundan geçir.
Biyolojik nörondan esinlenmiş bir ad olsa da bu, beynin ayrıntılı bir modeli değildir; basit bir sayısal işlemdir. Aşağıda iki girdili tek bir nöronu kendin ayarla.
Tek bir yapay nöron
Girdileri ve ağırlıkları değiştir: önce ağırlıklı toplam, sonra aktivasyon çıktıyı belirler.
z = 0.8×1.0 + −0.6×0.5 + 0.2 = 0.70Toplam sıfırın üstünde: ReLU değeri olduğu gibi iletiyor. Eğri sıfırda bükülüyor; ağların doğrusal olmayan davranışı buradan gelir.
Hesabı gör
z = w₁x₁ + w₂x₂ + b. ReLU(z) = max(0, z). Sigmoid(z) = 1 / (1 + e^(−z)). Doğrusal aktivasyonda çıktı z’nin kendisidir. Ağırlıklar ve bias eğitimde ayarlanan parametrelerdir; burada elle seçilir.
ReLU’yu seç ve bias’ı ya da bir ağırlığı toplam sıfırın altına inene kadar azalt: nöron sinyal iletmeyi bırakıyor. Sigmoid’e geç ve toplamı çok büyütmeye çalış: çıktı 1’e yaklaşıp düzleşiyor. Her aktivasyon, aynı toplamı farklı bir biçimde “bükerek” iletir.
02Neden bükülme gerekiyor?#
Aktivasyon fonksiyonu olmasaydı ne olurdu? Doğrusal bir katmanın çıktısı W₁x, ikinci doğrusal katmanın çıktısı W₂(W₁x) olur. Matris çarpımı birleşme özelliği taşıdığı için bu, (W₂W₁)x’e eşittir: iki katman, tek bir doğrusal katmandan ayırt edilemez. Araya kaç katman koyarsan koy, doğrusal bir ağ yine doğrusal kalır.
Doğrusal olmayan bir aktivasyon, bu zinciri kırar. Katmanlar arasına ReLU gibi basit bir bükülme koyduğunda ağ, düz bir çizgiyle ifade edilemeyen ilişkileri temsil edebilir. Modern dil modellerinin “derinliği”, bu bükülmelerin ve attention gibi mekanizmaların üst üste binmesinden gelir.
03Gizli katman ne işe yarar?#
Nöronları katmanlar hâlinde dizersen elde ettiğin yapıya ileri beslemeli sinir ağı (çok katmanlı perceptron) denir. Girdi katmanı veriyi alır, gizli katmanlar ara temsiller üretir, çıkış katmanı sonucu verir. “Gizli”, bu katmanların değerlerinin doğrudan girdi veya çıktı olmamasından gelir.
Ara temsilin neden önemli olduğunu klasik bir örnekle görelim: XOR, “iki girdi birbirinden farklı mı?” sorusudur. Tek bir nöron, tek bir eşikle dört durumu ayıramaz; 1969’da Minsky ve Papert’in tek katman için gösterdiği sınır budur. Ama iki gizli nöronlu küçük bir ağ, ara değerler üreterek çözer.
İki katmanlı küçük bir ağ
Dört girdi çiftinden birini seç. Ağ, çıktıda “iki girdi birbirinden farklı mı?” sorusunu (XOR) yanıtlar.
İki girdi de 1: ikinci gizli nöron da etkinleşiyor ve −2 ağırlığıyla birinci nöronun sinyalini tam dengeleyerek çıktıyı 0 yapıyor. Tek bir nöron, tek bir eşikle bu dört durumu ayıramaz; gizli katman sorunu çözmek için ara temsil üretir.
Dört durumun hepsini gör
| x₁ | x₂ | h₁ | h₂ | Çıktı |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 | 1 |
| 1 | 0 | 1 | 0 | 1 |
| 1 | 1 | 2 | 1 | 0 |
h₁ = ReLU(x₁ + x₂), h₂ = ReLU(x₁ + x₂ − 1), çıktı = h₁ − 2·h₂.
Gördüğün ağırlıkları biz elle seçtik; amaç, gizli katmanın sorunu yeniden ifade ettiğini göstermek. Gerçek ağlarda bu ağırlıkları eğitim bulur. Kuramsal olarak yeterince geniş tek gizli katmanlı bir ağ, geniş bir fonksiyon sınıfını yaklaşık olarak temsil edebilir (evrensel yaklaşım sonucu). Bu, o fonksiyonun eğitimle bulunabileceğini ya da verimli olacağını söylemez. Çok katmanlı perceptron ↗
04Ağırlıklar nasıl öğrenilir?#
Eğitim yazısındaki gradyan inişi burada da aynı: kaybı hesapla, her parametreyi kaybı azaltacak yönde küçük bir adım ilerlet. Fark, parametre sayısı. İki girdili, üç gizli nöronlu, tek çıkışlı bir ağda 9 + 4 = 13 parametre vardır (ilk katmanda 6 ağırlık ve 3 bias, ikinci katmanda 3 ağırlık ve 1 bias). Büyük dil modellerinde bu sayı yüz milyarları bulur; GPT-3’te 175 milyar.
Her parametre için kaybın türevini ayrı ayrı hesaplamak çok pahalı olurdu. Geri yayılım (backpropagation), türevlerin zincir kuralıyla çıktıdan girdiye doğru tek bir geri geçişte hesaplanmasıdır. Küçük bir örnek: tek gizli nöronlu bir ağın çıktısı ŷ = w₂·ReLU(w₁x) ise, ilk ağırlığın kayba etkisi dört çarpanın çarpımıdır: kaybın çıktıya göre türevi, w₂, ReLU’nun o noktadaki eğimi ve x. Hesabı ileri geçişte sakladığın ara değerler üzerinden yaparsın; bu yüzden eğitim, yalnızca çıkarımdan daha çok bellek ister. Zincirin her halkasını görmek için Geri yayılım yazısına geç.
Geri yayılımın kökleri 1986’dan öncesine uzanır; Rumelhart, Hinton ve Williams’ın makalesi onu çok katmanlı ağlar için yaygınlaştırdı. Ayrıntılı türetim için d2l.ai’nin anlatımına bakabilirsin.
Şimdi gradyanların ağın içinde nasıl dağıldığına yakından bak: Geri yayılım: hata ağın içinde nasıl dağıtılır?
Bu yazıyı bitirdiğinde:
- Bir nöronun ağırlıklı toplam, bias ve etkinleştirme olarak ne yaptığını anlatabilirsin.
- Doğrusal olmayan etkinleştirmenin neden gerekli olduğunu açıklayabilirsin.
- Gizli katmanın ne işe yaradığını XOR örneğiyle ve ağırlıkların nasıl öğrenildiğini özetleyebilirsin.
Cümlelerden birini kendi sözlerinle anlatamıyorsan, ilgili bölüme dön ve demoyu yeniden dene.
Geri yayılım: hata ağın içinde nasıl dağıtılır?
Orta · 10 dk okuma