常用神经网络参数初始化方法

一般神经网络被随机初始化。随机从均匀分布或者高斯分布中采样。
初始化的基本动机是每一层网络输出的方差应该和输入方差保持一致,便于网络的学习更新(信息流动)。

1、Xavier初始化

适用于tanh,sigmoid激励函数,其输出激励值的均值为0;
w ∼ U ( − s c a l e , + s c a l e ) w \sim U(-scale,+scale) wU(scale,+scale);
s c a l e = 6 n i n + n o u t scale=\sqrt{\frac{6}{n_{in}+n_{out}}} scale=nin+nout6 .

w ∼ N ( 0 , s t d 2 ) w \sim N(0,std^2) wN(0,std2);
s t d = 2 n i n + n o u t std=\sqrt{\frac{2}{n_{in}+n_{out}}} std=nin+nout2 .

2、Kaiming初始化

适用于ReLu激励函数,其输出激励值的均值不为0;
w ∼ U ( − s c a l e , + s c a l e ) w \sim U(-scale,+scale) wU(scale,+scale);
s c a l e = 3 n i n ( n o u t ) scale=\sqrt{\frac{3}{n_{in}(n_{out})}} scale=nin(nout)3 .

w ∼ N ( 0 , s t d 2 ) w \sim N(0,std^2) wN(0,std2);
s t d = 1 n i n ( n o u t ) std=\sqrt{\frac{1}{n_{in}(n_{out})}} std=nin(nout)1 .

你可能感兴趣的:(深度学习,神经网络)