【机器学习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日 18 8
4月2日 20 9 多云
4月3日 16 6 小雨
4月4日 14 5
4月5日 17 7
4月6日 22 10
4月7日 21 9 多云
4月8日 19 5 晴转多云
4月9日 12 3
4月10日 23 10
4月11日 15 6 小雨
4月12日 16 7
4月13日 19 8
4月14日 21 11 多云
4月15日 18 5
4月16日 14 3 阴转小雨
4月17日 17 6
4月18日 20 9
4月19日 13 4
4月20日 19 8 多云
4月21日 22 10
4月22日 16 5
4月23日 15 7 小雨
4月24日 18 6
4月25日 20 9
4月26日 13 4
4月27日 19 8 多云
4月28日 21 11
4月29日 16 5
4月30日 17 7 小雨转晴

画出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. TCP协议是安全的吗?

    2024-05-10 09:36:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-10 09:36:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-10 09:36:06       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-10 09:36:06       20 阅读

热门阅读

  1. 【48】Camunda8-Self-Managed部署

    2024-05-10 09:36:06       13 阅读
  2. HTTP调用API框架Forest

    2024-05-10 09:36:06       13 阅读
  3. MongoDB 从部署到掌握

    2024-05-10 09:36:06       14 阅读
  4. MongoDB聚合运算符:$toObjectId

    2024-05-10 09:36:06       13 阅读
  5. React 学习-4

    2024-05-10 09:36:06       11 阅读
  6. iOS-SSL固定证书

    2024-05-10 09:36:06       9 阅读
  7. 快速了解Vuex

    2024-05-10 09:36:06       9 阅读
  8. Vue3:视图渲染

    2024-05-10 09:36:06       8 阅读
  9. VMware 的三种网络模式

    2024-05-10 09:36:06       10 阅读
  10. flutter 在onError函数中不推荐使用“runZoned

    2024-05-10 09:36:06       9 阅读