zoukankan      html  css  js  c++  java
  • 参数迭代的初始值

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

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

    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视作门,我们希望初始化情况下,大多数门常开


  • 相关阅读:
    Chapter 8. 面向对象(类库、委托)
    Chapter 8. 面向对象(多态--接口)
    练习:C# -- 多态
    Chapter 8. 面向对象(多态--抽象类)
    Chapter 8. 面向对象(多态--虚方法)
    Chapter 8. 面向对象(继承)
    Chapter 8. 面向对象(封装)
    Chapter 8. 面向对象(类、对象、字段、方法、属性、构造函数)
    练习、C# 结构体、冒泡排序
    1月19日(HTML之旅) CSS样式表
  • 原文地址:https://www.cnblogs.com/mx0813/p/12615774.html
Copyright © 2011-2022 走看看