平时跑模型只知道直接上Adam Optimizer,但具体原理却不甚理解,于是把吴恩达老师的深度学习课翻出来看,记录一下关于动量优化算法的基础-EMA相关内容。

指数加权平均的概念

平时我们计算平均值,就是简单地将所有数据加起来之后与数据总数求商。对于一部分数据来说,这样的平均值以及可以反应数据的趋势,例如某单位的平均年龄,身高等。
但是对于某些数据来说,就不能简单取这样的平均值来观察数据特征了,吴恩达老师课上举的气温就是一个很好的例子,天气跟所属的季节相关性很大,也就是应当更加关注近期的数据。
指数加权平均值就是这样一种加权均值的计算方法,只不过其权值呈现出指数衰减的趋势。
以课上例子为例,给出计算方法:

v0=0v_0 = 0v0​=0
vt=βvt−1+(1−β)θtv_t = \beta v_{t-1} + (1 - \beta)\theta_tvt​=βvt−1​+(1−β)θt​

其中,θt\theta_tθt​代表当天气温,β∈[0,1]\beta \in[0,1]β∈[0,1]是可调的超参数,稍后就能看到它的作用。vtv_tvt​代表到当天为止的温度均值。图中,蓝色散点代表真实温度,红色曲线由计算的均值构成。可以看到拟合得还是不错的。

按照递推式,计算前几项:
v1=βv0+(1−β)θ1v_1 = \beta v_0 +(1-\beta) \theta_1v1​=βv0​+(1−β)θ1​
v2=βv1+(1−β)θ2v_2 = \beta v_1 +(1-\beta) \theta_2v2​=βv1​+(1−β)θ2​
v3=βv2+(1−β)θ3v_3 = \beta v_2 + (1-\beta) \theta_3v3​=βv2​+(1−β)θ3​

将递推展开,代入前面项:

v1=(1−β)θ1v_1 = (1-\beta)\theta_1v1​=(1−β)θ1​
v2=β(1−β)θ1+(1−β)θ2v_2 = \beta(1-\beta)\theta_1 + (1-\beta)\theta_2v2​=β(1−β)θ1​+(1−β)θ2​
v3=β2(1−β)θ1+β(1−β)θ2+(1−β)θ3v_3 = \beta^2(1-\beta)\theta_1 + \beta(1-\beta)\theta_2 + (1-\beta)\theta_3v3​=β2(1−β)θ1​+β(1−β)θ2​+(1−β)θ3​

还可以一直写下去,但这里已经可以看到,每一天的预测值都是到当天为止的加权平均,并且其权值随着天数的增加呈指数衰减。β\betaβ实际上可以看作是衰减的速度,其值越小则衰减得越快,也就代表着均值越依赖于最近的值而不是早期的值。


上图蓝色曲线为β=0.95\beta=0.95β=0.95的指数衰减,橙色为β=0.9\beta = 0.9β=0.9,绿色为β=0.5\beta=0.5β=0.5,横轴是时间轴,可以看到,在第一百天绿色的曲线几乎只关注到了前十天左右的数据,而在往前的数据权重近乎为零。所以实际上随着序列增长,指数加权平均总是关注一个局部的数据。
吴恩达也给出了一个估计公式。仍以气温为例,某天的气温可以看做最近11−β\frac{1}{1-\beta}1−β1​天的均值。

总的来说,EMA让当前状态综合前面的状态的累积且重点关注最近的数据。是带有动量的优化算法的基础思想。

