指数加权平均算法

前言

最近在学习网易云课堂上学习吴恩达的deeplearning课程。在深度学习优化算法中,涉及到指数加权平均算法,这里做一个总结。

问题引入

加权平均数

假如我们现在有365天的温度,要求这365天的平均温度值。
这里写图片描述
Vaver=(θ1+θ2+θ3+...+θ365)÷365 V a v e r = ( θ 1 + θ 2 + θ 3 + . . . + θ 365 ) ÷ 365
指数加权平均是一种近似求平均的方法。

指数加权平均

vt=βvt1+(1β)θt v t = β v t − 1 + ( 1 − β ) θ t
- vt v t :代表的是最近的 11β 1 1 − β 天的平均温度值;
- θt θ t :代表的是第t天的温度值;
- β β :可调节的超参.

v0=0 v 0 = 0
v1=βv0+(1β)θ1 v 1 = β v 0 + ( 1 − β ) θ 1
v2=βv1+(1β)θ2 v 2 = β v 1 + ( 1 − β ) θ 2
v3=βv2+(1β)θ3 v 3 = β v 2 + ( 1 − β ) θ 3

设置不同的 β β 会是什么样子呢?

β=0.9 β = 0.9 ,代表的是最近10天的平均温度值,对应下图中的红线.
β=0.98 β = 0.98 ,代表的是最近50天的平均温度值,对应下图中的绿线.
β=0.5 β = 0.5 ,代表的是最近2天的平均温度值,对应下图中的黄线,可以看到这时候和每天的温度值基本就是吻合的.

这里写图片描述
这里写图片描述

我们把公式展开一下,看看这个算法是怎么作用于 θt θ t 的,以 v100 v 100 为例。

v100=0.1θ100+0.9v99 =0.1θ100+0.9(0.1θ99+0.9v98) = =0.1θ100+0.10.9θ99+0.10.92θ98++0.10.999θ1 v 100 = 0.1 θ 100 + 0.9 v 99   = 0.1 θ 100 + 0.9 ( 0.1 θ 99 + 0.9 v 98 )   = …   = 0.1 θ 100 + 0.1 ∗ 0.9 θ 99 + 0.1 ∗ 0.9 2 θ 98 + … + 0.1 ∗ 0.9 99 θ 1

到这里我们就很清楚实际上 vt v t 实际上是对每天温度的加权平均,时间越近,权重越大。 0.9100.35=1/e 0.9 1 0 ≈ 0.35 ≈= 1 / e ,假如我们以1/e为一个分界点,衰减到这个值就可以忽略不计,那当 β β 取值的时候,多久才可以衰减到1/e呢?
考虑以下函数:
f(β)=β1/(1β) f ( β ) = β 1 / ( 1 − β )
这里写图片描述
f(0.9)=0.9101/e f ( 0.9 ) = 0.9 10 ≈ 1 / e
这个时候需要10天可以衰减到1/e
f(0.98)=0.98501/e f ( 0.98 ) = 0.98 50 ≈ 1 / e
这个时候需要50天可以衰减到1/e
所以最开始说:
vt v t :代表的是第 11β 1 1 − β 天的温度值;

应用

  • 深度学习优化算法中应用。解决梯度下降算法中收敛过慢的问题。
  • CTR预估。最开始如果没有上FTRL和深度学习的时候可以用MA算法
  • 异常点平滑。美团外卖的收入监控报警系统中的hot-winter就是指数移动平均算法的升级。

参考

  • 网易云课堂深度学习课程
  • 外卖订单量预测异常报警模型实践

知乎ID: 码蹄疾
码蹄疾,毕业于哈尔滨工业大学。
小米广告第三代广告引擎的设计者、开发者;
负责小米应用商店、日历、开屏广告业务线研发;
主导小米广告引擎多个模块重构;
关注推荐、搜索、广告领域相关知识;
微信扫码关注

你可能感兴趣的:(机器学习)