1.视频网站:mooc慕课https://mooc.study.163.com/university/deeplearning_ai#/c
2.详细笔记网站(中文):http://www.ai-start.com/dl2017/
3.github课件+作业+答案:https://github.com/stormstone/deeplearning.ai
2.6 动量梯度下降法 Gradient descent with momentum
有一种算法叫做Momentum,或者叫做动量梯度下降法,运行速度几乎总是快于标准的梯度下降算法。
简而言之,基本的想法就是计算梯度的指数加权平均数,并利用该梯度更新你的权重。本节将介绍它。
假设你要优化成本函数,函数形状如上图,红点代表最小值的位置。
假设你从下图左边(蓝色点)开始梯度下降法。
如果进行梯度下降法的迭代,无论是batch或mini-batch下降法,你会发现梯度下降法要很多计算步骤。
梯度慢慢摆动到最小值,这种上下波动减慢了梯度下降法的速度,你就无法使用更大的学习率。如果你要用较大的学习率(紫色箭头),结果可能会偏离函数的范围,为了避免摆动过大,你要用一个较小的学习率。
另一个要注意的问题是,在纵轴上,你希望学习慢一点,因为你不想要这些摆动。但是在横轴上,你希望加快学习,这样可以快速从左向右移,移向最小值红点。
所以使用动量梯度下降法,你需要做的是,在第 t t t 次迭代的过程中,计算微分 d W dW dW和 d b db db。计算方法类似之前的温度移动加权平均公式 v t = β v t − 1 + ( 1 − β ) θ t v_t=\beta v_{t-1}+(1-\beta)\theta_t vt=βvt−1+(1−β)θt。
- v d W = β v d W + ( 1 − β ) d W v_{dW}=\beta v_{dW}+(1-\beta)dW vdW=βvdW+(1−β)dW。得到 d W dW dW 的移动平均数。
- v d b = β v d b + ( 1 − β ) d b v_{db}=\beta v_{db}+(1-\beta)db vdb=βv