Geri Yayılım: Yapay Sinir Ağı Eğitimi İçin Gradyan Hesaplaması

Geri yayılım, yapay sinir ağlarını eğitmek için temel algoritmadır. Kayıp fonksiyonunun ağın ağırlıklarına ve sapmalarına göre gradyanını verimli bir şekilde hesaplar ve tahmin hatalarını en aza indirmek için ağırlıkların iteratif olarak güncellenmesini sağlar.

Geriye doğru hata yayılımının kısaltması olan geri yayılım (backpropagation), yapay sinir ağlarının öğrenmesini sağlayan temel algoritmadır. Tanımlanmış bir kayıp fonksiyonunun, ağdaki her bir ağırlık ve sapmaya göre gradyanını hesaplar. Bu gradyan bilgisi daha sonra bir optimizasyon algoritmasına (örneğin, gradyan inişi) beslenerek ağın parametreleri sistematik olarak ayarlanır. Amaç, ağın tahminleri ile gerçek hedef değerler arasındaki tutarsızlığı en aza indirmektir. Süreç doğası gereği iki geçiş içerir: tahminleri üretmek için bir ileri geçiş ve hata sinyallerini yayarak gradyanları hesaplamak için bir geri geçiş.

Temel Adımlar:

  1. İleri Geçiş: Girdi verileri katman katman ağdan geçer. Her nöron, girdilerinin ağırlıklı toplamını uygular, bir sapma ekler ve çıktıyı üretmek için sonucu bir aktivasyon fonksiyonundan geçirir.
  2. Kayıp Hesaplaması: Bir kayıp fonksiyonu, ağın son çıktısı ile gerçek değer arasındaki hatayı ölçer.
  3. Geri Geçiş (Gradyan Hesaplaması): Çıktı katmanından başlayarak, hata geriye doğru yayılır. Kalkülüsün zincir kuralını kullanarak, algoritma her bir ağırlık ve sapmanın genel hataya ne kadar katkıda bulunduğunu (yani gradyanı) hesaplar.
  4. Parametre Güncelleme: Bir optimizasyon algoritması, bu hesaplanan gradyanları kullanarak ağırlıkları ve sapmaları ayarlar, onları kaybı azaltan bir yönde hareket ettirir.

Bu döngü tekrarlanır, böylece ağ içsel parametrelerini kademeli olarak iyileştirebilir ve tahmin doğruluğunu artırabilir.

        graph LR
  Center["Geri Yayılım: Yapay Sinir Ağı Eğitimi İçin Gradyan Hesaplaması"]:::main
  Pre_linear_algebra["linear-algebra"]:::pre --> Center
  click Pre_linear_algebra "/terms/linear-algebra"
  Rel_gradient_descent["gradient-descent"]:::related -.-> Center
  click Rel_gradient_descent "/terms/gradient-descent"
  Rel_deep_learning["deep-learning"]:::related -.-> Center
  click Rel_deep_learning "/terms/deep-learning"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 5 yaşındaki gibi açıkla

Bir sinir ağını eğitmek, bir öğrenciye zor bir konuyu öğretmek gibidir. Öğrenci bir soruyu cevaplamaya çalışır (ileri geçiş), bir puan alır (kayıp), ve siz ona kullandığı her kavramla ilgili olarak *nasıl* yanlış yaptığını ve ne kadar yanlış yaptığını tam olarak söylersiniz (geri geçiş). Sonra, bir dahaki sefere daha iyisini yapmak için bu kavramları anlayışını ayarlar (ağırlık güncellemesi). Geri yayılım, yapay zeka için bu hassas geri bildirim mekanizmasıdır ve kendi hatalarını düzelterek öğrenmesini sağlar.

🤓 Expert Deep Dive

Geri yayılım, bir veri kümesi $D = \{(x^{(i)}, y^{(i)})\}$ verildiğinde, bir sinir ağının parametreleri $\theta$(ağırlıklar $W$ ve sapmalar $b$) üzerindeki bir kayıp fonksiyonu $L$ nin gradyanı $
abla_{\theta} L(\theta; D)$ nı hesaplamak için verimli bir algoritmadır. Gradyan hesaplamasını katman katman gerçekleştirilen bir dizi yerel işlem dizisine ayırmak için kalkülüsün zincir kuralını kullanır. $a^{(l)}$ katman $l$ nin aktivasyon vektörünü ve $z^{(l)} = W^{(l)}a^{(l-1)} + b^{(l)}$ ön aktivasyon vektörünü temsil etsin. Katman $l$ nin çıktısı $a^{(l)} = f(z^{(l)})$ dir, burada $f$ aktivasyon fonksiyonudur. Kayıp $L$ tipik olarak son çıktı $a^{(L)}$ ve hedef $y$ nin bir fonksiyonudur. Geri geçiş, çıktı katmanından başlayarak her katman $l$ için bir hata terimi $\delta^{(l)}$ hesaplar. Çıktı katmanı $L$ için, $\delta^{(L)} = \frac{\partial L}{\partial a^{(L)}} \odot f'(z^{(L)})$ dir, burada $\odot$ öğe bazında çarpımı ve $f'$ aktivasyon fonksiyonunun türevini temsil eder. Gizli katmanlar $l < L$ için, hata terimi özyinelemeli olarak hesaplanır: $\delta^{(l)} = ((W^{(l+1)})^T \delta^{(l+1)}) \odot f'(z^{(l)})$。Katman $l$ nin parametrelerine göre kaybın gradyanları daha sonra $
abla_{W^{(l)}} L = \delta^{(l)} (a^{(l-1)})^T$ ve $
abla_{b^{(l)}} L = \delta^{(l)}$ olarak türetilir. Bu gradyanlar, $L$ yi en aza indirmek için $\theta$ yı güncelleyen Stokastik Gradyan İnişi (SGD) veya Adam gibi optimizasyon algoritmaları için temel girdilerdir.

🔗 İlgili terimler

Ön koşullar:

📚 Kaynaklar