本文仅对常见的参数初始化方法进行总结(大部分内容来自deep learning一书),原理性的问题不进行过多的探讨。
Deep Learning中参数初始化十分重要,一般来说有以下这些原因:
1.初始点的选取,有时候能够决定算法是否收敛
2.当收敛时,初始点可以决定学习收敛的多快,是否收敛到一个代价高或低的点
3.初始化也可以影响泛化
4.初始参数需要破坏不同神经元间的“**对称性**”,因为如果初始化成全0或者一样的值,那么整个神经网络就会变成确定性的算法,具有相同输入的神经元前向传播和梯度更新就都变得一模一样的。(尤其是在cnn中,对于不同channel,具有相同输入的情况下)
初始化的参数主要有:w权重,bias偏置,下面分别对这两类参数进行讨论
一.w权重:
先上一些结论:
①.在实践中,我们经常将权重初始化为高斯分布,或者均匀分布。高斯分布或者均匀分布的选择并没有太大的区别。但是初始化分布的**大小(scale)**对优化结果和泛化能力有极大的影响。
②对于relu的激活函数推荐使用**【2】或者【3】**的方式