参数迭代的初始值

深度学习在训练模型的时候,通常使用迭代优化算法来搜寻代价函数的极小值。

初始值对算法影响的方面:

1.影响优化算法是否收敛,有的初始点的选择会造成数值问题(梯度消失);

2.影响算法的收敛速度

3.影响算法收敛于高代价或低代价的极值点

4.收敛于相同代价值的不同初始点,很可能学习出不同的参数分布,在泛化能力上也有很大区别


参数初始化的原则/方法:

1.同层参数的初始化必须破坏unit间的对称性。经常性地,我们使用从高斯/均匀分布中抽取数值作为参数的初始值,但是这两种采样方法目前没有详尽研究;

2.初始值分布的scale大小确实会对优化过程影响很大:适当大的初始权重分布对于破坏对称性的效果更强,同时有助于避免前馈、反馈过程中梯度消失。但是过分大的权重则会导致前馈、反馈过程中的梯度爆炸。另外,也可能导致混沌(使模型对输入中的小扰动非常敏感)

3.一种启发式方法:假设有m个输入维度、n个输出维度,所有层的权重设置为服从与以下的均匀分布

$W_{i, j} \sim U(-\sqrt{\frac{6}{m+n}}, \sqrt{\frac{6}{m+n}})$

4.有研究者建议初始化为随机正交矩阵

5.有研究这提出稀疏初始化权重:每个unit对接的权重随机置零若干个(解决从特定分布中抽取权重值会导致所有初始权重具有相同标准差,以至于在‘4’的方法下,若层数上千,则每个权重变得极小(解决4的问题))

6.权重的范围也可以视作超参数,若计算资源允许可以进一步搜索。

7.偏置通常可置零

8.偏置建议不置零的情况:如果偏置作为输出单元,则初始化偏置以获取正确的输出边缘统计是有利的。选择初始化偏置以避免权重初始化引起太大饱和。在门控模型中,h视作门,我们希望初始化情况下,大多数门常开


posted @ 2020-04-01 20:54  MO_JOJOJO  阅读(1522)  评论(0编辑  收藏  举报