花书中深度模型的优化

1.随机梯度下降

        随机梯度下降(SGD)很可能是一般机器学习中应用最多的优化算法。学习率是SGD中的一个重要的参数,在实践中,有必要随着训练时间的推移逐渐降低;但是在批量梯度下降时,由于整个代价函数会降到0,所以批量梯度下降可以使用固定的学习率。SGD中学习率的选择是与其说是科学不如说是一门艺术。优化效果和收敛率是优化算法两个重要的指标。

2.动量

        动量就是累积梯度,速度的概念有方向和大小。作用可以解决hessian矩阵的病态(损失函数为椭圆的情况)。nesterov动量在梯度计算中也加入了速度。在批量梯度下降时,netervo动量可以加速收敛,但是在随机梯度下降中没有改进。

3.自适应算法

        学习率对模型性能有着很大的影响。动量算法在一定程度上可以避免参数空间敏感于某些方向的问题,但是会引入另一个参数。

        delta-bar-delta:偏导符号相同,学习率增加;偏导符号变化。学习率减小。

        AdaGrad:独立地适应所有模型参数的学习率,缩放每个参数反比于其所有梯度历史平方和的平方根。效果就是在参数空间中更为平缓的倾斜方向会取得更大的进步。缺点:从训练开始时积累梯度会导致有效学习率过早和过量的减少。

        RMSProp:修改AdaGrad以在非凸设定下效果更好,改变梯度积累为指数加权的移动平均。AdaGrad旨在应用于凸问题时快速收敛。在非凸情况下,梯度的积累使得在最终达到的凸碗时学习率变得特别小。RMSProp使用指数衰减平均以丢弃遥远的历史。

       Adam:Adam对于超参数的选择相当鲁棒。动量加入梯度一阶矩估计,加入偏置修正。 

4.参数初始化

        深度学习的求解受到初始化的影响,原因1它是迭代求解,2问题太复杂。 初始化点可以影响收敛快慢,收敛点代价高低,以及影响泛化能力。  

        优化角度和泛化角度对初始化参数有着有不同的观点,优化观点建议权重足够大,但是正则化希望其小一点。对于初始化对于泛化的理解,我们知道的唯一特性是需要在不同单元间“破坏对称性”。几种参数初始化方法:https://blog.csdn.net/choose_c/article/details/100633361

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值