【机器学习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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/609403.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Spring源码分析】ResolvableType

【Spring源码分析】ResolvableType 参考 目录 文章目录 【Spring源码分析】ResolvableType一、ParameterizedType 参数化类型&#xff0c;即泛型&#xff1b;例如&#xff1a;List< T>、Map< K,V>等带有参数化的对象;二、GenericArrayType—— 泛型数组 泛型数组…

竖排文字识别原理与实践操作方法

在当今数字化时代&#xff0c;OCR&#xff08;Optical Character Recognition&#xff0c;光学字符识别&#xff09;技术已经广泛应用于各个领域&#xff0c;特别是在文档处理方面&#xff0c;OCR软件能够帮助用户快速将纸质文档转化为可编辑的电子文档。然而&#xff0c;对于竖…

day-31 给植物浇水 II

思路 用两个变量start和end记录浇水位置&#xff0c;当前剩余水量大于需要浇水量时&#xff0c;进行浇水并前进一步&#xff0c;否则需要返回加水&#xff08;即重新灌满水罐的次数1&#xff09; 解题方法 用while&#xff08;start<end&#xff09;进行上述循环&#xff0…

【Spark】Spark编程体验,RDD转换算子、执行算子操作(六)

Spark编程体验 项目依赖管理 <dependencies><dependency><groupId>org.scala-lang</groupId><artifactId>scala-library</artifactId><version>2.12.10</version></dependency><dependency><groupId>org.ap…

数据库干货:推荐一款非常好用的 SQL Server管理工具

目录 2.1 SQL 编码辅助 2.2 表设计器 2.3 数据库设计器 2.4 模式比较 2.5 文档生成工具 2.6 数据导出和数据导入 2.7 源代码控制 2.8 监控工具 2.9 索引管理器 2.10 T-SQL 调试器 2.11 单元测试 一、软件简介 dbForge Studio 2019-2022 for SQL Server是针对SQL Serv…

Codeforces Round 943 (Div. 3)----B题题解

本题是很显然的双指针算法&#xff0c;一直移动&#xff0c;直达不匹配为止 #include <iostream> #include <vector> #include <string> #include <algorithm> using namespace std;const int N 200010; int t,n,m; char a[N],b[N];int main(void) {…

【国产SSL】哪家SSL证书可以保证数据不出境,是在国内验签

随着网络安全的重视&#xff0c;网站安装SSL证书已经是标配了。但是为什么目前常见的SSL证书都是国外的&#xff1f;数据受国外掌控&#xff0c;安全吗&#xff1f;那么哪家国产品牌是可以保证数据不出境的呢&#xff1f; 为什么目前常见的SSL证书都是国外的&#xff1f; 原因…

AI图书推荐:给自媒体创作者的ChatGPT使用指南

你是否厌倦了花费数小时盯着空白屏幕&#xff0c;努力为你的内容想出新鲜点子&#xff1f;想要将你的写作提升到下一个水平&#xff1f;有了ChatGPT&#xff0c;你可以告别写作障碍、无休止的修订和浪费的时间。 在这本全面的指南中&#xff0c;你将学到关于ChatGPT你需要知道…

BigInteger和BigDecimal类

BigInteger 和 BigDecimal 介绍 应用场景 BigInteger适合保存比较大的整型BigDecimal适合保存精度更高的浮点型&#xff08;小数&#xff09; BigInteger 和 BigDecimal 常见方法 1&#xff0c;add 加2&#xff0c;subtract 减3&#xff0c;multiply 乘4&#xff0c;divide…

2024年人工智能威胁态势报告:有关AI系统及AI应用的安全风险与安全防护全景

HiddenLayer公司最新发布的《2024年AI威胁场景报告》中&#xff0c;研究人员阐明了AI相关漏洞及其对组织的影响&#xff0c;并为应对这些挑战的IT安全和数据科学领导者提供了指导建议。最后&#xff0c;报告还揭示了各种形式的AI安全控制的前沿进展。 关键数据 平均而言&#x…

1. 介绍 Matplotlib

目录 1. Matplotlib 介绍 2. Matplotlib 安装介绍 3. Matplotlib 使用介绍 本专栏想分享一下最近学到的深度学习知识&#xff0c;前期需要一些 Python 知识和数据分析知识&#xff0c;如果有同学没有了解&#xff0c;请先看下面两个专栏&#xff0c;谢谢&#xff01; Pytho…

Ubuntu 网卡启动及配置

文章目录 问题分析查看网卡信息启动网卡 配置网卡应用更改 参考 问题分析 打开虚拟机后发现没有网卡网络。 查看网卡信息 sudo ip link set ens33 up得到本机的所有网卡信息&#xff0c;例如我这边网卡为ens33 启动网卡 启动网卡后发现依然网卡没有IP地址。 配置网卡 u…

【异常检测】新版异常检测库anomalib的使用

every blog every motto: There’s only one corner of the universe you can be sure of improving, and that’s your own self. https://blog.csdn.net/weixin_39190382?spm1010.2135.3001.5343 0. 前言 异常检测库anomalib的使用 1. 前提 1.1 数据组织形式 说明&#…

畅享清凉乐趣,气膜水上乐园的五大优点—轻空间

夏日的到来&#xff0c;让我们一同探索气膜水上乐园所带来的独特魅力。这里有着不同于传统水上乐园的五大优点&#xff0c;让您尽情享受清凉乐趣&#xff0c;感受畅游的无限畅快&#xff01; 1. 全年无休&#xff0c;尽享水上乐趣 气膜水上乐园的特殊建造材料和创新设计&#x…

qml 调用 C++函数

1、新建一个类 1)继承自QObject类&#xff08;记得添加QObject头文件&#xff09; 2)增加Q_OBJECT宏 3&#xff09;在需要调用的类成员函数前添加Q_INVOKEABLE声明 注意1&#xff1a;如果没有2&#xff09;和3&#xff09;&#xff0c;运行后提示函数类型错误 注意2&#…

CTF数据安全大赛crypto题目解题过程

CTF-Crypto加密题目内容 下面是一个Base64加密的密文 bXNobnszODdoajM3MzM1NzExMzQxMmo4MGg0bDVoMDYzNDQzNH0原文链接&#xff1a; 数据安全大赛CTF-Crypto题目 - 红客网-网络安全与渗透技术 我们用Python写一个解密脚本&#xff1a; import base64 import time #base64加密…

外贸人绝不能错过的欧洲市场如何开发?

欧洲市场作为世界上消费较大且较高的市场之一&#xff0c;容量大且接纳性强&#xff0c;不少外贸企业都希望在欧洲市场上掘金。 今天&#xff0c;我们就一起来看外贸人绝不能错过的欧洲市场如何开发&#xff1f;现在的欧洲还有哪些机会&#xff1f; 一、欧洲基本情况及市场特点…

各种依赖注入和分层解耦

分层解耦 三层架构 controller:控制层&#xff0c;接收前端发送的请求&#xff0c;对请求进行处理&#xff0c;并响应数据 service:业务逻辑层&#xff0c;处理具体业务的逻辑 dao:数据访问&#xff0c;负责数据访问操作&#xff0c;包括数据的增、删、改、查 流程为&…

wsl2安装rancher并导入和创建k8s集群

环境准备 安装wsl2点击此文]ubuntu20.04安装docker 点击此文,安装完成后docker镜像仓库改成阿里云镜像加速地址.如果不熟请点击此文 docker 安装rancher 启动wsl,根据官方文档以root身份执行 sudo docker run -d --restartunless-stopped -p 80:80 -p 443:443 --privileged …
最新文章