Backpropagation'da tüm başlangıç ​​ağırlıklarını sıfıra ayarlama tehlikesi


30

Ağırlıkları sıfırlarla başlatmak neden tehlikelidir? Bunu gösteren basit bir örnek var mı?


Klasik XOR 2-1 net'in iyi bir örnek olduğu görülüyor, ancak bazı teorik akıl yürütmeleri takdir ediyorum.
user8078

1
Burada uygulanabilecek veya uygulanmayacak oldukça genel bir cevap, yeni ağırlıklar eski ağırlıkların katları olduğunda sıfır ağırlığın değiştirilemeyeceğidir. Öğrenmek ölümcül.
Nick Cox

Ağırlıkları sıfıra neden sıfırlamadığına dair zaten iyi cevaplar var. Aşağıdaki bağlantı 'ilk ağırlıklar nasıl seçilmeli?' Konusuna biraz daha ışık tutuyor. staff.itee.uq.edu.au/janetw/cmc/chapters/BackProp/index2.html Diğer okuyuculara yardımcı olacağını umuyoruz.
doer_uvc

@NickCox buradaki ağırlıklar bir sonraki ağırlık katmanının katlarıdır ve son katman diğer ağırlıkların bir katı değildir - bu nedenle bu geçerli değildir.
David Refaeli

Yanıtlar:


21

değiştir alfa adlı kullanıcının yorumuna bakınız. Sinir ağları konusunda uzman değilim, bu yüzden onu erteleyeceğim.

Benim anlayışım burada yayınlanan diğer cevaplardan farklı.

Geri yayılımın, mevcut ağırlıklara katlamayı değil, katmayı içerdiğinden eminim . Eklediğiniz miktar delta kuralına göre belirlenir . Wij'in denklemin sağ tarafında görünmediğine dikkat edin.

Anladığım kadarıyla ilk ağırlıkları sıfıra ayarlamamak için en az iki iyi neden var:

  • Birincisi, sinir ağları yerel minimumda sıkışıp kalmaya meyillidir, bu nedenle onlara birçok farklı başlangıç ​​değeri vermek iyi bir fikirdir. Hepsi sıfırdan başlarsa bunu yapamazsınız.

  • İkincisi, eğer nöronlar aynı ağırlıklarla başlarlarsa, o zaman tüm nöronlar aynı gradyanı izleyecek ve daima aynı şeyi yapacaktır.


6
"Ekleyeceğiniz miktar delta kuralına göre belirlenir. Wij'in denklemin sağ tarafında görünmediğini unutmayın." - Bu sadece gizli katmanları olmayan sinir ağları için geçerlidir ! Fakat iki başka noktadan bahsettiniz, ki bu bir YSA'nın eşit ağırlığa sahip olmasına karşı iyi argümanlar .
alfa

1
Öncelikle ikinci nedenin bence - örneğin, her katman aynı ağırlıklarla başlatılmışsa, o zaman önerdiğiniz gibi, tüm düğümler aynı yolu izliyor ve fazlalık yapıyorlarsa, temel olarak tamamen bağlı, ileri beslemeli bir ağda. Benim izlenimim, avuçtan daha fazla özellik içeren ağların çoğunun yerel minima ile mücadele etmeyeceği yönünde. Ayrıca, rastgele başlatma tek başına ağın sıkışmasını engellemez, ancak art arda farklı rasgele başlatmaların kullanılması, belirli bir yinelemenin yerel bir minima problemi olup olmadığına dair sizi işaret eder (bunun ima edildiğini ancak açık olmadığını).
Tahlor

2. sebep yanlış mı? open.wolframcloud.com/env/…
user3180

farklı girdiler ağırlık simetrisini
kırıyor

Eğer eklemek türevleri ve türevleri zincir kuralıyla kullanılan çarpma vardır.
David Refaeli

7

Bir Bayes ağında olduğu gibi ağırlıkları öncelikli olarak düşündüyseniz, bu girdilerin sistemi etkileyebileceği ihtimalini göz ardı ettiniz. Diğer bir açıklama, geri yayılmanın, hedef ve gözlenen değerler arasındaki ağırlıklı kare farkını en aza indiren ağırlık kümesini tanımlamasıdır (E). Peki herhangi bir degrade iniş algoritması sistemin yönünü belirleme açısından nasıl yönlendirilebilir? Kendinizi parametre alanının bir eyer noktasına yerleştiriyorsunuz.


