1. 程式人生 > >神經網絡中權值初始化的方法

神經網絡中權值初始化的方法

網絡 mac tro 推導 6.4 linear diff ati soft

from:http://blog.csdn.net/u013989576/article/details/76215989

權值初始化的方法主要有:常量初始化(constant)、高斯分布初始化(gaussian)、positive_unitball初始化、均勻分布初始化(uniform)、xavier初始化、msra初始化、雙線性初始化(bilinear)


常量初始化(constant)

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

高斯分布初始化(gaussian)

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

positive_unitball初始化

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

均勻分布初始化(uniform)

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

xavier初始化(論文:《Understanding the difficulty of training deep feedforward neural networks》)

對於權值的分布:均值為0,方差為(1 / 輸入的個數) 的 均勻分布。如果我們更註重前向傳播的話,我們可以選擇 fan_in,即正向傳播的輸入個數;如果更註重後向傳播的話,我們選擇 fan_out, 因為在反向傳播的時候,fan_out就是神經元的輸入個數;如果兩者都考慮的話,就選 average = (fan_in + fan_out) /2。對於ReLU激活函數來說,XavierFiller初始化也是很適合。關於該初始化方法,具體可以參考文章1、文章2,該方法假定激活函數是線性的。

msra初始化(論文:《Delving Deep into Rectifiers:Surpassing Human-Level Performance on ImageNet Classification》.)

對於權值的分布:基於均值為0,方差為( 2/輸入的個數)的高斯分布;它特別適合 ReLU激活函數,該方法主要是基於Relu函數提出的,推導過程類似於xavier,可以參考博客。

雙線性初始化(bilinear)

常用在反卷積神經網絡裏的權值初始化

神經網絡中權值初始化的方法