神經網絡的參數爲什麼不能初始化爲全零

訓練神經網絡時,隨機初始化權重非常重要。對於Logistic迴歸,可以將權重初始化爲零,但如果將神經網絡的各參數全部初始化爲0,再使用梯度下降法,這樣將會完全無效。

如圖所示,這是一個簡單的兩層神經網絡(輸入層是第0層),如果將所有的w矩陣和b向量都初始爲全0

則矩陣  是    

將偏置項b初始化爲0實際上是可行的,但把W初始化成全零就成問題了,它的問題在於給神經網絡輸入任何的樣本,隱藏層的兩個單元都是相同的值,由於每個激活單元的計算公式如下,([i]表示第i層,w表示權重矩陣,x表示訓練樣本,b表示偏置項向量,a表示激活後的值)

由於w[1]是全0矩陣(維度是2x2),所以

然後在相同的激活函數作用後,得

所以這兩個隱藏單元其實在進行相同的計算,它們在做一樣的事情。

又因爲w[2]也是全0的矩陣(維度是1x2),所以

現在的Loss function(損失函數)爲

那麼對a求導

爲了便於說明問題,這裏假設輸出層的激活函數是sigmoid函數,即

g(z)代表激活函數作用在z之後的值,所以g(z)=a,所以

那麼由鏈式求導法則知

所以

由於,所以,根據前面的推導,可知dw[2]的兩個分量也是相同的,那麼梯度下降更新一次 ,所以

又因爲,那麼da的兩個分量也是相同的,

所以dz[1]的兩個分量是相同的

再向前計算一次導數

u,v只是變量記號,結果表明每個單元的節點的權重是一樣的,即權重矩陣的每一行是相同的。

一直這樣迭代下去,神經網絡的每一次正向和反向傳播,隱藏層的每個激活單元其實都在計算同樣的東西,其實也就是一個"對稱網絡",這種網絡無法學習到什麼有趣的東西,因爲每個隱藏層的激活單元都在計算同樣的東西,那麼隱藏層其實相當於只有一個單元,所以這個神經網絡其實可以簡化爲logistic迴歸,因此神經網絡的W參數矩陣不能隨機初始化爲0。

 

 

 

 

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