指数加权平均(EWA)相关推荐

  1. 通俗解释指数加权平均

    前言 在深度学习优化算法中,我们会涉及到指数加权平均这个概念,下面我将通过例子来一步一步引出这个概念. 平均数求法 比如我们现在有100天的温度值,要求这100天的平均温度值. 24,25,24,26 ...

  2. 2.2.2 指数加权平均

    指数加权平均 下面介绍一下比梯度下降更快的算法,不过在这之前,你要了解指数加全平均. 如1和2所示,指数加权实际上就是设置一个权值.就像下图所示 通过 11−β11−β \frac{1}{1-\bet ...

  3. 2.5 指数加权平均的偏差修正-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 2.4 理解指数加权平均 回到目录 2.6 动量梯度下降法 指数加权平均的偏差修正 (Bias Correction in Exponentially Weighted Av ...

  4. 2.4 理解指数加权平均-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 2.3 指数加权平均 回到目录 2.5 指数加权平均的偏差修正 理解指数加权平均 (Understanding Exponentially Weighted Averages ...

  5. 2.3 指数加权平均-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 2.2 理解 mini-batch 梯度下降法 回到目录 2.4 理解指数加权平均 指数加权平均 (Exponentially Weighted Averages) 我想向你 ...

  6. 指数加权平均与RmsProp(转载+自己总结)以及Adagrad

    一.指数加权平均(先说用途:抗噪声拟合) 假设我们有一年365天的气温数据θ1,θ2,...,θ365\theta_1,\theta_2,...,\theta_{365}θ1​,θ2​,...,θ36 ...

  7. 改善深层神经网络:超参数调整、正则化以及优化——2.5 指数加权平均的偏差修正

    当β=0.98\beta=0.98β=0.98时,其实预测曲线是图中的紫色线,在一开始的时候由于v0=0v_0=0v0​=0,导致前面部分的值低于预期的实际值,为了解决这个问题,加入了偏差修正. vt ...

  8. 改善深层神经网络:超参数调整、正则化以及优化——2.3指数加权平均

    指数加权平均:vt=βvt−1+(1−β)θtv_t=\beta v_{t-1}+(1-\beta)\theta_tvt​=βvt−1​+(1−β)θt​: 当β=0.9\beta=0.9β=0.9时 ...

  9. 移动指数加权平均笔记

    转载于:https://www.cnblogs.com/cloud-ken/p/7723755.html 举个例子,对于图中英国的温度数据计算移动平均值或者说是移动平均值(Moving average ...

最新文章

  1. 学会这几个公式技巧,瞬间你就是高手
  2. ASP.NET Core 动作结果 - ASP.NET Core 基础教程 - 简单教程,简单编程
  3. SAP Spartacus cypress集成测试执行失败的一些常见原因
  4. SAP云平台与企业数字型转型
  5. 一对一,一对多,多对多查询 (注解写法)
  6. 喇叭正反相位测试音频_FIR滤波器能给音频扩声带来怎样的帮助?
  7. php 接口安全解决方案,php接口数据安全解决方案(一)
  8. html5中defer的属性,HTML5中defer和async的比较
  9. 计算机与信息处理基础知识教案,高效的信息处理工具——计算机基础知识教案...
  10. Android so文件进阶 一
  11. C语言汉诺塔问题的递归算法
  12. 第七次人口普查数据新鲜出炉,有哪些信息值得关注?
  13. 基于FreeFEM++的有限元编程--2
  14. java定时任务 cron
  15. 微型计算机系统结构中的总线,微型计算机的总线结构
  16. 浏览器全面禁止第三方Cookie
  17. matlab 实现马赫带效应,图像上机实验.doc
  18. php单页菜单,纯CSS3单页切换导航菜单界面设计
  19. 【编程马拉松】【011-鸽兔同校】
  20. android振动器(Vibrator)

热门文章

  1. 浮点数的二进制表示(IEEE 754标准)
  2. 没有规定的iOS或者安卓的 - app图标 怎么办
  3. 201811找工作静态脱壳机效果演示
  4. 用友NC65 Rest接口开发及调试(一)
  5. 常用的超赞 Linux 软件大汇总,入行运维必藏!
  6. 一款好用的数据可视化报表分析工具
  7. 企业数字化转型,失败率80% ,大批CTO被裁...
  8. 笔试题——东南西北(ESWN)按任一方向走N步
  9. 《玩转3D打印》——2.1节3D建模软件
  10. 4种删除Word空白页的小技巧,都是你需要用到的!