一、EMA 简介

1、演化

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

2、公式及理解

  • vt=βvt−1+(1−β)θtvt=βvt−1+(1−β)θtv_t = \beta v_{t-1} + (1 - \beta)\theta_{t},公式中 θtθt\theta_{t} 为 t 时刻的实际温度;系数 ββ\beta 表示加权下降的快慢,值越小权重下降的越快;vtvtv_t 为 t 时刻 EMA 的值。
  • 当 v0=0v0=0v_0 = 0 时,可得:vt=(1−β)(θt+βθt−1+β2θt−2+...+βt−1θ1)vt=(1−β)(θt+βθt−1+β2θt−2+...+βt−1θ1)v_t = (1-\beta) (\theta_{t}+\beta\theta_{t-1}+\beta^{2}\theta_{t-2}+ ... +\beta^{t-1}\theta_{1}),从公式中可以看到:每天温度(θθ\theta)的权重系数以指数等比形式缩小,时间越靠近当前时刻的数据加权影响力越大。
  • 在优化算法中,我们一般取 β>=0.9β>=0.9\beta >= 0.9,而 1+β+β2+...+βt−1=1−βt1−β1+β+β2+...+βt−1=1−βt1−β1 + \beta + \beta^{2} + ... + \beta^{t-1} = \frac{1-\beta^{t}}{1-\beta},所以当 t 足够大时 βt≈0βt≈0\beta^{t} \approx 0,此时便是严格意义上的指数加权移动平均。
  • 在优化算法中,我们一般取 β>=0.9β>=0.9\beta >= 0.9,此时有 β11−β≈1e≈0.36β11−β≈1e≈0.36\beta^{\frac{1}{1-\beta}} \approx \frac{1}{e} \approx 0.36,也就是说 N=11−βN=11−βN = \frac{1}{1-\beta} 天后,曲线的高度下降到了约原来的 1313\frac{1}{3},由于时间越往前推移 θθ\theta 权重越来越小,所以相当于说:我们每次只考虑最近(latest) N=11−βN=11−βN = \frac{1}{1-\beta} 天的数据来计算当前时刻的 EMA,这也就是移动平均的来源。

二、EMA 偏差修正

  • 在 β=0.98β=0.98\beta = 0.98 时,理想状况下,我们应该能得到绿色曲线,然而现实我们得到的却是紫色曲线,它的起点比真实的要低很多,不能很好的估计起始位置的温度,此问题称为:冷启动问题,这是由于 v0=0v0=0v_0 = 0 造成的。
  • 解决方案:将所有时刻的 EMA 除以 1−βt1−βt1 - \beta^{t} 后作为修正后的 EMA。当 t 很小时,这种做法可以在起始阶段的估计更加准确;当 t 很大时,偏差修正几乎没有作用,所以对原来的式子几乎没有影响。注意:我们一般取 β>=0.9β>=0.9\beta >= 0.9,计算 t 时刻偏修正后的 EMA 时,用的还是 t−1t−1t-1 时刻修正前的EMA。

三、EMA 的优点及其应用理解

1、EMA 的优点

  • 它占用极少内存:计算指数加权平均数只占用单行数字的存储和内存,然后把最新数据代入公式,不断覆盖就可以了
  • 移动平均线能较好的反应时间序列的变化趋势,权重的大小不同起到的作用也是不同,时间比较久远的变量值的影响力相对较低,时间比较近的变量值的影响力相对较高

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

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

四、参考资料

1、Coursera:Exponentially-Weighted-Moving-Averages
2、Gluon:优化算法中关于 EMA 的讲解
3、优化算法之指数移动加权平均

