指数加权移动平均

为什么在优化算法中使用指数加权平均 本文知识点: 什么是指数加权平均? 为什么在优化算法中使用指数加权平均? β 如何选择? 1. 什么是指数加权平均 指数加权平均(exponentially weighted averges),也叫指数加权移动平均,是一种常用的序列数据处理方式。 它的计算公式如下: 其中, θtθtθ_t:为第 t 天的实际观察值, VtVtV_t: 是要代替 θtθtθ_t 的估... 阅读详情

一.概述

指数加权移动平均(Exponential Weighted Moving Average),简称EMA。

  • 算术平均(权重相等)—>加权平均(权重不等)—>移动平均(大约是只取最近的N次数据进行计算)—> 批量归一化(BN)及各种优化算法的基础
  • EMA:是以指数式递减加权的移动平均,各数值的加权影响力随时间呈指数式递减,时间越靠近当前时刻的数据加权影响力越大

以伦敦的气温为例: 

v_{t} = \beta v_{t - 1} +(1-\beta )\theta_{t}

在计算时可视v_{t}大概是\frac{1}{(1 -\beta)}的每日温度

红色线:\beta=0.9    

              这是十天的平均值,比起绿线和黄线更好地平均了温度。

绿色线:\beta=0.98    

             这就是粗略平均了一下,过去50天的温度,这时作图可以得到绿线。这个高\beta值要注意几点,你得到的曲线要平坦一些,原因在于你多平均了几天的温度,所以这个曲线,波动更小,更加平坦,缺点是曲线进一步右移,因为现在平均的温度值更多,要平均更多的值,指数加权平均公式在温度变化时,适应地更缓慢一些,所以会出现一定延迟,因为当\beta=0.98,相当于给前一天的值加了太多权重,只有0.02的权重给了当日的值,所以温度变化时,温度上下起伏,当\beta较大时,指数加权平均值适应地更缓慢一些。

黄色线:\beta=0.5 

              这是平均了两天的温度。由于仅平均了两天的温度,平均的数据太少,所以得到的曲线有更多的噪声,有可能出现异常值,但是这个曲线能够更快适应温度变化。

二.理解EWA

1.到底需要平均多少天的温度

实际上{(0.9)}^{10}大约为0.35,这大约是\frac{1}{e},e是自然算法的基础之一。大体上说,如果有1-\varepsilon,在这个例子中,\varepsilon=0.1,所以$1-\varepsilon=0.9$,{(1-\varepsilon)}^{(\frac{1}{\varepsilon})}约等于\frac{1}{e},大约是0.34,0.35,换句话说,10天后,曲线的高度下降到\frac{1}{3},相当于在峰值的\frac{1}{e}。

又因此当\beta=0.9的时候,我们说仿佛你在计算一个指数加权平均数,只关注了过去10天的温度,因为10天后,权重下降到不到当日权重的三分之一。

相反,如果,那么0.98需要多少次方才能达到这么小的数值?{(0.98)}^{50}大约等于\frac{1}{e},所以前50天这个数值比\frac{1}{e}大,数值会快速衰减,所以本质上这是一个下降幅度很大的函数,你可以看作平均了50天的温度。因为在例子中,要代入等式的左边,\varepsilon=0.02,所以\frac{1}{\varepsilon}为50,我们由此得到公式,我们平均了大约\frac{1}{(1-\beta)}天的温度,这里\varepsilon代替了1-\beta,也就是说根据一些常数,你能大概知道能够平均多少日的温度,不过这只是思考的大致方向,并不是正式的数学证明。

2.实际执行

 将v_{0},v_{1},v_{2}等等写成明确的变量,不过在实际中执行的话,你要做的是,一开始将v初始化为0,然后在第一天使v:= \beta v + (1 - \beta)\theta_{1},然后第二天,更新v值,v: = \beta v + (1 -\beta)\theta_{2},以此类推,有些人会把v加下标,来表示v是用来计算数据的指数加权平均数

再说一次,但是换个说法,v_{\theta} =0,然后每一天,拿到第t天的数据,把v更新为v: = \beta v_{\theta} + (1 -\beta)\theta_{t}。

