深度学习训练技巧---权重初始化

Posted chzhang1994

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深度学习训练技巧---权重初始化相关的知识,希望对你有一定的参考价值。

全零初始化

  全零初始化即所有的变量均被初始化为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函数提出的。


以上是关于深度学习训练技巧---权重初始化的主要内容,如果未能解决你的问题,请参考以下文章

深度学习基本功2:网络训练小技巧之使用预训练权重冻结训练和断点恢复

深度学习-网络调参技巧

深度学习 Fine-tune 技巧总结

深度学习笔记1-权重参数全相同值初始化,导致无法训练-python

深度学习调参技巧

[深度学习]网络结构,权重初始化,激活函数,fine-tune