花书+吴恩达深度学习(七)优化方法之基本算法(Momentum, Nesterov, AdaGrad, RMSProp, Adam)

目录

0. 前言

1. 指数加权平均(exponentially weighted averages)

2. Momentum 动量

3. Nesterov 动量

4. AdaGrad

5. RMSProp

6. Adam


如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~

花书+吴恩达深度学习(五)正则化方法(防止过拟合)

花书+吴恩达深度学习(六)优化方法之 Mini-batch(SGD, MBGD, BGD)

花书+吴恩达深度学习(七)优化方法之基本算法(Momentum, Nesterov, AdaGrad, RMSProp, Adam)

花书+吴恩达深度学习(八)优化方法之 Batch normalization

花书+吴恩达深度学习(九)优化方法之二阶近似方法(牛顿法, CG, BFGS, L-BFGS)

0. 前言

在使用 Mini-batch 的时候,通常梯度估计的方向不直接指向最小值点,容易造成曲折波动的路线。

为了防止这种路线,改善梯度估计的方向,可对反向传播作修改。

如下图所示(图源:深度学习),黑色路线是未修改的梯度估计方向,红色路线是修改后的梯度估计方向:

1. 指数加权平均(exponentially weighted averages)

假设,V_t 表示前 t 个值的和,\theta_t 表示第 t 个值,则指数加权平均表示为:

V_t=\beta V_{t-1}+(1-\beta)\theta_t

根据 \beta 的不同,V_t 表示大约前 \frac{1}{1-\beta} 个数的平均。

被称为指数的原因是,表达式递归展开,从 0 到 t 的权重表现为指数的形式:

V_t=(1-\beta)\theta_t+(1-\beta)\beta\theta_{t-1}+(1-\beta)\beta^2\theta_{t-2}+...+(1-\beta)\beta^t\theta_{0}

因初始化 V_0=0 ,所以造成 V_1 等几个初始点会较小,可进行偏差修正

V_t=\frac{V_t}{1-\beta^t}

但是这种方法不常用,通常可以接受在开始阶段的误差,随着迭代更新,误差会逐渐消失。

2. Momentum 动量

动量的方法旨在加速学习,特别是处理高曲率、小但一致的梯度,或是带噪声的梯度。

动量算法通过指数加权平均,累计了之前的梯度,调整了梯度估计的方向。

注:\beta 的取值一般为 0.5,0.9,0.99 。

3. Nesterov 动量

Nesterov 和 Momentum 的区别在于,先施加当前的累计速度,然后再计算梯度。

但是,在 Mini-batch 的情况下,这并没有改进收敛率。

4. AdaGrad

具有损失最大偏导的参数相应地有一个快速下降的学习率,而具有小偏导的参数在学习率上有相对较小的下降。

这可防止下降过快,或者在平坦区域下降过慢。

但是从训练开始时累计梯度平方会导致有效学习率过早和过量的减小。

5. RMSProp

RMSProp 修改 AdaGrad 以在非凸设定下效果更好,改变梯度累计为指数加权平均。

RMSProp 已被证明是一种有效且实用的深度神经网络优化算法。

注:\beta 的取值一般推荐为 0.999,\epsilon 的取值一般推荐为 10^{-8} 。

6. Adam

Adam 全称是 Adaptive Moments Estimation 。

Adam 是结合了 Momentum 和 RMSProp 的算法。


如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值