概述
参数初始化Weight Initialization
- 全零初始化:无法进行模型训练
- 随机初始化:使用小的随机数(高斯分布,零均值,1e-2标准差)初始化
小网络可以,对于深度网络有问题。网络输出数据分布的方差会随着神经元的个数而改变。 - Xavier初始化
- 为保证前向传播和反向传播时每一层的方差一致。根据每层的输入个数和输出个数来决定参数随机初始化的分布范围。
高斯分布的权重初始化为:高斯分布的随机数乘上
2 n i n + n o u t frac{sqrt{2}}{sqrt{n_{in}+n_{out}}} nin+nout2
其中: n i n n_{in} nin和 n o u t n_{out} nout分别表示该层输入和输出的参数(权重)个数。
- 为保证前向传播和反向传播时每一层的方差一致。根据每层的输入个数和输出个数来决定参数随机初始化的分布范围。
注:原论文是基于线性函数推导的,同时在tanh激活函数上有很好的效果,但不适用于ReLU激活函数。
- He参数初始化
对Xavier方法的改进,将ReLU非线性映射造成的影响考虑进参数初始化中。
高斯分布的权重初始化为:高斯分布的随机数乘上 2 n i n frac{sqrt{2}}{sqrt{n_{in}}} nin2
均匀分布的权重初始化为:均匀分布的随机数乘上 2 n i n frac{sqrt{2}}{sqrt{n_{in}}} nin2
小结:
- 使用ReLU(without BN)激活函数时,最好选用He初始化方法,将参数初始化为服从高斯分布或者均匀分布的较小随机数
- 借助预训练模型中参数作为新任务参数初始化的方式也是一种简便易行且有效的模型参数初始化方法
- 一般情况下,偏置设为0
最后
以上就是安静小馒头为你收集整理的参数初始化Weight Initialization的全部内容,希望文章能够帮你解决参数初始化Weight Initialization所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复