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. kayıp olmak üzere, ve 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:
Burada girdi, ağırlık, bias, tahmin, hedef ve sigmoid fonksiyonudur.
Şunları alalım:
1. Adım: İleri geçiş
Önce nöronun ağırlıklı toplamını hesaplayın:
Şimdi sigmoidi uygulayın:
Şimdi kaybı hesaplayın:
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:
Sigmoid için,
Ağırlıklı toplam için de,
Şimdi parçaları zincirleyin:
Sayıları yerine koyun:
Negatif işaretler önemlidir. Burada veya değerini biraz artırmanın kaybı azaltacağını söylerler; bu da duruma uyar, çünkü mevcut tahmin çok düşüktür.
Öğrenme oranı olan gradyan inişini kullanırsanız,
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 yerine yapın. ve 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ç →