平时跑模型只知道直接上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. ASP.NET 3.5 企业级开发
  2. 转帖-MySQL Innodb日志机制深入分析
  3. Docker大行其道—镜像
  4. c#利用WebClient和WebRequest获取网页源代码的比较
  5. STM8S103 PB4和PB5
  6. C语言的VC开发环境界面介绍,【c语言在vc++6.0中编写界面程序】
  7. centos7 安装webmin
  8. 第七章信息系统安全工程考试要点及真题分布
  9. 分享这几天做seo优化的心得
  10. 【Express】—路由配置
  11. 解决springboot工程创建是连接失败问题
  12. [篇五章二]_使用 USB 系统安装盘在真机上安装激活 Windows 10 LTSC 2021 中文企业版系统
  13. vue 读取地址栏参数
  14. Win11怎么设置共享文件夹?Win11共享文件夹设置方法
  15. 苹果iWork,看上去很美
  16. 将两个有序链表合并成一个链表
  17. cadence常用快捷键及小技巧(画斜线、开balloons等)
  18. 集成运放的主要技术指标
  19. 宽依赖和窄依赖_Spark --【宽依赖和窄依赖】
  20. 【C++】辅助C++计算复数(代码解释的很清楚)

热门文章

  1. 图像识别的深度残差学习
  2. 新零售未来趋势,这些是街都对2020年的预测
  3. 众多新功能来袭:IntelliJ IDEA 2022.1正式发布
  4. 输入一个班级全体学生的成绩,输出不及格的学生成绩和及格学生的平均成绩
  5. 金蝶kis标准版8.1注册智能卡
  6. EPFO的完整形式是什么?
  7. Python数据挖掘入门与实践 彩图 pdf
  8. Mahout K-means聚类
  9. VB.net应用技巧6: CLR20r3错误的解决方法
  10. cocos2d学习笔记第四章 粒子效果及座标系