Geri yayılım: sinir ağı hatasından ağırlıklarını nasıl öğrenir
Sözlük

Geri yayılım: sinir ağı hatasından ağırlıklarını nasıl öğrenir

Hazırlayan: Mindset Institute EditörlüğüGüncellendi: 3 dk okuma

Geri yayılım, ağın çıkışındaki hatanın her ağırlığa ne kadar sorumlu olduğunu zincir kuralıyla hesaplayan yöntemdir. Bulunan sorumluluklar, ağırlıkları hatayı azaltacak yönde güncellemek için kullanılır.

Bir bakışta

  1. Önce ileri, sonra geri gidilir. İleri geçişte tahmin ve hata hesaplanır, geri geçişte hatanın ağırlıklara payı bulunur.
  2. Zincir kuralı işin matematiğidir. Hatanın bir ağırlığa göre türevi, aradaki katmanların türevlerinin çarpımıyla elde edilir.
  3. Geri yayılım ağırlıkları kendisi güncellemez. Gradyanları hesaplar; ağırlıkları gradyan inişi gibi bir eniyileyici günceller.
  4. Derin ağlarda gradyan kaybolabilir. Çok katmandan geri dönerken gradyanlar küçüldüğünde ilk katmanlar öğrenemez.

Geri yayılım nedir?

Geri yayılım (backpropagation), çok katmanlı bir sinir ağının eğitiminde hatanın ağırlıklara nasıl dağıtılacağını bulan algoritmadır. Ağ bir girdiye yanlış bir tahmin verdiğinde, kayıp fonksiyonu bu yanlışı bir sayıya çevirir. Geri yayılım ise şu soruya yanıt arar: bu hatayı büyüten ya da küçülten her ağırlığın payı nedir?

Cevap, hatanın her ağırlığa göre türevidir, yani gradyandır. Milyonlarca ağırlığa sahip bir ağda bunları tek tek hesaplamak çok pahalı olurdu. Geri yayılım, hesapları çıkıştan girişe doğru yeniden kullanarak tüm gradyanları tek bir geri geçişte, verimli biçimde üretir.

Şekil 1

Eğitim, ileri ve geri geçişin tekrarıdır

  1. İleri geçişGirdi katmanlardan geçer, ağ bir tahmin üretir.
  2. Kayıp hesabıTahmin gerçek değerle karşılaştırılır, hata tek sayıya iner.
  3. Geri geçişHata çıkıştan girişe taşınır, her ağırlığın gradyanı bulunur.
  4. Ağırlık güncellemeAğırlıklar hatayı azaltacak yönde küçük bir adım atar.
Kaynak: Kaynak: sayfa içeriğiMindset Institute

Zincir kuralı: matematiğin özeti

Bir sinir ağı iç içe fonksiyonlardan oluşur: bir katmanın çıkışı sonraki katmana girer, o da bir sonrakine. Çıkış hatasının ilk katmandaki bir ağırlığa göre türevini almak için, aradaki her katmanın kendi türevi sırayla çarpılır. Zincir kuralı tam olarak budur.

Geri yayılım bu çarpımları akıllıca düzenler: her katman kendinden sonraki katmanın hata sinyalini alır, kendi yerel türeviyle çarpar ve sonucu bir önceki katmana iletir. Böylece aynı ara hesaplar tekrar tekrar yapılmaz. Bu yüzden ileri geçişte katmanların ara çıktıları saklanır; geri geçişte gradyan hesabı bunlara ihtiyaç duyar.

Küçük bir örnek: tek nöronlu bir ağ

Bir nöron düşünün: girdiyi bir ağırlıkla çarpıyor, bir aktivasyon fonksiyonundan geçiriyor ve bir tahmin üretiyor. Tahmin gerçek değerden büyükse hata pozitiftir. Geri yayılım şu çarpımı kurar: hatanın tahmine göre türevi, aktivasyon fonksiyonunun türevi ve girdinin kendisi. Sonuç, bu ağırlığın hatayı ne yönde ve ne kadar etkilediğidir.

Ağırlık, bu gradyanın ters yönünde ve öğrenme oranıyla ölçeklenmiş küçük bir miktar kadar değiştirilir. Aynı mantık çok katmanlı ağda katman katman uygulanır. Nöron girdiyi hiç etkilemiyorsa, yani girdisi sıfırsa, o ağırlığın gradyanı da sıfır çıkar; ağırlık o örnekte güncellenmez.

