當我們在訓練一個神經網絡的時候,參數的隨機初始化是非常重要的,對於邏輯回歸來說,把參數初始化為0是很ok的。但是對於一個神經網絡,如果我們將權重或者是所有參數初始化為0,梯度下降算法將不會起到任何作用。
1.為什么邏輯回歸參數初始化為0是ok的?
下圖所示,是logistic回歸的圖解:
假設我們用梯度下降法來更新我們的模型參數。
logistic回歸模型的前向傳播:
logistic回歸模型的反向傳播:
參數更新公式:
2.為什么神經網絡的權重或所有參數初始化為0,梯度下降不再work?
為了說明這個問題,我們以一個簡單的神經網絡為例,該神經網絡只有1層隱藏層,包含2個神經元,其具體的神經網絡的結構圖如下圖所示:
神經網絡的前向傳播
其中,
神經網絡的反向傳播所能用到的導數公式:
根據上述的詳細公式,我們分析一下3種情況:
l 模型所有權重w初始化為0,所有偏置b初始化為0
l 模型所有權重w初始化為0,所有偏置b隨機初始化
l 模型所有的權重w隨機初始化,所有偏置b初始化為0
2.1 模型所有權重w初始化為0,所有偏置b初始化為0
2.2 模型所有權重w初始化為0,所有偏置b隨機初始化
2.3 模型所有的權重w隨機初始化,所有偏置b初始化為0
結論:在訓練神經網絡的時候,權重初始化要謹慎,不能初始化為0
轉載自:https://zhuanlan.zhihu.com/p/75879624