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

一、Mini-batch gradient descent(小批量梯度下降法)
Mini-batch: 把整个训练数据集分成若干个小的训练集,即为Mini-batch。

为什么要分?梯度下降法必须处理整个训练数据集,才能进行下一次迭代。当训练数据集很大时,对整个训练集进行一次处理,处理速度较慢。但是如果每次迭代只使用一部分训练数据进行梯度下降法,处理速度就会变慢。而处理的这些一小部分训练子集即称为Mini-batch。另一方面,每次迭代处理更少的数据,使所需的内存空间相应的减小。

Mini-batch梯度下降的cost function会有噪声:
因为每次的训练集都不一样,可能遇到比较好分的训练数据,cost就较小。也可能是不好分的,cost就会变大。
吴恩达深度学习笔记 优化算法_第1张图片

Mini-batch 的 size:
size=m: batch梯度下降
对所有m个训练样本执行一次梯度下降,每一次迭代时间较长; Cost function 总是向减小的方向下降。

size=1: 随机梯度下降
对每一个训练样本执行一次梯度下降,但是丢失了向量化带来的计算加速; Cost function总体的趋势向最小值的方向下降,但是无法到达全局最小值点,呈现波动的形式。

size=(1,m): Mini-batch梯度下降
实现快速学习,也应用了向量化带来的好处; Cost function的下降处于前两者之间。通常选择2的整数次方:64,128,256,512。

二、指数加权平均(Exponentially weighted averages)

v_{t}= \beta v_{t-1}+\left ( 1-\beta \right )\theta _{t}

指数加权平均:其中vt表示加权平均值; v(t-1)表示前一个加权平均值; θt表示当前值; β越大平均的个数越多。
下图表示某些天的气温的散点图。其中黄、红、绿线分别是β=0.98,0.9,0.5的指数加权平均线(50天、10天、2天的加权平均值)。

吴恩达深度学习笔记 优化算法_第2张图片

 

作用: 虽然平均值不准确,但是只需要一行代码和一次计算就能够算出任意多个数的平均值。提高运行速度,节省内存空间。

指数加权平均的理解:
当β=0.9时,v100展开成:式中所有θ的系数相加等于1或者接近于1

这里写图片描述

我们忽略系数小于系数峰值(0.1)的1/e的项,因为1-ε=β; 所以我们只关注1/ε个值。例如:β=0.9时,ε=0.1,1/ε=10,即10天。

指数加权平均的偏差修正(bias correction):
当β=0.98,我们得到的并不是图中的绿色曲线,而是下图中的紫色曲线,其起点比较低。因为我们设v0=0,v1=0.98*v0+0.02*θ1=0.02*θ1变得非常小。
吴恩达深度学习笔记 优化算法_第3张图片

 修正公式:\frac{v_{t}}{1-\beta ^{t}}
开始阶段分母会比较小,可以修正起点偏低;当t增大时分母趋于1对结果没影响。实际使用中,可以不修正,直接忽略前期的均值。

 三、动量梯度下降法(gradient descent with momentum)
以下图是三维转二维 cost function contour 为例:
横轴(horizontal axis)梯度小,纵轴(horizontal vertical axis)梯度大,在相同的learning rate 梯度下降中横步长小(下降很慢)、纵步长很大(可能不收敛,波动大)。为了不收敛,learning rate 只能被设得较小,因此迭代速度慢。吴恩达深度学习笔记 优化算法_第4张图片

 

我们想加快训练速度,就得抑制纵向减少波动。这样我们就可以设置更大的learning rate加大横向步长进而加快迭代。

动量梯度下降的核心思想就是在更新参数时使用梯度的指数加权平均数代替只使用当前mini-batch计算出的梯度进行更新,这样可以减小纵轴的波动(因为被平均了,平均值波动较小且约等于0)。

算法的理解: 把Cost function想象为一个碗状,顶部有一颗球往下滚,其中的微分项 dw,db 可以看做是加速度、动量项 Vdw,Vdb 相当于速度。小球在向下滚动的过程中,因为加速度的存在速度会变快,但是由于β的存在且小于1,可以看做是摩擦力,所以球不会无限加速下去。

动量梯度下降的公式:β通常设为0.9,该参数正常不用调参。
吴恩达深度学习笔记 优化算法_第5张图片

四、RMSprop (root mean square prop: 均方根) 吴恩达深度学习笔记 优化算法_第6张图片

在 learning rate不变的情况下,即减小梯度大(例中为纵轴)的步长又增大梯度小的(横轴)步长。因为dw小S就小,除以根号S的项也就大了,即步长变大。为了保证算法不会除以远小于0的数,平方根分母中通常加上一个很小的值ε=10^−8,该参数正常不用调参。

 

五、Adam 优化算法(Adaptive Moment Estimation)

Adam 优化算法就是融合了 Momentum 和 RMSprop 算法的一种经受住考验的通用深度学习优化算法,在很多网络中都很有效。需要进行指数加权平均的偏差修正。

吴恩达深度学习笔记 优化算法_第7张图片

其中的超参数(hyper parameter):
α :需要进行调参;
β1:通常使用缺省值0.9,用于dw的加权平均;
β2:论文作者推荐使用0.999,用于dw2的加权平均值;
ε:推荐使用10^−8。 

你可能感兴趣的:(深度学习,算法,cnn)