深度学习中参数初始化方式的选择策略

  神经网络采用梯度下降的方法进行训练,在开始训练时需要对所有参数进行初始化,初始化条件应满足均值为0,输入和输出的方差一致,不会进入激活函数的饱和区域。

1.标准初始化

标准均匀分布初始化方法:
W i j ∼ N ( 0 , 1 n i n ) W_{ij}\sim N(0,\frac{1}{\sqrt{n_{in}}}) WijN(0,nin 1)
n i n n_{in} nin表示输入参数的数目,保证激活函数的输入值的均值为0,方差为1/3

标准正太分布初始化方法:
W i j ∼ U ( − 1 n i n , 1 n i n ) W_{ij}\sim U(-\frac{1}{\sqrt{n_{in}}},\frac{1}{\sqrt{n_{in}}}) WijU(nin 1,nin 1)
n i n n_{in} nin表示输入参数的数目,保证激活函数的输入值的均值为0,方差为1

适用对象: tanh激活函数

2.Xavier初始化

Xavier均匀分布初始化方法:
W i j ∼ N ( 0 , 2 n i n + n o u t ) W_{ij}\sim N(0,{\sqrt{\frac{2}{n_{in}+n_{out}}}}) WijN(0,nin+nout2 )
Xavier均匀分布初始化方法:
W i j ∼ N ( − 6 n i n + n o u t , 6 n i n + n o u t ) W_{ij}\sim N(-{\sqrt{\frac{6}{n_{in}+n_{out}}}},{\sqrt{\frac{6}{n_{in}+n_{out}}}}) WijN(nin+nout6 ,nin+nout6 )
n i n n_{in} nin表示输入参数的数目, n o u t n_{out} nout表示输出参数的数目,均值为0, 方差为1/n,保证了正向传播时,激活值的方差保持不变;反向传播时,关于状态值的梯度的方差保持不变
适用对象: 激活函数在零点附近接近线性函数,且激活值关于0对称,tanh和softsign

3.He初始化

He均匀分布初始化方法:
W i j ∼ N ( 0 , 2 n i n ) W_{ij}\sim N(0,{\sqrt{\frac{2}{n_{in}}}}) WijN(0,nin2 )
He均匀分布初始化方法:
W i j ∼ N ( − 6 n i n , 6 n i n ) W_{ij}\sim N(-{\sqrt{\frac{6}{n_{in}}}},{\sqrt{\frac{6}{n_{in}}}}) WijN(nin6 ,nin6 )
n i n n_{in} nin表示输入参数的数目,均值为0,方差为2/n,保证了正向传播时,状态值的方差保持不变;反向传播时,关于激活值的梯度的方差保持不变
适用对象: ReLU激活函数,无BN

He均匀分布初始化方法2:
W i j ∼ N ( 0 , 2 ( 1 + α 2 ) ∗ n i n ) W_{ij}\sim N(0,{\sqrt{\frac{2}{(1+\alpha^2)*n_{in}}}}) WijN(0,(1+α2)nin2 )
适用对象: Leaky ReLU激活函数,无BN

4.使用BN时

使用 BN 时,减少了网络对参数初始值尺度的依赖,此时使用较小的标准差(eg:0.01)进行初始化即可

你可能感兴趣的:(深度学习,深度学习,参数初始化,激活函数)