【机器学习300问】80、指数加权平均数是什么?

        严格讲指数加权平均数并不是机器学习中的专有知识,但他是诸多梯度下降优化算法的基础,所有我打算专门写一篇文章来介绍这种计算平均数的方法。还是老规矩,首先给大家来两个例子感受一下什么是指数加权平均数。

一、两个例子感性理解什么是指数加权平均数

(1)记录体重平均值

        假设你每天都在记录你的体重,想要了解一段时间内的体重变化趋势。传统的平均方法会把所有天数的体重加起来再除以天数,得到一个“平均水平”。但这种方法忽略了最近体重变化的重要性。

        指数加权平均就像是给你的体重记录本添上了一个“记忆偏好”。它更看重最近的数据,对过去的数据给予逐渐减小的重视。就像是你在回顾体重记录时,对于昨天的体重记得很清楚,上周的体重记忆就开始模糊了,而一个月前的体重就只留下个大概印象。

(2)拍照动态模糊

        假设你拿着一个相机在拍摄一段长时间的动态场景,如果你希望既能捕捉到最近发生的动作,又不完全丢弃过去的画面,你可能会选择使用一个“动态模糊”效果。在这个效果下,最近的画面是清晰的,而过去的且渐趋远去的画面则越来越模糊。

二、指数加权平均数的定义

        指数加权平均数(Exponential Weighted Moving Average,EWMA)在数学上是这样定义的。设v_t为在时间点t的指数加权平均数,而x_t为在时间点t的实际值。EWMA通过以下递归公式计算得出:

v_t = \beta \cdot v_{t-1} + (1 - \beta) \cdot x_t

在这个公式中:

符号描述
\beta一个介于 0 和 1 之间的权重衰减因子(也称为平滑因子),它决定了过去观测值的影响程度。\beta越接近 1,之前所有数值的影响就越“长命”,平均数就越平滑;\beta越小,之前数值的影响就迅速减少,使得EWMA对最近的变化更加敏感。
v_{t-1}前一时刻的EWMA值。
x_t当前时刻t的实际数值。
v_t
当前时刻t的EWMA值。

        这种计算方式特别适用于处理时序数据,用于平滑短期波动,并能够更快地捕捉到长期趋势的变化。在时间序列分析、金融市场分析和深度学习中的某些优化算法,比如梯度下降的动量方法中,指数加权平均数被广泛使用。

三、实际拿个例子计算一下

某城市4月份30天气温数据如下表: 

日期最高温度(℃)最低温度(℃)天气状况
4月1日188
4月2日209多云
4月3日166小雨
4月4日145
4月5日177
4月6日2210
4月7日219多云
4月8日195晴转多云
4月9日123
4月10日2310
4月11日156小雨
4月12日167
4月13日198
4月14日2111多云
4月15日185
4月16日143阴转小雨
4月17日176
4月18日209
4月19日134
4月20日198多云
4月21日2210
4月22日165
4月23日157小雨
4月24日186
4月25日209
4月26日134
4月27日198多云
4月28日2111
4月29日165
4月30日177小雨转晴

画出30天最高温度的散点图,X轴是日期,Y轴是最高温度:

第1天:

  • 最高温度:18℃
  • 由于是第一天,我们将v_1设为当天的实际最高温度:v_1 = x_1 = 18

第2天:

  • 最高温度:20℃
  • 使用EWMA计算公式,以v_1作为前一日的EWMA值,和x_2作为最高温度:v_2 = \beta \cdot v_1 + (1 - \beta) \cdot x_2= 0.9 \cdot 18 + 0.1 \cdot 20=16.2 + 2=18.2

第3天:

  • 最高温度:16℃
  • 类似地,我们使用v_2作为前一日的EWMA值,和x_3作为最高温度:v_3 = \beta \cdot v_2 + (1 - \beta) \cdot x_3= 0.9 \cdot 18.2 + 0.1 \cdot 16= 16.38 + 1.6=17.98

四、偏差修正

(1)怎么会出现偏差?

        先把公式摆出来:v_t = \beta \cdot v_{t-1} + (1 - \beta) \cdot x_t

        还是拿上面的天气温度举例,如果我们想算v_1但它就是第一天,它的前一天v_0数据是不存在的,通常会令v_0=0,那么根据公式得出的答案是:v_1 = \beta \cdot v_{0} + (1 - \beta) \cdot x_1=0.9\times 0+0.1\times 18=1.8

显然和真实的温度之间存在偏差!

(2)如何进行偏差修正?

        令v_t=\frac{v_t}{1-\beta^t},这样一来指数加权平均数的公式就成了\frac{v_t}{1-\beta^t}= \beta \cdot v_{t-1} + (1 - \beta) \cdot x_t

        原理是因为随着t的增大,\beta^t越来越大,\frac{v_t}{1-\beta^t}分母会越来越趋近于1,这样一来偏差修正就只在最一开始起作用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值