指数加权平均数公式的好处之一在于,它占用极少内存,电脑内存中只占用一行数字而已,然后把最新数据代入公式,不断覆盖就可以了,正因为这个原因,其效率,它基本上只占用一行代码,计算指数加权平均数也只占用单行数字的存储和内存,当然它并不是最好的,也不是最精准的计算平均数的方法。如果你要计算移动窗,你直接算出过去10天的总和,过去50天的总和,除以10和50就好,如此往往会得到更好的估测。但缺点是,如果保存所有最近的温度数据,和过去10天的总和,必须占用更多的内存,执行更加复杂,计算成本也更加高昂。

补充:

 

三.偏差修正 (Bias correction in exponentially weighted averages)

{​{v}{t}}=\beta {​{v}{t-1}}+(1-\beta ){​{\theta }_{t}} 

 如果你执行写在这里的公式,在\beta等于0.98的时候,得到的并不是绿色曲线,而是紫色曲线,它的起点比真实的要低很多,不能很好的估计起始位置的温度,此问题称为:冷启动问题,这是由于v_{\theta} =0造成的

解决方案 

将所有时刻的 EMA 除以1-\beta ^{t}后作为修正后的 EMA。当 t 很小时,这种做法可以在起始阶段的估计更加准确;当 t 很大时,偏差修正几乎没有作用,所以对原来的式子几乎没有影响。注意:我们一般取 β>=0.9,计算 t 时刻偏修正后的EMA时,用的还是 t−1时刻修正前的EMA。

四.EMA的优点及理解

1、EMA 的优点

它占用极少内存:计算指数加权平均数只占用单行数字的存储和内存,然后把最新数据代入公式,不断覆盖就可以了。

移动平均线能较好的反应时间序列的变化趋势,权重的大小不同起到的作用也是不同,时间比较久远的变量值的影响力相对较低,时间比较近的变量值的影响力相对较高。

2.EMA 在 Momentum 优化算法中应用的理解

假设每次梯度的值都是 g、γ=0.95 ,此时参数更新幅度会加速下降,当n达到150左右,此时达到了速度上限,之后将匀速下降(可参考一中的公式理解)。
假如,在某个时间段内一些参数的梯度方向与之前的不一致时,那么真实的参数更新幅度会变小;相反,若在某个时间段内的参数的梯度方向都一致,那么其真实的参数更新幅度会变大,起到加速收敛的作用。在迭代后期,由于随机噪声问题,经常会在收敛值附近震荡,动量法会起到减速作用,增加稳定性。 

史上最通俗易懂的EWMA(指数加权移动平均)的参数解释以及程序代码 在上述代码中,我们首先使用pandas中的Series数据类型生成了一组示例数据,然后调用ewm()函数对其进行计算并指定alpha参数为0.5。最后,我们输出了原始数据和EWMA数据以供参考。 阅读详情

相关推荐

【高效炼丹】指数移动平均(EMA):深度学习中的神器

EMA的本质是对历史数据进行加权平均,其中每个数据点的权重随着它距离当前时间点的远近而不断减小。这样做的好处是可以有效地平滑时间序列数据,使其更加连续和稳定。 在深度学习中,EMA被广泛应用于优化器的更新、模型参数的平均等方面,可以帮助提高模型的性能和泛化能力。同时,由于EMA的计算方式简单且易于实现,因此也是深度学习中常用的技巧之一。

luxu1220的博客 7712

指数加权移动平均(Exponential Weighted Moving Average)