指数加权移动平均(Exponential Weighted Moving Average)相关推荐

  1. EWMA之——EWMA指数加权移动平均模型的Java实现

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/79141435 具体代码如下: package com.lyz.storm.ewma ...

  2. EWMA 指数加权移动平均 模型

    Exponentially Weighted Moving Average(EWMA)指数加权移动平均是一种常用的序列数据处理方式,如下: 在时间 t, 根据实际的观测值(或量测值)我们可以求取 EW ...

  3. 神经网络基础--指数加权移动平均ewma

    因为神经网络中的常用优化算法都会涉及到指数加权移动平均(exponential weighted moving average, ewma:也可称为exponential moving average ...

  4. EWMA(Exponentially Weighted Moving Average)指数加权移动平均

    原博:http://blog.csdn.net/sony_zhang/article/details/7256646 EWMA(Exponentially Weighted Moving Averag ...

  5. 信号采样基本概念 —— 5. 加权移动平均滤波(Weighted Moving Average Filtering)

    在上一章,我们介绍了使用滑动窗口以及平均值denoising,那么既然可以使用平均值denoising,那么也必然可以用权重替代均值进行denoising. 文章目录 什么是加权移动平均滤波(Weig ...

  6. java 移动平均_EWMA之——EWMA指数加权移动平均模型的Java实现

    具体代码如下: package com.lyz.storm.ewma; import java.io.Serializable; /** * 实现指数移动平均值计算 * 实现中使用了流式风格的buil ...

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

    捕捉趋势最普遍的方法为移动平均线,根据求平均的方式不同,移动平均数又可分为简单移动平均数(Simple Moving Average, SMA),加权移动平均数(Weighted Moving Ave ...

  8. EWMA 指数加权移动平均

    EWMA(Exponentially Weighted Moving Average)指数加权移动平均,是一种常用的序列数据处理方式. 在t时刻,根据实际的观测值可以求取EWMA(t):EWMA(t) ...

  9. java判断均线_EWMA:EWMA指数加权移动平均模型的Java实现

    具体代码如下: package com.lyz.storm.ewma; import java.io.Serializable; /** * 实现指数移动平均值计算 * 实现中使用了流式风格的buil ...

  10. 移动平均(Moving Average)

    作者:石川 链接:https://zhuanlan.zhihu.com/p/38276041 来源:知乎 已获得作者同意转载. 1 前言 移动平均(Moving Average,MA),又称移动平均线 ...

最新文章

  1. 《Arduino开发实战指南:机器人卷》一2.1 数字I/O口的操作函数
  2. Tomcat - ClassFormatException的解决方法
  3. 玩转Linux:常用命令实例指南
  4. 搭建WEB服务详解(二)
  5. 如何让控件span的id调用ajax_微服务架构之「 调用链监控 」
  6. 超实用!19条Android平台设计规范
  7. Twitch未来五年的视频编码战略:从H.264到 AV1
  8. 实现灵活的IT架构的三个要点
  9. 多份word合并 保留不同页眉_如何给Word设置不同页眉和页脚?
  10. Flink – submitJob
  11. C# XML加载屏蔽注释 忽略注释的加载
  12. 常用算法案例之贪心法(C语言)
  13. B站 (哔哩哔哩) 泄露源码中的有趣片段(彩蛋)
  14. 5.10300 - Ecological Premium
  15. CentOS官网下载所需版本的CentOS版本方法
  16. 没看到能打的,遍历目录并读取目录下的文件列表。(C语言,SDK)
  17. [ERP/鼎捷E10]VMI业务在E10中的处理
  18. jQuery TreeGrid
  19. Android 关于佳博和汉印蓝牙热敏打印机开发
  20. MNL——多项Logit模型学习笔记(三)二项Logit模型、Gumble分布以及Logistic分布

热门文章

  1. 北京科技大学计算机考研
  2. 环形10个树洞兔子c语言设计,[阅读打卡]I am a Bunny+提高孩子的欣赏能力我是一只小兔子,我的名字叫尼古拉斯 我住在一个树洞里面 在春天的时候,我喜欢看美丽的花儿,有...
  3. The supplied data appears to be in the Office 2007+ XML. You are calling the part of POI that deals
  4. 国内外优秀计算机视觉团队汇总(2020)
  5. adbdriver的安装
  6. OTA三种差分算法安装使用。bsdiff,hdiffpatch,xdelta3
  7. 属牛的女孩取名:优美文雅、声声入耳的女孩名字
  8. 华为手撕代码+剑指offer总结 (python+c语言)
  9. CAA-几何图形集下直接添加参数
  10. View是什么,什么是View?