深度學習-初始化權重矩陣


1.初始化權重矩陣為0

對於每個隱含層節點,輸出的結果都是一樣的。另外,進行梯度下降時,由於偏導一樣,因此不斷迭代,不斷一樣,不斷迭代,不斷一樣..多層神經網絡表現的跟線性模型一樣,不可取!

2.隨機初始化權重矩陣

(1)標准正態分布

   np.random.rand(size_l,size_l-1)

   可能導致梯度下降或者梯度爆炸的問題

(2)啟發式來根據非線性激活函數初始化權重

   ---梯度下降

    對於深度網絡來說,對於任何激活函數,梯度將隨着反向傳播期間每層向后移動變得越來越小。梯度變小,權重更新緩慢,網絡收斂速度變慢。甚至可能阻止網絡進一步訓練!

  ---梯度爆炸

    與梯度下降相反,對於任何激活函數,梯度變化越來越大,可能導致網絡跳過最優值或者在附近波動,而永遠無法收斂。

       解決方法:啟發式方法

  對於激活函數ReLu:

    W[l] = np.random.rand(size_l,size_l-1)*np.sqrt(2/size_l-1)

  對於激活函數tanh(又稱為Xavier初始化):

    W[l] = np.random.rand(size_l,size_l-1)*np.sqrt(1/size_l-1)

  其他形式的啟發式方法:

    W[l] = np.random.rand(size_l,size_l-1)*np.sqrt(1/(size_l-1+size_l))

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM