【深度之眼cs231n第七期】笔记(十六)

本文深入探讨了深度学习中的优化方法,包括SGD及其改进版Momentum和Nesterov Momentum,以及AdaGrad、RMSprop和Adam等。针对优化问题,如鞍点和局部最小值,提出了不同的解决方案。此外,还介绍了学习率调整和二阶优化。在正则化部分,讲解了dropout、数据增强和其他策略,以及模型集成在提升模型性能上的作用。迁移学习的概念和应用场景也被详细阐述,强调其在小数据集和不同任务间转移知识的重要性。
摘要由CSDN通过智能技术生成


Q:训练参数的顺序
A:通常学习率很重要,所以首先确定它。正则化、学习率延迟、模型大小等相对于学习率来说没有那么敏感,所以一般在学习率之后确定。

优化方法

随机梯度下降(SGD)缺点

  1. 如果损失对一个方向比较敏感,而对另一个方向不太敏感(损失函数有很高的条件数)。那么梯度的更新就会来回震荡,需要更多次迭代才能收敛。
    比如说一个函数是:f(x,y)=x2/20+y2,这时候损失就对y比较敏感。而∂f/∂x=x/10,∂f/∂y=2y,所以更新梯度的时候,y方向会移动很远,而x方向只会稍微移动。如图所示:
    在这里插入图片描述
  2. 局部最小点和鞍点(一个方向损失增加,另一个方向损失减小)的时候梯度为零,不会再更新。
    而在高维的情况下更容易出现鞍点,假设梯度有一万维,那么出现一个维度方向损失增加,另一个方向损失减小是很有可能的。
    在这里插入图片描述
  3. SGD的梯度是根据小批量数据计算的,所以梯度可能有噪声,这就导致更新过程更加曲折。
    在这里插入图片描述

Q:如果SGD得到的梯度有噪声,那么使用全部数据进行梯度下降会不会就没有噪声了?
A:首先,梯度下降对于第一(高条件数)第二个问题(鞍点、局部最小值点)都是没办法解决的。对于第三个问题(梯度的噪声)来说,有可能网络本身就会引入其他噪声,而不仅仅是因为SGD的问题。所以使用梯度下降并不能真正的解决噪声问题。

SGD+Momentum

添加一个“速度”变量,保存梯度的均值;还有一个“摩擦系数”,一般取0.9或者0.99。
在这里插入图片描述
当到达局部最小值点和鞍点的时候,当前梯度还是0,但是梯度有一个“速度”,这是不为零的。两者相加,梯度还会继续更新,所以模型不会卡在这些点上(想像从山坡上滚下来的小球,它滚到平地上的时候还是有速度的)。
而对于高条件数和梯度噪声来说,由于速度保存了之前梯度的平均,所以梯度更新的时候会考虑之前的方向,从而更新的过程没有那么曲折。
在这里插入图片描述

Nesterov Momentum

使用SGD+Momentum时,当损失到达最小值点后,梯度方向会和原来的相反,但是由于速度很大,所以更新的方向还是和原来一样。这就相当于小球在经过最低点后,沿着对面的坡向上攀升。这就导致小球在谷底来回震荡,甚至有可能越过最低点。
而Nesterov Momentum并不是使用当前的梯度进行更新的,而是下使用一步的梯度。假设当前还没有到达最小值点,但是下一步会越过最小值点(这时候梯度方向相反),那么现在就应该考虑减速了(提前一步考虑减速,减少震荡)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值