一、初始化
1.爲什麼神經網絡的所有參數不能全部初始化爲0>?
若w初始化爲0 ,很可能導致模型失效,無法收斂。也就是說如果我們初始將所有的w初始化爲0,那麼進行前向傳播時每一層得到的值都是一樣,這樣一來當我們使用反向傳播時,傳回的梯度也是一樣的,這就導致了我們更新參數後w還是一樣的,這就使得我們的NN不能各自學習到很好的特徵了。可以看這裏
2.Xavier Initialization
Xavier Initialization 初始化的基本思想就是保持輸入和輸出的方差一致,這樣就避免了所有的輸出值趨向於0.
首先對於前向傳播,我們需要確保所有層的激活值方差近似相等,因此每個訓練樣本傳播經過網絡的信息才能保持平滑的屬性。同樣對於反向傳播,每層梯度保持近似的方差將允許信息平滑地反向流動以更新權重。近似方差的梯度同樣確保誤差數據能夠反饋到所有層級,因此它是整個訓練中的關鍵。
這位大佬寫的很不錯
將W的方差變爲 1layersdims[l−1]