在神經網絡中,通常需要隨機初始化模型參數。下面解釋一下這樣做的原因。
設有一個多層感知機模型,假設輸出層只保留一個輸出單元,且隱藏層使用相同的激活函數。如果將每個隱藏單元的參數都初始化爲相等的值,那麼在正向傳播時每個隱藏單元將根據相同的輸入計算出相同的值,並傳遞至輸出層。
在反向傳播中,每個隱藏單元的參數梯度值相等。因此,這些參數在使用基於梯度的優化算法迭代後值依然相等。之後的迭代也是如此。在這種情況下,無論隱藏單元有多少,隱藏層本質上只有一個隱藏單元在發揮作用。
因此,通常對神經網絡的模型參數,特別是權重參數進行隨機初始化。隨機初始化模型參數的方法有很多,可以使用正態分佈的隨機初始化方式。
還有一種比較常用的隨機初始化方法叫做Xavier隨機初始化。假設某全連接層的輸入個數爲a,輸出個數爲b,Xavier隨機初始化將使該層中權重參數的每個元素都隨機採樣於均勻分佈它的設計主要考慮到,模型參數初始化後,每層輸出的方差不該受該層輸入個數影響,且每層梯度的方差也不該受該層輸出個數影響。