指数加权平均算法

时间:2024-04-01 20:47:09

前言

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

问题引入

加权平均数

假如我们现在有365天的温度,要求这365天的平均温度值。
指数加权平均算法
Vaver=(θ1+θ2+θ3+...+θ365)÷365
指数加权平均是一种近似求平均的方法。

指数加权平均

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

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

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

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

指数加权平均算法
指数加权平均算法

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

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

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

应用

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

参考

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