Geri yayılım, sinir ağlarının gradyanları hesaplamak için kullandığı yöntemdir: her bir ağırlığı veya bias'ı biraz değiştirirseniz kaybın ne kadar değişeceğini bulur. Basitçe söylemek gerekirse, modele hangi parametrelerin tahmini yanlış yöne ittiğini ve bunu ne kadar yaptığını söyler.

Kısa hali basittir: ağı ileri yönde çalıştırın, hatayı ölçün, sonra aynı hesaplamanın içinde zincir kuralıyla geriye doğru ilerleyin. Bu, derin bir modeli yönetilebilir hale getirir; çünkü her katmanın yalnızca küçük bir yerel türeve katkı vermesi gerekir.

Geri yayılım neyi hesaplar

Geri yayılım tek başına parametreleri güncellemez. LL kayıp olmak üzere, Lw\frac{\partial L}{\partial w} ve Lb\frac{\partial L}{\partial b} gibi gradyanları hesaplar. Gradyan inişi gibi bir optimizer, gerçek güncellemeyi yapmak için bu gradyanları kullanır.

Model ve kayıp türevlenebilirse ya da en azından gradyan yöntemleri için yeterince parçalı türevlenebilirse, geri yayılım bu gradyanları tek bir geri geçişte verimli biçimde hesaplamanızı sağlar.

Neden temel fikir zincir kuralıdır

Bir sinir ağını uzun bir hesaplama zinciri gibi düşünün. Her katman bir girdi alır, onu dönüştürür ve sonucu bir sonraki katmana verir. Kayıp değerine ulaştığınızda, son hata daha önceki her seçime bağlıdır.

Geri yayılım her adımda yerel bir soru sorar: bu ara değer biraz değişseydi, son kayıp nasıl değişirdi? Geriye doğru giderken bu yerel etkiler birbiriyle çarpılır. Düz bir dille anlatılan zincir kuralı tam olarak budur.

Tek nöronla geri yayılım örneği

Tek girdili bir nöron kullanalım:

z=wx+bz = wx + b a=σ(z)a = \sigma(z) L=12(ay)2L = \frac{1}{2}(a - y)^2

Burada xx girdi, ww ağırlık, bb bias, aa tahmin, yy hedef ve σ\sigma sigmoid fonksiyonudur.

Şunları alalım:

x=2,w=0.5,b=0,y=1.x = 2, \qquad w = 0.5, \qquad b = 0, \qquad y = 1.

1. Adım: İleri geçiş

Önce nöronun ağırlıklı toplamını hesaplayın:

z=wx+b=0.52+0=1.z = wx + b = 0.5 \cdot 2 + 0 = 1.

Şimdi sigmoidi uygulayın:

a=σ(1)0.731.a = \sigma(1) \approx 0.731.

Şimdi kaybı hesaplayın:

L=12(0.7311)20.036.L = \frac{1}{2}(0.731 - 1)^2 \approx 0.036.

Tahmin hedeften düşük olduğu için kayıp pozitiftir.

2. Adım: Geri geçiş

Şimdi ağırlığa göre gradyanı hesaplayın.

Kayıptan başlayıp içeri doğru ilerleyin:

La=ay.\frac{\partial L}{\partial a} = a - y.

Sigmoid için,

az=a(1a).\frac{\partial a}{\partial z} = a(1-a).

Ağırlıklı toplam için de,

zw=x,zb=1.\frac{\partial z}{\partial w} = x, \qquad \frac{\partial z}{\partial b} = 1.

Şimdi parçaları zincirleyin:

Lw=Laazzw=(ay)a(1a)x.\frac{\partial L}{\partial w} = \frac{\partial L}{\partial a} \cdot \frac{\partial a}{\partial z} \cdot \frac{\partial z}{\partial w} = (a-y)a(1-a)x. Lb=Laazzb=(ay)a(1a).\frac{\partial L}{\partial b} = \frac{\partial L}{\partial a} \cdot \frac{\partial a}{\partial z} \cdot \frac{\partial z}{\partial b} = (a-y)a(1-a).

Sayıları yerine koyun:

Lb(0.7311)(0.731)(10.731)0.0529\frac{\partial L}{\partial b} \approx (0.731 - 1)(0.731)(1 - 0.731) \approx -0.0529 Lw(0.0529)(2)0.1058.\frac{\partial L}{\partial w} \approx (-0.0529)(2) \approx -0.1058.