一、EMA 简介 1、演化 算术平均(权重相等)—>加权平均(权重不等)—>移动平均(大约是只取最近的 N 次数据进行计算)—> 批量归一化(BN)及各种优化算法的基础 EMA:是以指数式递减加权的移动平均,各数值的加权影响力随时间呈指数式递减,时间越靠近当前时刻的数据加权影响力越大 2、公式及理解 vt=βvt−1+(1−β)θtvt=βvt−1+(1...

Man 5万+

指数加权移动平均模型_移动平均(Moving Average)

移动平均(Moving Average)滑动/移动平均(Moving Average, MA), 又称移动平均线,是技术分析中一种分析时间序列的常用工具。常见的移动平均包括简单移动平均(Simple Moving Average, SMA)、权重移动平均(Weight Moving Average, WMA)和指数移动平均(Exponential Moving Average,EMA)等,它们的主...

weixin_28887297的博客 4576

机器学习中指数加权移动平均线

在计算EWMA时,较早的观测值所占的权重逐渐减小,而较近期的观测值所占的权重逐渐增加。较大的α值意味着较近期的观测值权重更大,相对较远的观测值权重更小,从而使得指数加权移动平均值更加敏感于最近的数据变化。初始时,可以选择给定一个初始的指数加权移动平均值(例如,取时间序列的第一个观测值作为初始值),然后使用上述公式依次计算后续的指数加权移动平均值。其中,EMA(t)表示时间点t的指数加权移动平均值,X(t)表示时间点t的观测值,EMA(t-1)表示时间点t-1的指数加权移动平均值。

weixin_56460281的博客 3187

python实现技术指标(简单移动平均,加权移动平均线,指数移动平均线)

移动平均线是最常见的技术指标,它能够去除时间序列的短期波动,使得数据变得平滑,从而可以方便看出序列的趋势特征。常见的移动平均线有简单移动平均线,加权移动平均线,指数移动平均线。

cl2010abc的专栏 2681

Python 金融量化 均线系统交易策略专题(简单移动平均,加权移动平均,指数加权移动平均

print(‘提示:添加均线数量最多是五个!’)colors = [‘r’, ‘k’, ‘b’, ‘c’, ‘y’] # 设定5个颜色,也即关系到上边均线数量的上限。j = 0 # 用于颜色索引转换j += 1plt.title(name + ‘收盘数据附’ + days + ‘日MAV图’)plt.legend() # 增设图例plt.show()

2301_78416543的博客 1233

指数加权移动平均模型_【时间序列】从移动平均到指数平滑

移动平均移动平均法是用一组最近的实际数据来预测未来一期或几期内目标值的常用方法。移动平均法适用于即期预测,当时间序列不会快速变化,且不存在季节性因素的时候,移动平均法能有效地消除预测中的随机波动,对序列具有修匀或平滑作用。简单移动平均是下一期的预测值,代表移动窗口大小,代表的是前n期实际值公式浅显易懂缺点也显而易见,历史所有时间点对现在的影响权重都一样加权移动平均代表第t期的权重权重的选...

weixin_42353186的博客 3409

Python 金融量化 均线系统交易策略专题(简单移动平均,加权移动平均,指数加权移动平均,异同移动平均MACD等解读与绘图)

MACD指标由两线一柱组合起来形成。快速线为DIF,慢速线为DEA,柱状图为MACD。快速线DIF一般由12日指数加权移动平均值减掉26日指数加权移动平均值得到,慢速线DEA是DIF的9日指数加权移动平均值。柱状图MACD由快速线DIF与慢速线DEA作差得到。MACD指标可以反映出股票近期价格走势的能量和变化强度,通过快慢速线和柱状图来把握股票的买入点和卖出点。一般默认MACD的求值参数为12、26和9。

2401_84010402的博客 1170

EWMA指数加权移动平均

EWMA 是一种常用的平滑方法,它通过对数据点赋予指数加权的方式,去除噪声并提取出数据的长期趋势。通过调整平滑因子α,EWMA 可以灵活地控制对过去数据的依赖程度,适用于各种时间序列分析场景。在时间序列分析中,我们通常会遇到数据中存在趋势(趋势性变化)和季节性变化(周期性波动)的情况。为了使数据更加平稳,方便进一步的分析和建模,我们可以采取一些方法来去除这些趋势和季节性波动。去趋势(Trend Removal):使用移动平均,尤其是指数加权移动平均(EWMA)

2401_83026894的博客 5013

STM32/GD32以太网开发避坑指南:ZLG EPORTM模块调试实战(含YT8512H配置)

本文针对STM32/GD32平台使用ZLG EPORTM模块进行以太网开发时遇到的常见问题,提供了详细的调试实战指南。重点解析了从传统PHY驱动迁移到YT8512H芯片的核心步骤,包括软件复位延时、RMII时钟配置等关键陷阱,并分享了LWIP集成与稳定性验证的实用经验,帮助开发者高效避坑。

rice5的博客 1156

Python量化投资——mplfinance实现全功能动态交互式K线图(蜡烛图)【源码+详解】

特别鸣谢:@szFoxtech 同学热心提供了通过键盘操作平移和缩放K线图的代码!!在我的另一篇文章《七行代码利用tushare和mplfinance生成K线图》中,我介绍了两个非常好用的python库,结合起来可以非常方便容易地生成股票的K线图,对于使用python进行量化投资研究的朋友可谓是必备良方。如下图所示,仅仅几行代码,就能生成下面这张K线图:不过,仅仅使用七行代码生成的K线图,虽然看上去也像那么回事了,但是对于真正需要使用K线图作为研究工具或者可视化工具的朋友们来说,是远远不够的。在我看来,至少

m0_67390379的博客 9823

详解:指数加权平均(EWA)、移动加权平均(MWA)

指数加权平均(EWA)是一种特殊的加权平均方法,其权重随时间呈指数衰减,近期数据权重更大。核心参数β控制记忆长度,β越大平滑度越高但反应越慢。与移动加权平均(MWA)相比,EWA具有无限窗口、指数衰减权重和递推计算(O(1)复杂度)三大特性,是MWA的高效实现。EWA在深度学习优化器(如Momentum、Adam)中广泛应用,能有效平滑噪声并实现长期记忆。理解EWA与MWA的关系有助于把握现代优化算法的设计原理。

qq_62634342的博客 1669

Dify 从入门到熟悉100 天的学习大纲

理解 Dify 的核心概念,熟悉操作界面,并能创建简单的 AI 应用。祝你在这 100 天的旅程中学有所成,成为一名优秀的 AI 应用开发者!掌握生产环境部署、监控、调优,并关注 Dify 生态和前沿动态。探索多模态、Agent、API 集成、性能优化等高级主题。掌握工作流编排、高级提示词技巧、知识库优化等核心功能。

IT深耕十余载,大道之简 1728

指数加权移动平均法(EWMA)

指数加权移动平均法(EWMA) https://www.cnblogs.com/jiangxinyang/p/9705198.html ** 本文内容来自于吴恩达深度学习公开课 1、概述   加权移动平均法,是对观察值分别给予不同的权数,按不同权数求得移动平均值,并以最后的移动平均值为基础,确定预测值的方法。采用加权移动平均法,是因为观察期的近期观察值对预测值有较大影响,它更能反映近期变化...

feng98ren的专栏 4万+

GD32F103VBT6串口OTA升级保姆级教程:当硬件没留Boot0引脚时,我是如何用Keil和Ymodem搞定的

本文详细介绍了GD32F103VBT6在无Boot0引脚情况下的串口OTA升级方案,通过Keil工程改造和Ymodem协议实现可靠固件更新。文章涵盖Bootloader配置、APP工程调整、Ymodem传输优化等关键步骤,为嵌入式开发者提供了一套完整的解决方案,特别适用于封闭式设备的远程更新需求。

weixin_28744613的博客 179

将AD域服务从windows server 2008 R2 迁移到windows server 2019

添加一台windows 2019 的服务器并加入现有林的域中,并将角色升级为域控制器。然后迁移FSMO角色,使其成为PDC,然后降级旧DC,并提升域和林的功能级别。最后还要说下,Server 2008 R2我们还可以删除角色并退出当前域,这里就不做操作了。2)右键 mingling.com(我的域为mingling.com)--提升域级别功能。勾选 将域控制器添加到现有域,使用域管理员将DC2加入到现有的AD域。1)打开服务器管理器---工具---AD域和信任关系。2)运行域安装服务向导,选择下一步。

