指数加权平均(EWA)

平时跑模型只知道直接上Adam Optimizer,但具体原理却不甚理解,于是把吴恩达老师的深度学习课翻出来看,记录一下关于动量优化算法的基础-EMA相关内容。

指数加权平均的概念

平时我们计算平均值,就是简单地将所有数据加起来之后与数据总数求商。对于一部分数据来说,这样的平均值以及可以反应数据的趋势,例如某单位的平均年龄,身高等。
但是对于某些数据来说,就不能简单取这样的平均值来观察数据特征了,吴恩达老师课上举的气温就是一个很好的例子,天气跟所属的季节相关性很大,也就是应当更加关注近期的数据。
指数加权平均值就是这样一种加权均值的计算方法,只不过其权值呈现出指数衰减的趋势。
以课上例子为例,给出计算方法:
在这里插入图片描述
v 0 = 0 v_0 = 0 v0=0
v t = β v t − 1 + ( 1 − β ) θ t v_t = \beta v_{t-1} + (1 - \beta)\theta_t vt=βvt1+(1β)θt

其中, θ t \theta_t θt代表当天气温, β ∈ [ 0 , 1 ] \beta \in[0,1] β[0,1]是可调的超参数,稍后就能看到它的作用。 v t v_t vt代表到当天为止的温度均值。图中,蓝色散点代表真实温度,红色曲线由计算的均值构成。可以看到拟合得还是不错的。

按照递推式,计算前几项:
v 1 = β v 0 + ( 1 − β ) θ 1 v_1 = \beta v_0 +(1-\beta) \theta_1 v1=βv0+(1β)θ1
v 2 = β v 1 + ( 1 − β ) θ 2 v_2 = \beta v_1 +(1-\beta) \theta_2 v2=βv1+(1β)θ2
v 3 = β v 2 + ( 1 − β ) θ 3 v_3 = \beta v_2 + (1-\beta) \theta_3 v3=βv2+(1β)θ3

将递推展开,代入前面项:

v 1 = ( 1 − β ) θ 1 v_1 = (1-\beta)\theta_1 v1=(1β)θ1
v 2 = β ( 1 − β ) θ 1 + ( 1 − β ) θ 2 v_2 = \beta(1-\beta)\theta_1 + (1-\beta)\theta_2 v2=β(1β)θ1+(1β)θ2
v 3 = β 2 ( 1 − β ) θ 1 + β ( 1 − β ) θ 2 + ( 1 − β ) θ 3 v_3 = \beta^2(1-\beta)\theta_1 + \beta(1-\beta)\theta_2 + (1-\beta)\theta_3 v3=β2(1β)θ1+β(1β)θ2+(1β)θ3

还可以一直写下去,但这里已经可以看到,每一天的预测值都是到当天为止的加权平均,并且其权值随着天数的增加呈指数衰减。 β \beta β实际上可以看作是衰减的速度,其值越小则衰减得越快,也就代表着均值越依赖于最近的值而不是早期的值。

在这里插入图片描述
上图蓝色曲线为 β = 0.95 \beta=0.95 β=0.95的指数衰减,橙色为 β = 0.9 \beta = 0.9 β=0.9,绿色为 β = 0.5 \beta=0.5 β=0.5,横轴是时间轴,可以看到,在第一百天绿色的曲线几乎只关注到了前十天左右的数据,而在往前的数据权重近乎为零。所以实际上随着序列增长,指数加权平均总是关注一个局部的数据。
吴恩达也给出了一个估计公式。仍以气温为例,某天的气温可以看做最近 1 1 − β \frac{1}{1-\beta} 1β1天的均值。

总的来说,EMA让当前状态综合前面的状态的累积且重点关注最近的数据。是带有动量的优化算法的基础思想。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值