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

2021-09-03 03:17:25 字數 1456 閱讀 3553

以全連線模型為例:輸入資料為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(fc1w2+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)

1 11 神經網路的權重初始化

理想的權重矩陣既不會增長過快,也不會太快下降到 0,從而訓練出乙個權重或梯度不會增長或消失過快的深度網路。有乙個神經元的情況 暫時忽略b z 為了預防 z值過大或過小,你可以看到 n越大,你希望 越小,因為 z是 的和如果你把很多此類項相加,希望每項值更小,最合理的方法就是設定 frac n表示神經...

深度學習 2 1 1 神經網路引數初始化

三種引數初始化方法 zero initialization 將輸入引數初始化為0 random initialization 隨機初始化輸入引數,權重w初始化的值較大 he initialization 在一定範圍內隨即初始化權重w值 zero initialization實現 for l in r...

深度學習 深度學習權重初始化

本文對cs231中的training neural networks的權重更新部分進行記錄 權重的初始化在深度神經網路中起著比較大的重要,算是乙個trick,但在實際應用上確是個大殺器。1.如果一開始把網路中的權重初始化為0,會發生什麼?因為權重初始為0,由於網路中的神經元的更新機制完全相同,由於網...