lionxam的博客 3657

指数移动加权平均

感谢阅读指数移动加权平均概念公式以及理解公式理解代碼实现 指数移动加权平均概念 我们最常见的算数平均指的是将所有数加起来除以数的个数,每个数的权重是相同的。加权平均指的是给每个数赋予不同的权重求得平均数。移动平均数,指的是计算最近邻的 N 个数来获得平均数。 公式以及理解 公式 其中: St 表示指数加权平均值; Yt 表示 t 时刻的值; β 调节权重系数,该值越大平均数越平缓。 理解 1.指数移动加权平均法,是指各数值的加权系数随时间呈指数式递减,越靠近当前时刻的数值加权系数就越大。 2.指数移动加权

GodGump的博客 1454

电压跟随器在ADC采样电路中的作用分析

电压跟随器在ADC采集系统中扮演关键角色,它能解决分压电路因ADC输入阻抗导致的电压误差问题。通过运放构成的电压跟随器可隔离信号源与负载,保证采样精度,尤其适用于高阻抗传感器或高速采样场景。工程应用中需注意运放带宽、轨对轨输出能力及抗干扰设计。合理使用电压跟随器能显著提升信号完整性,在复杂电子系统中成为不可或缺的"信号桥梁。

硬核科技 639

指数加权移动平均详解 附代码实现(全网之最)