1
Bu en iyi cevap. Bu bir eyer noktası. Geri yayılım tabanlı optimizasyon algoritmaları genellikle hemen durur. Gradyanı hesaplamak için deltaları ağırlıklar ile çarptık ve sonuç daima sıfır olacaktır.
alfa

Bunun neden herhangi bir ağırlığın 0'da başlatılmaması gerektiğine dair iyi bir cevap olduğunu düşünüyorum. Fakat deltalar muhtemelen hala geri yayılacak - çıkış katmanındaki ağırlıklar ağırlığa bağlı değil, bu yüzden burada sıfır olmayan ağırlıklar olacak ilk güncellemeden sonra. Bir sonraki güncellemeden sonra, bu sıfır olmayan ağırlıklar önceki katmanın ağırlıklarını vb. Ayarlamak için bir delta ile kullanılacaktır. Bence 0'lı bir ağ başlatmak ile ilgili en büyük sorun, temel olarak tamamen bağlı, ileri beslemeli ağınızda katman başına 1 düğüme eşdeğer olan, aynı ağırlıkta olmalarıdır.
Tahlor,

6

Geri yayılma algoritmanızın her bir yinelemesinde, ağırlıkları, geri yayılma tarafından belirlenen bir delta ile çarparak güncelleyeceksiniz. İlk ağırlık değeri 0 ise, delta için herhangi bir değerle çarpmak ağırlığı değiştirmez, bu da her yinelemenin optimize etmeye çalıştığınız ağırlıklar üzerinde hiçbir etkisi olmadığı anlamına gelir.


2
> mevcut ağırlığı, geri yayılım tarafından belirlenen bir değerle çarparak güncelleyeceksiniz - sanmıyorum, bu sadece çarpma değil.
user8078

1
Genel noktam, eğer başlangıç ​​ağırlıkları sıfırsa, geri yayılımın her yinelemesinden sonra sıfırda kalacaklarıdır.
Idr

'Geri yayılımla belirlenen' değer bir deltadır (bkz. Orijinal yazı "Geri yayılma hatalarını gösteren ifadeleri öğrenme", denklem 7). Cevap çok iyi ifade edilmedi ancak tamamen yanlış değil.
alfa

1
Bu sadece yanlış bir cevap. Ağırlıklar değişecek, ama birlikte değişecekler. Bu kötü, çünkü tüm gizli birimler eğitim boyunca aynı olacak ve hiçbir öğrenme gerçekleşmeyecek.
Amin Sammara

θ(0)=0.5

2

Bana öyle geliyor ki ağırlıkları aynı değerlere (sadece sıfır değil) başlatmanın kötü olmasının bir nedeni, o zaman herhangi bir gizli katman için bu katmandaki tüm düğümlerin aynı girdilere sahip olması ve bu nedenle her biriyle aynı kalmasıydı. diğer.


1

Buna cevap tamamen "Yerel Minima / Maxima" değildir.

1'den fazla Gizli Katmanınız varsa ve her ağırlık 0 ise, Weight_i’deki bir değişikliğin Çıktıda bir değişikliğe neden olmayacağı önemli değildir.

Bunun nedeni, delta Weight_i'nin bir sonraki Gizli Katman tarafından emileceğidir.

Çıktıda bir değişiklik olmadığında, gradyan ve dolayısıyla yön olmaz.

Bu, Yerel Minima / Maxima ile aynı özellikleri paylaşıyor, ancak aslında teknik olarak farklı olan 0'lardan kaynaklanıyor.


0

Tüm ağırlıkların sıfıra başlatılmasıyla ilgili temel problem, nöron değerlerinin sıfır (çoklu katmanlar için) olmasına ya da deltanın sıfır olmasına yol açar. Yukarıdaki cevaplarda @ alfa tarafından yapılan yorumlardan birinde zaten bir ipucu verilmiştir, ağırlık ve delta ürününün sıfır olması gerektiği belirtilmiştir. Bu, temelde, gradyan iniş için bunun dorukta en üstte olduğu ve simetriyi kıramadığı anlamına gelecektir. Rastgele olma bu simetriyi kıracak ve biri yerel asgari seviyeye ulaşacaktır. Ağırlığı biraz düşürsek bile, yolda oluruz. Kaynak: Verilerden öğrenme Ders 10.


0

2 nedenden dolayı kötü bir fikir:

  1. g(0)0

  2. tanhg(0)=0

Bunu gösterelim (basitlik için 1 nöronun son bir çıktı katmanını kabul ediyorum):

tanh

LaLzL=WLaL1WL

dWL:=LWL=LaLaLzLzLWL
LaazLaazzWaL1dWLWL=WLαdWL

aL1dWL

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.