Geri yayılım ile gradyan inişi arasındaki fark

İki kavram sık karıştırılır. Geri yayılım bir gradyan hesaplama yöntemidir: ağırlıkların gradyanlarını verimli biçimde bulur. Gradyan inişi ise bir eniyileme yöntemidir: elde edilen gradyanı kullanıp ağırlıkları günceller. Eğitimde ikisi birlikte çalışır; biri yön bilgisini üretir, diğeri o yönde adım atar.

Şekil 2

Biri gradyanı bulur, diğeri o gradyanla adım atar

Geri yayılımGradyan inişi
GöreviGradyanı hesaplamakAğırlıkları güncellemek
GirdisiHata ve ağın ara çıktılarıGradyan ve öğrenme oranı
ÇıktısıHer ağırlığın gradyanıYeni ağırlık değerleri
Başka eniyileyicilerHepsinde aynı gradyanı verirMomentum, Adam gibi türevleri vardır
Kaynak: Kaynak: sayfa içeriğiMindset Institute

Sık karşılaşılan sorunlar

Gradyan kaybolması en bilinen sorundur: sigmoid gibi doyuran aktivasyonlar türevlerin küçük kalmasına yol açar ve çok katmanlı ağda geri dönerken gradyan sıfıra yaklaşır. Bu durumda ilk katmanlar neredeyse hiç öğrenmez. ReLU benzeri aktivasyonlar, uygun ağırlık başlangıcı ve artık bağlantılar (residual connections) bu sorunu hafifletir.

Tersi de görülür: gradyanlar büyüyerek patlayabilir ve eğitim kararsızlaşır; gradyan kırpma bu durumda kullanılır. Bir diğer pratik hata, eğitim kodunda ileri geçişin kendi türevini yanlış yazmaktır. Bu yüzden çerçeveler otomatik türev alma (autograd) sunar ve geliştiriciler çoğunlukla geri yayılımı elle yazmaz.

Mindset programlarında geri yayılım

Veri Bilimci Programı'nın (Yapay Zeka Odaklı) derin öğrenme modülleri ile Makine Öğrenmesi (Uygulamalı) Programı'nın yapay sinir ağlarına giriş modülü, geri yayılımın kodla izlenmesi için uygun bir zemindir. Sinir ağı eğitimi hatalarını teşhis etmek isteyen analistler ve mühendisler için temel bir kavramdır.

İlgili Mindset programı

Veri Bilimci Programı (Yapay Zeka Odaklı)

Sık sorulanlar

Sık sorulan sorular

Geri yayılım ile gradyan inişi aynı şey mi?

Hayır. Geri yayılım, hatanın her ağırlığa göre gradyanını verimli biçimde hesaplar. Gradyan inişi ise bu gradyanı kullanarak ağırlıkları günceller. Eğitimde birlikte çalışırlar, ama farklı görevleri vardır ve gradyan inişi yerine başka eniyileyiciler de kullanılabilir.

Geri yayılımı elle kodlamam gerekir mi?

Pratikte hayır. PyTorch ve TensorFlow gibi çerçeveler otomatik türev alma sunar; ileri geçişi yazmanız yeterlidir. Yine de mantığı bilmek, kayıp düşmüyorsa ya da gradyan kayboluyorsa sorunun nerede olduğunu anlamak için değerlidir.

Geri yayılım neden çıkıştan girişe doğru çalışır?

Çünkü hata çıkışta ölçülür ve zincir kuralı gereği her katmanın gradyanı kendinden sonraki katmanın gradyanına bağlıdır. Sondan başlamak, ortak hesapları yeniden kullanmayı mümkün kılar; böylece tüm ağırlıkların gradyanı tek geri geçişte bulunur.

Her model türü geri yayılımla mı eğitilir?

Hayır. Geri yayılım, türevlenebilir parametreleri olan modeller için kullanılır; sinir ağlarının dışında karar ağaçları gibi yöntemler farklı yollarla öğrenir. Derin öğrenmedeki modellerin neredeyse tamamı ise bu yöntemle eğitilir.