Ağırlıkların ve sapmanın başlatılması neden 0 civarında seçilmeli?


13

Bunu okudum:

Sinir ağımızı eğitmek için, her bir parametreyi W (l) ijWij (l) ve her b (l) ibi (l) sıfıra yakın küçük bir rastgele değere başlatacağız (diyelim ki Normal (0, ϵ2) Normal (0'a göre) , ϵ2) bazı küçük ϵϵ için dağılım, örneğin 0.01)

dan Stanford Derin öğreticiler öğrenme 7. paragrafa Geri yayılım algoritması

Anlamadığım şey, ağırlık veya yanlılığın başlatılmasının neden 0 civarında olması gerektiğidir ?

Yanıtlar:


11

Oldukça makul veri normalizasyonu varsayıldığında, ağırlıkların beklentisi sıfır veya ona yakın olmalıdır. O halde, başlangıç ​​ağırlıklarının tümünü sıfıra ayarlamak mantıklı olabilir, çünkü pozitif bir başlangıç ​​ağırlığının aslında negatif bir ağırlık olması gerekiyorsa daha ileri gitmesi gerekecektir ve bunun tersi de geçerlidir. Ancak bu işe yaramıyor. Tüm ağırlıklar aynı ise, hepsinin aynı hatası olacaktır ve model hiçbir şey öğrenmeyecektir - nöronlar arasında asimetri kaynağı yoktur.

Bunun yerine yapabileceğimiz ağırlıkları sıfıra yakın tutmak, ancak küçük, sıfır olmayan sayılara başlatarak farklı hale getirmektir. Bağlandığınız öğreticide önerilen budur. Sıfır başlatma ile aynı avantajı vardır, çünkü 'en iyi tahmin' beklenti değerine yakındır, ancak simetri algoritmanın çalışması için yeterince kırılmıştır.

Bu yaklaşımın ek sorunları vardır. Özellikle sinir ağı derinse, daha küçük sayıların daha iyi çalışacağı doğru değildir. Geri yayılımda hesaplanan gradyanlar ağırlıklarla orantılıdır; çok küçük ağırlıklar çok küçük eğimlere yol açar ve ağın eğitilmesi çok daha uzun sürmesine veya hiç tamamlanmamasına neden olabilir.

sqrt(d)d[1d,1d]


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.