Negatif işaretler önemlidir. Burada ww veya bb değerini biraz artırmanın kaybı azaltacağını söylerler; bu da duruma uyar, çünkü mevcut tahmin çok düşüktür.

Öğrenme oranı η=0.1\eta = 0.1 olan gradyan inişini kullanırsanız,

wnew=wηLw=0.50.1(0.1058)0.5106w_{\text{new}} = w - \eta \frac{\partial L}{\partial w} = 0.5 - 0.1(-0.1058) \approx 0.5106 bnew=bηLb=00.1(0.0529)0.0053.b_{\text{new}} = b - \eta \frac{\partial L}{\partial b} = 0 - 0.1(-0.0529) \approx 0.0053.

Küçük ölçekte bütün fikir budur: ileri geçiş, kayıp, geri geçiş, güncelleme.

Geri yayılım neden derin ağlarda işe yarar

Daha derin bir ağda da aynı şeyi katman katman yaparsınız. Temel fark, her gizli katmanın kaybı sonraki katmanlar üzerinden dolaylı olarak etkilemesidir; bu yüzden onun gradyanı daha fazla zincir kuralı çarpanı içerir.

Geri yayılım pratik kalır; çünkü her katmanın yalnızca kendi yerel türevine ve kendisinden sonraki katmandan gelen sinyale ihtiyacı vardır. Her parametre için tüm ağı baştan türetmeniz gerekmez.

Geri yayılımda yaygın hatalar

Geri yayılımı gradyan inişiyle karıştırmak

Geri yayılım gradyanları hesaplar. Gradyan inişi bu gradyanları kullanarak parametreleri günceller. Birbirleriyle yakından ilişkilidirler, ama aynı adım değildirler.

Kayıbın sonda olduğunu unutmak

Geri geçiş kayıptan başlar, rastgele bir gizli katmandan değil. Kayıbın neye bağlı olduğunu gözden kaçırırsanız, türev zinciri genellikle kopar.

Aktivasyon davranışını göz ardı etmek

Bazı aktivasyon fonksiyonları bazı bölgelerde çok küçük gradyanlar üretir. Bu durum birçok katmanda tekrar tekrar olursa, öğrenme yavaşlayabilir.

Tek bir geri geçişin modelin öğrendiği anlamına geldiğini sanmak

Tek bir geri geçiş, tek bir batch için tek bir gradyan kümesi verir. Eğitim genellikle birçok örnek üzerinde çok sayıda güncelleme gerektirir.

Geri yayılım ne zaman kullanılır

Geri yayılım, çok katmanlı algılayıcılar, evrişimli ağlar, yinelemeli modeller ve transformer'lar dahil olmak üzere birçok sinir ağını eğitmek için kullanılan standart gradyan hesaplama yöntemidir.

Kullanılan optimizer değişebilir ve bazı mimariler pratik hileler ekleyebilir, ama temel fikir genellikle aynıdır: kaybı hesapla, gradyanları geriye doğru yay ve gelecekteki hatayı azaltmak için parametreleri güncelle.

Bunu hatırlamanın pratik bir yolu

Geri yayılım, katmanlı bir modelin içinde katkıyı ve sorumluluğu paylaştırmanın düzenli bir yoludur. Çıktı yanlışsa, yöntem bu hatayı geriye doğru izler; böylece her parametre, ne kadar katkı yaptığını gösteren bir sinyal alır.

Bu yüzden "sinir ağları nasıl öğrenir" ifadesi büyük ölçüde doğrudur. Öğrenme, parametrelerin tekrar tekrar güncellenmesiyle gerçekleşir ve geri yayılım bu güncellemeleri rastgele değil, bilgiye dayalı hale getirir.

Benzer bir soru deneyin

Aynı örneği koruyun, ama hedefi y=1y = 1 yerine y=0y = 0 yapın. Lw\frac{\partial L}{\partial w} ve Lb\frac{\partial L}{\partial b} değerlerini yeniden hesaplayın, sonra işaretlerin nasıl değiştiğini kontrol edin. Bu tek değişiklik, yalnızca formülleri ezberlemekten daha iyi biçimde kaybın rolünü netleştirir.

Bir soruyla yardıma mı ihtiyacın var?

Sorunuzu yükleyin ve saniyeler içinde doğrulanmış adım adım çözüm alın.

GPAI Solver Aç →