文章目录概念公式理解引入吴恩达视频课的例子滑动平均为什么在测试过程中被使用代码实现 概念 滑动平均(exponential moving average),或者叫做指数加权平均(exponentially weighted moving average),可以用来估计变量的局部均值,使得变量的更新与一段时间内的历史取值有关。 加权移动平均法,是对观察值分别给予不同的权数,按不同权数求得移动平均值,并以最后的移动平均值为基础,确定预测值的方法。采用加权移动平均法,是因为观察期的近期观察值对预测值有较大

WGS. 1万+

Python爬虫 汽车之家 车型销量--参数分析与实现

【代码】Python爬虫 汽车之家 车型销量--参数分析与实现。

2201_76125393的博客 850

31、自然语言生成中的流畅度评估

本博客探讨了自然语言生成(NLG)中流畅度评估的重要性和方法。文章详细介绍了流畅度的定义及其影响因素,包括句法结构、词汇选择、语义一致性和段落组织。同时,讨论了自动评估和人工评估两种主要方法,并以机器翻译、自动摘要和对话系统为例分析了流畅度评估的应用场景。最后,文章提出了提升流畅度的技术策略以及未来研究方向,为相关领域的研究者和开发者提供了有价值的参考。

h9j8k7l6m5n的博客 271

python pandas ewm 一次指数加权移动平均

文章目录一、公式二、DataFrame.ewm() 参数comspanhalflifealphamin_periodsadjustignore_naaxis三、python 案例 一、公式 yt=(1−α)yt−1+αxt y_{t} = (1-\alpha) y_{t-1} + \alpha x _{t} yt​=(1−α)yt−1​+αxt​ 其中,xxx 是实际观测值 二、DataFrame.ewm() 参数 alpha、span、com、halflife 这四个参数必须选一指定 DataFram

small__roc的博客 1万+

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

解释:指数加权移动平均(EWMA)

特点描述权重指数衰减越旧的数据权重越小实时更新只依赖当前值和上一个 EWMA,适合在线计算响应迅速可控通过α\alphaα控制对突变的响应程度常用于过程监控比如在质量控制图(如 EWMA控制图)中监测变量是否偏离控制线。

qlkaicx的博客 2705

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

EWMA 指数加权移动平均 模型

Exponentially Weighted Moving Average(EWMA)指数加权移动平均是一种常用的序列数据处理方式,如下: 在时间 t, 根据实际的观测值(或量测值)我们可以求取 EWMA(t)如下: EWMA(t ) = λY(t)+ ( 1-λ) EWMA(t-1) for t = 1, 2, ..., n. * EWMA(t):t时刻的估计值  *

x_i_y_u_e的专栏 2万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

上一篇: python之requests库
下一篇: 动量梯度下降法(Gradient descent with Momentum)
bestrivern
博客等级 码龄9年 244粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值