1. 程式人生 > >深度學習訓練技巧---權重初始化

深度學習訓練技巧---權重初始化

常量 反向傳播 ive str 防止 自己 對稱性 就是 導致

全零初始化

  全零初始化即所有的變量均被初始化為0,這應該是最笨、最省事的隨機化方法了。然而這種偷懶的初始化方法非常不適合深度學習,因為這種初始化方法沒有打破神經元之間的對稱性,將導致收斂速度很慢甚至訓練失敗。

常量初始化(constant)

把權值或者偏置初始化為一個常數,具體是什麽常數,可以自己定義

高斯分布初始化(gaussian)

需要給定高斯函數的均值與標準差

positive_unitball初始化

讓每一個神經元的輸入的權值和為 1,例如:一個神經元有100個輸入,讓這100個輸入的權值和為1. 首先給這100個權值賦值為在(0,1)之間的均勻分布,然後,每一個權值再除以它們的和就可以啦。這麽做,可以有助於防止權值初始化過大,從而防止激活函數(sigmoid函數)進入飽和區。所以,它應該比較適合sigmoid形的激活函數

均勻分布初始化(uniform)

將權值與偏置進行均勻分布的初始化,用min 與 max 來控制它們的的上下限,默認為(0,1)

xavier初始化

對於權值的分布:均值為0,方差為(1 / 輸入的個數) 的 均勻分布。如果我們更註重前向傳播的話,我們可以選擇 fan_in,即正向傳播的輸入個數;如果更註重後向傳播的話,我們選擇 fan_out, 因為在反向傳播的時候,fan_out就是神經元的輸入個數;如果兩者都考慮的話,就選 average = (fan_in + fan_out) /2。

msra初始化

對於權值的分布:基於均值為0,方差為( 2/輸入的個數)的高斯分布;它特別適合 ReLU激活函數,該方法主要是基於Relu函數提出的。

深度學習訓練技巧---權重初始化