吴恩达深度学习笔记——优化算法

P61 Mini-batch gradient descent

参考https://blog.csdn.net/red_stone1/article/details/78348753和吴恩达深度学习视频
把m个训练样本分成若干个子集,称为mini-batches。
在这里插入图片描述在这里插入图片描述

普通的gradient descent的epoch只是指一次遍历了训练集,只经历了一次梯度下降;mini-batch gradient descent ,一个epoch会进行T次梯度下降算法。
mini-batch比batch梯度下降法法运行更快。

P62 Understanding mini-batch gradient descent

在这里插入图片描述
minibatch会有噪声,因为每次的损失值J与当前的X和Y有关,有些比较容易计算。但是走势是下降的。

mini-batch设置多少合适?

需要决定mini-batch的大小,一共有m个样本。

  • mini-batch = m
    就是batch梯度下降法,只有一个mini-batch,并且有m个样本。每个epoch运算量较大。
  • mini-batch = 1
    随机梯度下降法,每个样本都是独立的mini-batch,一次只处理一个样本。有很多噪声。随机梯度下降永远不会收敛,而是在最小值附近波动。较小学习率噪声会有所改善。但是效率低下。
    在这里插入图片描述
  • mini-batch
    不宜设置太大或者太小,基本能接近全局最小值。一般取64,128,256等2的幂值,之所以这样设置的原因是计算机存储数据一般是2的幂,这样设置可以提高运算速度。

P63 Exponentially weighted averages(指数加权平均)

一般形式为
在这里插入图片描述
β值越大,则指数加权平均的天数越多,平均后的趋势线就越平缓,但是同时也会向右平移。下图绿色曲线和黄色曲线分别表示了β=0.98和β=0.5时,指数加权平均的结果。
在这里插入图片描述
在这里插入图片描述将原始数据值与衰减指数点乘,相当于做了指数衰减,离得越近,影响越大,离得越远,影响越小,衰减越厉害

在这里插入图片描述
在这里插入图片描述

P64 Bias correction in exponentially weighted average(偏差修正)

β=0.98时,指数加权平均结果如下图绿色曲线所示。但是实际上,真实曲线如紫色曲线所示。紫色曲线与绿色曲线的区别是,紫色曲线开始的时候相对较低一些。这是因为开始时我们设置V0=0,所以初始值会相对小一些,直到后面受前面的影响渐渐变小,趋于正常。
修正这种问题的方法是进行偏移校正(bias correction),即在每次计算完Vt后,对Vt进行下式处理:
在这里插入图片描述
随着t的增大,偏差修正几乎没有作用,因为β^t接近于0,该式子接近于Vt。偏差修正可以使从紫线编程绿线。

在这里插入图片描述

P66 Gradient descent with momentum(动量梯度下降法)

动量梯度下降比梯度下降算法块很多。就是在每次训练时 ,对梯度进行加权平均处理,然后得到的梯度值更新权重W和常数b。
在这里插入图片描述
相当于我想让横轴变化较小,纵轴变化较大。所以有一个权重
在这里插入图片描述
有两个超参数,α是lr,β是指数加权平均数,通常取0.9,平均10个数据。
另外,关于偏移校正,可以不使用。因为经过10次迭代后,随着滑动平均的过程,偏移情况会逐渐消失。

P67 RMSprop

RMSprop是另外一种优化梯度下降速度的算法。
在这里插入图片描述
令水平方向为W的方向,垂直方向为b的方向。
在这里插入图片描述
由蓝线可以看出,梯度在水平震荡较小,纵向震荡较大就是dw较小,db较大,所以Sw较小,Sb较大,作为分母后,变化值W的变化较大,b变化较小。纵轴上的更新较小,需要被一个较大的数相除;而水平轴的更新较大,需要被一个较小的数相除。
即加快了W方向的速度,减小了b方向的速度,减小振荡,实现快速梯度下降算法。总得来说,就是如果哪个方向振荡大,就减小该方向的更新速度,从而减小振荡。

为避免分母为0,需要在分母加上一个ε在这里插入图片描述
这样能让α取一个很大的值。梯度更新速率变快。

P68 Adam优化算法(Adaptive Moment Estimation)

结合了动量梯度下降算法和RMSprop算法。
在这里插入图片描述
Adam算法包含了几个超参数,分别是:α,β1,β2,ε。其中,β1通常设置为0.9,β2通常设置为0.999,ε通常设置为10−8。一般只需要对β1和β2进行调试。

P69 Learning rate decay(学习率衰减)

刚开始的时候,α较大,学习的步伐较大,收敛快;但是后来α会减小,梯度下降的步伐小,收敛到局部值。
在这里插入图片描述
在这里插入图片描述
t为mini-batch number。
除此之外,还可以设置α为关于t的离散值,随着t增加,α呈阶梯式减小。当然,也可以根据训练情况灵活调整当前的α值,但会比较耗时间。

P70 The problem of local optim(局部最优)

导数为0的点——鞍点。
在使用梯度下降算法不断减小cost function时,可能会得到局部最优解(local optima)而不是全局最优解(global optima)。之前我们对局部最优解的理解是形如碗状的凹槽,如下图左边所示。但是在神经网络中,local optima的概念发生了变化。准确地来说,大部分梯度为零的“最优点”并不是这些凹槽处,而是形如右边所示的马鞍状,称为saddle point。梯度为0不能确定其实最大值还是最小值。
在这里插入图片描述
进入鞍点需要很长的时间,进入鞍点后会由于随
机扰动,梯度沿着绿色剪头离开鞍点。
Adam算法能够有效解决plateaus下降过慢的问题,提高学习速率。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值