【深度学习】第二阶段 —— 第二课
声明: 此笔记为吴恩达(Andrew Ng)的深度学习课程学习后的总结,会根据自己的学习进度更新。
优化算法
-
Mini-batch梯度下降法
- 巨大数据集中一个个数据迭代费事太久,将数据集分为更多的小组(例如:500百万个数据分为5000组一组一千个),对每个组进行迭代
- 梯度下降中cost的变化图如下:
- 如何去选择你的mini-batch的大小:
① 当你的mini-batch大小等于样本总数“m”时,相当于只有一组
② 当你的mini-batch大小等于“1”的 时候,相当于有m组。
其训练迭代图如下:
③ 自然而然,选取应该在中间不太大的值
-
指数加权平均
-
以London一年的温度分布为例,如图:
线条就是按照加权平均来计算的温度值:
其中的值在实际总一般取0.98,实际上就是绿线,此时就是的值为实际记录值
- 偏差修正(Bias Correction)
实际上,在用公式推导的时候,那么就是利用偏差修正进行前期的误差修正,使其达到更吻合的绿线。
计算表达下: 当 ,这样计算出来的在前期会更接近实际值 - 在实际情况中,大多数人宁愿熬过初始时期,拿到偏差的估测继续计算下去,因为后面的拟合度也不差
-
-
其他加速梯度下降法
-
动量梯度
梯度下降示意图:
在纵向上,需要尽可能的缩小摆动,横向上,尽可能加快速度,这反映到公式上如下
On iteration t:
Compute dW,db on current mini-batch
Hyperparrameters:,在实际中的值多为0.9,而一般也不用取修正偏差,因为迭代增加到10后,影响不大了,有些参考资料中会删去,然后修改学习率的值来调节,Andrew Ng更偏向于不删,效果差不多的。
-
RMSProp(均方根)
还是看上图,假设在纵轴是b,横轴是W(这样假设的理由是,只要b减小,上下的摆动就会减小,而只要W增大,梯度下降的速度也就增快了)
On iteration t:
Compute dW,db on current mini-batch
其中dw变小,相应最后W变大,而db相反,这样就减小了摆动,而在实际操作中为了防止分母趋于0,会加上一个很小的数: 其中
-
Adam优化算法
相当于结合了Momentun和RMSProp
On iteration t:
Compute dW,db on current mini-batch
Hyperparameters chice:
:needs to be tune
:0.9 (dw)
:0.9 ()
:1e-8 -
-
学习衰减率
-
为何要用到学习衰减率?
当你在训练的过程中,大的“步伐”会在最优值附近大幅度的“徘徊”,在训练的后期,小的学习率有利于减小这一幅度,如图(绿线运用了学习衰减率): -
实现方法:
还有其他的更多的方法来实现,效果也不同
-
-
局部最优问题
总结:好马!