本文介绍一种权重初始化方法,它可以很大程度上避免神经元过早饱和而导致的学习率下降问题。
一、问题引出
一种简单而有效的方法是将每个权重看作一个服从均值为0且方差为1的高斯分布,然后独立的对每个权重从分布中采样进行初始化。如下图所示。假设输入层有1000个神经元,我们聚焦第二层的第一个隐单元来研究这个问题。同时,假设这1000个输入神经元中有500个值为0, 另外500个值为1。
根据上述的设定,同时依据统计学中多个独立随机变量和的方差定义,可以得出
隐单元的输入值 服从均值为0,标准差为 ,这使得该分部的两侧的尾部特别长,如下图所示。
位于 [1,-1] 之间的区域远远小于两侧的区域,这将使 的值相对较大,从而隐单元的激活值达到或接近饱和状况,这将会造成学习率严重下降。
二、改进策略
可以看到,单纯使用均值为0且方差为1的高斯分布会引起学习率下降,那如何改进这个方法那? 可以这样改进,假设隐单元有 个输入,那么可以改用均值为0但是方差为 ,这样一来,隐单元的输入值
的方差将是1。现在得到的分布如下图,这样便可以大大减少隐单元过早饱和的概率,学习率下降的可能性也大大减小。
三、总结
本文给出了一种在实践中有效的权重初始化方法,很多类似的方法均以此为核心。其实, 无论是什么方法,其本质均是避免隐单元过早饱和而导致的学习停滞。