3

指数加权平均

 2 years ago
source link: https://ylhao.github.io/2018/05/21/183/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

指数加权平均

创建时间:2018-05-21 15:32
字数:1,270 阅读:23

假设我们有一组数据,记录的是半年内伦敦市的每天的气温(单位采用华氏温标),我们还根据这组数据得到了一张散点图,横坐标代表天数(第几天),纵坐标代表温度(华氏温标)。具体情况如下图所示:

如何得到近半年的气温整体变化趋势

基于这组数据我们想要得到半年内的气温整体变化趋势。我们可以如下处理:

首先我们假设 V0=0,也就是认为第 0 天的气温为 0 华氏度。接下来我们用以下公式计算得到每天的气温:
V1=0.9V0+0.1θ1 V2=0.9V1+0.1θ2 ⋮ V181=0.9V180+0.1θ181

然后我们将得到的 V1,V2,…,V181 在散点图中标出并用红色实现连接起来,这条红色实现代表的就是半年内的气温整体变化趋势,得到的图片如下图所示:

这样做的本质是什么?

我们将 V100=0.9V99+0.1θ100 展开:
V100=0.9V99+0.1θ100 =0.9(0.9V98+0.1θ99)+0.1θ100 =0.92V98+0.1×0.9θ99+0.1θ100 =0.92(0.9V97+0.1θ98)+0.1×0.9θ99+0.1θ100 =0.93V97+0.1×0.92θ98+0.1×0.9θ99+0.1θ100 ⋮ =0.1θ100+0.1×0.9θ99+0.1×0.92θ98+⋯+0.1×0.999θ1

我们可以看到每天气温的权值随着天数的向前推移而以指数形式递减,越近的天数,对应的权重越大。我们就将这样的加权平均叫做指数加权平均,我们可以得出指数加权平均的递推公式的一般形式:
Vt=βVt−1+(1−β)θt

下图中的绿线为 β=0.98 时得到的表示温度变化趋势的线,而图中的黄线表示的时 β=0.5 时得到的表示温度变化趋势的线。

我们发现黄色线好像要比绿色线“更剧烈”、“更实时”。这也反映了一个客观事实,就是当 β 取值更小的时候,得到的温度变化趋势线就“更加的实时”。其实 β 决定了加权平均的天数。比如当 β=0.9 时,则 11−β=10,表示将前 10 天进行指数加权平均。可是我们在刚刚的推导过程中明明发现当前的气温跟之前所有天的气温都有关系啊?怎么能说是前 10 天的指数加权平均呢?

根据之前的公式推导可以看出来,指数部分是衰减的,一般认为当这个指数部分衰减到 1e 就可以忽略不计了。所以我们只要证明:
β11−β=1e

就可以了。

令11−β=N,N>0 则β=1−1N,1N<1

所以我们证明出下式成立即可:
(1−1N)N=1e

当 N>>0 时,上式成立。所以我们也就粗略的证明了当 β=0.9 时,表示将前 10 天进行指数加权平均这类问题。

带偏移校正的指数加权平均的一般形式为:
Vt=βVt−1+(1−β)θt1−βt

如果不做偏移校正,在一些点(特别是像上文中的 V1,V2,V3,…)的结果是不准确的。上文中提到当 β=0.98 时,指数加权平均结果如下图绿色曲线所示。但是实际上,真实曲线如紫色曲线所示。

我们注意到,紫色曲线与绿色曲线的区别是,紫色曲线开始的时候相对较低一些。这是因为开始时我们设置 V0=0,所以初始值会相对小一些,直到后面受前面的影响渐渐变小,趋于正常。

修正这种问题的方法是进行偏移校正,在上文中已经指出了带偏移校正的指数加权平均的一般形式,我们可以发现式子中的 1−βt 小于 1,并且越在开始的点,这个值越小,我们就可以将 Vt 修正的更大一些。效果就是把紫色曲线的开始部分向上提升一些,与绿色线重合。随着 t 的增大,1−βt 也逐渐增大,慢慢的会得到 1−βt≈1,紫色线和绿色线依然重合。

值得一提的是,机器学习中,偏移校正并不是必须的。因为,在一次次迭代后,最终 Vt 受初始值影响微乎其微,紫色曲线与绿色曲线基本重合。一般可以忽略初始迭代过程。

  1. 深度学习工程师微专业 —— 吴恩达
  2. 吴恩达《优化深度神经网络》精炼笔记(2)– 优化算法

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达,可以在文章下方的评论区进行评论,也可以邮件至 [email protected]

文章标题:指数加权平均

文章字数:1,270

本文作者:ylhao

发布时间:2018-05-21, 15:32:15

最后更新:2019-06-07, 11:50:53

原始链接:https://ylhao.github.io/2018/05/21/183/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

未找到相关的 Issues 进行评论

请联系 @ylhao 初始化创建


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK