一種有效的神經網絡權重初始化方法

    本文介紹一種權重初始化方法,它可以很大程度上避免神經元過早飽和而導致的學習率下降問題。

一、問題引出

    一種簡單而有效的方法是將每個權重看作一個服從均值爲0且方差爲1的高斯分佈,然後獨立的對每個權重從分佈中採樣進行初始化。如下圖所示。假設輸入層有1000個神經元,我們聚焦第二層的第一個隱單元來研究這個問題。同時,假設這1000個輸入神經元中有500個值爲0, 另外500個值爲1。

    根據上述的設定,同時依據統計學中多個獨立隨機變量和的方差定義,可以得出

                                                                                        z = \sum_jw_j x_j+b

隱單元的輸入值 z 服從均值爲0,標準差爲 \sqrt{501} \approx 22.4,這使得該分部的兩側的尾部特別長,如下圖所示。

     位於 [1,-1] 之間的區域遠遠小於兩側的區域,這將使 z 的值相對較大,從而隱單元的激活值達到或接近飽和狀況,這將會造成學習率嚴重下降。

 

二、改進策略

    可以看到,單純使用均值爲0且方差爲1的高斯分佈會引起學習率下降,那如何改進這個方法那? 可以這樣改進,假設隱單元有 n_{in} 個輸入,那麼可以改用均值爲0但是方差爲 \frac{1}{n_{in}},這樣一來,隱單元的輸入值

                                                                                    z = \sum_jw_j x_j+b

的方差將是1。現在得到的分佈如下圖,這樣便可以大大減少隱單元過早飽和的概率,學習率下降的可能性也大大減小。

 

三、總結

    本文給出了一種在實踐中有效的權重初始化方法,很多類似的方法均以此爲核心。其實, 無論是什麼方法,其本質均是避免隱單元過早飽和而導致的初始學習率過低的問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章