吴恩达 deep-learning 优化算法

文章目录

        • Mini-batch 梯度下降法
        • 指数加权平均
        • 动量梯度下降法
        • RMSprop
        • Adam 优化算法
        • 学习率衰减
        • 局部最优的问题

Mini-batch 梯度下降法

当对整个训练集执行梯度下降法时,要处理整个数据集,然后才能进行一步梯度下降法,这样速度回非常慢
但如果每次数据的一部分进行梯度下降,那么算法的处理速度会快很多

吴恩达 deep-learning 优化算法_第1张图片
mini-batch梯度下降,在每次迭代是并不是下降的

当mini-batch的size=m时 就是batch梯度下降,每次梯度下降对所有样本执行一次梯度下降,每次迭代需要大量时间
当mini-batch的size=1 是,就是随机梯度下降,每次只对一个样本进行梯度下降,当会失去向量化带来的加速
所以在实践中选择两者之间,不大不小的Mini-batch尺寸

如果训练集很小:直接使用batch梯度下降
如果训练集较大,典型的mini-batch大小是64到512即 2 6 、 2 7 、 2 8 、 2 9 、 2 1 0 2^6、2^7、2^8、2^9、2^10 26272829210 X { t } Y { t } X^{\{t\}}Y^{\{t\}} X{t}Y{t}需要符合CPU、GPU内存

指数加权平均

吴恩达 deep-learning 优化算法_第2张图片
指数加权平均公式
v t = β v t − 1 + ( 1 − β ) θ t v_{t} = \beta v_{t-1}+(1-\beta)\theta_{t} vt=βvt1+(1β)θt

v t v_t vt是估计的平均值,约等于 1 1 − β \dfrac{1}{1-\beta} 1β1天的平均气温
β = 0.9 \beta=0.9 β=0.9 是红色线,代表的是最近10天的平均温度
β = 0.98 \beta=0.98 β=0.98 是绿色线,代表的是最近50天的平均温度
β = 0.5 \beta=0.5 β=0.5 是黄色色线,代表的是最近2天的平均温度

吴恩达 deep-learning 优化算法_第3张图片
上图中 v 100 v_{100} v100 θ \theta θ前的系数相加等于1或接近于1,称之为偏差修正
0. 9 10 ≈ 0.35 ≈ 1 / e 0.9^{10} \approx 0.35\approx 1/e 0.9100.351/e
存在 ε \varepsilon ε满足式子 ( 1 − ε ) 1 / ε = 1 e (1-\varepsilon)^{1/\varepsilon}=\dfrac{1}{e} (1ε)1/ε=e1上述例子 ε = 0.1 \varepsilon=0.1 ε=0.1
总的来说,相当于10天后系数下降到峰值得 1 e \dfrac{1}{e} e1
吴恩达 deep-learning 优化算法_第4张图片
由于初始的 v 0 = 0 v_0=0 v0=0,所以应该是图片中的紫线,整体比实际值偏小
所以在估测初期使用 v t 1 − β t \dfrac{v_{t}}{1-\beta^{t}} 1βtvt进行偏差估计

动量梯度下降法

基本思想是计算梯度的指数加权平均数,并利用该梯度更新权重

上图中的蓝线是使用梯度下降来进行最小化损失函数,可以看出一直在波动且幅度很大,减缓了梯度下降的速度,并且为了防止摆动过大,超出函数的范围只能使用一个较小的学习率

动量梯度下降算法实现

RMSprop

吴恩达 deep-learning 优化算法_第5张图片

Adam 优化算法

算法实现
吴恩达 deep-learning 优化算法_第6张图片
参数常用选择
吴恩达 deep-learning 优化算法_第7张图片

学习率衰减


在使用mini-batch梯度下降时,如果使用固定的 α \alpha α,由于不同batch中存在一定的噪声,算法在到达最小值附近大范围内波动,并不会精确的收敛
如果逐渐的减小 α \alpha α,那么就会在最小值得一个较小的范围内摆动

常用的学习率衰减方法
decay_rate是超参数
吴恩达 deep-learning 优化算法_第8张图片
其他学习率衰减方法

局部最优的问题


通常梯度为0的点并不是吐中的全局最优点。代价函数的零梯度点通常是鞍点
梯度为0可能是凸函数也可能是凹函数,在2万维空间中,要想达到全局最优,2万个方向都需要是凹函数,但几率很小

平稳段是其导数长时间接近于0,如果处于平稳段,梯度会从平面从上向下下降,但由于梯度接近于0所以很慢,到达最低点后,由于左边或右边的随机扰动,才走出平稳段

  • 当训练较大的神经网络并且J被定义在较高的维度空间,不太可能陷于极差的局部最优点
  • 平稳段会是训练变得很慢,例如Adam算法,可以帮助算法尽早的走出平稳段

你可能感兴趣的:(吴恩达-深度学习笔记)