指数加权平均与动量梯度下降法

指数加权平均(Exponentially Weighted averages)

在这里插入图片描述

上 图 的 v t 就 是 加 权 平 均 数 , 1 1 − β 表 示 其 代 表 多 少 天 的 加 权 平 均 数 上图的v_{t}就是加权平均数, \frac{1}{1-\beta}表示其代表多少天的加权平均数 vt1β1
其 由 来 就 是 指 数 加 权 经 过 这 么 1 1 − β 天 叠 加 后 已 经 接 近 于 0 了 , 后 面 就 无 意 义 了 其由来就是指数加权经过这么\frac{1}{1-\beta}天叠加后已经接近于0了,后面就无意义了 1β10

β 取 中 间 的 值 , 例 如 上 面 所 取 的 0.9 , 会 更 利 于 求 平 均 值 \beta取中间的值,例如上面所取的0.9,会更利于求平均值 β0.9

理解指数加权平均

在这里插入图片描述

例 如 , 对 于 V 100 , 我 们 设 置 β = 0.1 那 么 对 于 下 面 的 式 子 来 说 例如,对于V_{100},我们设置\beta=0.1 那么 对于下面的式子来说 V100β=0.1

V 100 = 0.1 θ 100 + 0.1 × 0.9 ⋅ θ 99 + 0.1 × ( 0.9 ) 2 ⋅ θ 98 + 0.1 × 0. 9 3 ⋅ θ 97 V_{100}=0.1\theta_{100}+0.1×0.9·\theta_{99}+0.1×(0.9)^{2}·\theta_{98}+0.1×0.9^{3}·\theta_{97} V100=0.1θ100+0.1×0.9θ99+0.1×(0.9)2θ98+0.1×0.93θ97

可以看到,其样式就是一个指数加权形式的平均数计算

实现指数加权平均数

在这里插入图片描述

我们为什么要使用指数加权平均数?

其编写代码过程中在计算机内存中只占据一行代码的内存,不同于传统的平均数计算方法,需要将所有数相加除以size,这种计算方式对于一个大型机器学习项目来说更加高效.

指数加权平均的偏差修正(bias correction)

在这里插入图片描述
在这里插入图片描述

当我们使用这个公式去计算时

前两天的值算出来会很小很小 V 2 = 0.0196 θ 1 + 0.02 θ 2 V2=0.0196\theta_1+0.02\theta_2 V2=0.0196θ1+0.02θ2

很明显这是不符合实际的

所以我们需要想办法对初期的平均值进行修正 于是我们想到了下面

在这里插入图片描述

将 V t 除 以 1 − β t , 这 样 不 仅 解 决 了 前 期 偏 差 的 问 题 , 而 且 在 后 期 , 随 着 t 的 增 大 1 − β t 会 接 近 于 0 , 从 而 没 有 影 响 将V_t除以1-\beta^t,这样不仅解决了前期偏差的问题,而且在后期,随着t的增大 1-\beta^t会接近于0,从而没有影响 Vt1βtt1βt0

所以,现在我们又有了一个新的超参数 β.

动量梯度下降法(Momentum gradient descent)

其与传统的batch gradient descent 的区别就在于 在反向传播的过程中

我们还需要计算一次梯度的加权平均数

再进行批梯度下降
在这里插入图片描述

其优化体现每次梯度下降时纵轴的振幅变小了(因为我们对梯度求了指数加权平均数,大家可以对照上面上个二维图像,对有上有下求平均数)也就是降低了noisy,而横轴就算计算平均值也没有太大的影响,从而使得整个优化效率或者说速度 大大提升了.

在这里插入图片描述
图片来自李宏毅教授的书
在这里插入图片描述
dW可以被理解为加速度
可见 如果我们超参数β取为0.9 1-β就是0.1
那么每一次梯度计算都会考虑前面累积的梯度值,且其权重占据0.9
而这一次经过反向传播计算出的梯度dw所占的权重只有0.1
这样就保证了整个优化方向的稳定性
如果dw和原来方向不同 那么也影响不大
如果dw和原来积累方向相同 那么就又进一步加强积累 也正反馈于后面的积累方向的准确性

几个实现的细节:

  1. 对于超参数β 一般默认都取值为0.9

  2. 所以,对于这个新的算法,梯度下降需要调整的超参数就成为了两个 learning rate α和 权重 β

  3. 初始化对于新的梯度V_dw和V_db其都是元素为0的矩阵 size与dw db相同 也与W相同

  4. 对于Momentum gradient descent,可以不考虑偏差修正(bias correction)的问题,因为我们一般设置β值为0.9,其代表我们每次考虑10个梯度样本,所以就不太需要考虑初始状态了.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值