解析深度學習神經網絡權重初始化

以全連接模型爲例:輸入數據爲a[784]的數組,模型共2層神經元,第一層100個,第二層即輸出層爲10個神經元,則第一層的權重有[784,100]個,截距有[100]個,第二層有[100,10]個權重,截距[10]個,代碼用W1表示第一層權重矩陣,B1表示截距行向量,W2表示第二層權重矩陣,B2表示截距行向量,設置每次輸入101批數據,則輸入數據矩陣爲[101,784],用X表示,輸入標籤爲[101,10],用Y表示。
形狀如下:
X: [101,784],每一行爲一批數據
Y:[101,10]
W1: [784,100], 每一列爲單個神經元的權重
B1: [100]
W2: [100,10]
B2[10]
第一層輸出:
FC1=relu(XW1+B1),B1進行了行廣播
FC1: [101,100]
第二層輸出:
FC2=softmax(FC1
W2+B2)
FC2: [101,10]
loss=FC2-Y
1.權重初始化爲0:
分析:FC2: [101,10]的行向量全部一樣,W(t+1)=W-k▲,▲爲矩陣中每個元素的偏導數,這樣進行梯度下降優化,權重矩陣最終穩定爲均勻分佈,且loss無法降下去,實際效果如下:
在這裏插入圖片描述

2,權重給隨機值
分析,數值分散,無法收斂,損失降不下去,分佈直方圖如下
在這裏插入圖片描述

3.權重在0附近的小範圍內給隨機值。
如果神經層數較少,效果還不錯(-0.1到0.1),如果層數較多,到後面層數的神經元輸出逼近偏移值,與全0初始化類似,數值沒有差異性,無法收斂,最後穩定成均勻分佈,在2層神經元時,效果如下:
在這裏插入圖片描述
範圍公式(-1/sqart(n),1/sqart(n))

3,權重在較大值附近的小範圍內隨機
分析,初始值較大,由於激活函數的斜率在-1到1之間,初始值過大(90到100),對應偏導數逼近0,無法收斂,效果如下。
在這裏插入圖片描述
初始化(100到100.01)效果如下:
在這裏插入圖片描述

4,無限定標準正態分佈
效果可以,但由於範圍不限定,會有少部分權重初始化值很大,偏導數趨近0,最好的是截斷正態分佈,標準差與激活函數有關,tanh或者sigmoid的標準差給1/sqrt(n),relu用sqrt(2/n)

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