问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

指数加权平均:深度学习中的局部平均值计算方法

创作时间:
作者:
@小白创作中心

指数加权平均:深度学习中的局部平均值计算方法

引用
CSDN
1.
https://blog.csdn.net/qq_34222839/article/details/146162021

指数加权平均(Exponential Weighted Average)是深度学习中一个重要的基础概念,它能够帮助我们计算局部平均值,从而更好地描述数值的变化趋势。本文将通过具体的例子,深入浅出地解释指数加权平均的计算方法、作用以及偏差修正的重要性。

1. 指数加权平均

指数加权平均在统计学中也被称为指数加权移动平均。通过它可以计算局部的平均值,来描述数值的变化趋势。

假设我们现在有一年中每一天的温度数据,将其绘制为散点图如下:

构造等式如下:

  • $V_0 = 0$
  • $V_1 = 0.9V_0 + 0.1\theta_1$
  • $V_2 = 0.9V_1 + 0.1\theta_2$
  • $V_3 = 0.9V_2 + 0.1\theta_3$
  • $V_t = 0.9V_{t-1} + 0.1\theta_t$

其中,$\theta_t$ 表示第t天的温度。

然后依旧以天数作为横轴,求得的指数加权平均$V_t$作为纵坐标,得到如下红线:

我们将上述公式写的更加泛化一点:
$$V_t = \beta V_{t-1} + (1-\beta) \theta_t$$

在之前的例子中,$\beta = 0.9$。其中$V_t$可近似理解为最近$\frac{1}{1-\beta}$天的平均温度。

现在我们来考虑下$\beta$过大和过小时的情况。

  • 如果有$\beta = 0.98$,会得到下图的绿线:

因为$\beta = 0.98$相当于可近似为近$\frac{1}{1-0.98}=50$天的平均温度,所以绿线要比红线更为平滑。此外,因为当天温度的权值只有0.02,所以在温度变化时,绿线适应数据也更缓慢一些,会有一定延迟,因此绿线相比红线出现了右移的情况。

  • 如果有$\beta = 0.5$,会得到下图的黄线:

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

综上所述,选择一个不大不小的、合适的$\beta$能够更好的计算平均。

2. 指数加权平均的作用

假设我们现在计算近100天温度的指数加权平均($\beta = 0.9$):

  • $V_{100} = 0.9V_{99} + 0.1\theta_{100}$
  • $V_{99} = 0.9V_{98} + 0.1\theta_{99}$
  • $V_{98} = 0.9V_{97} + 0.1\theta_{98}$
  • $V_{97} = 0.9V_{96} + 0.1\theta_{97}$

带入可求得:

\begin{align*}
V_{100} & = 0.1\theta_{100} + 0.9V_{99} \
& = 0.1\theta_{100} + 0.10.9\theta_{99} + 0.9^2V_{98} \
& = 0.1\theta_{100}+0.1
0.9\theta_{99}+0.10.9^2\theta_{98}+0.9^3V_{97} \
& = 0.1\theta_{100}+0.1
0.9\theta_{99}+0.10.9^2\theta_{98}+......+0.10.9^{99}\theta_1
\end{align*}

我们可以看到$V_{100}$是对过去一百天温度的指数加权平均。其权值呈指数衰减:

并且这些权值加起来等于1或接近于1。但是距离越远的天数权值越小,计算时意义不大,因此通常省略权值小于最大权值$\frac{1}{e}$的项。

本例中最大权值为0.1,则:

$$0.1*\frac{1}{e}\approx 0.1* 0.9^{10}$$

即省略$\theta_{90}$之前的天数,所以对应于第1部分中提到的,$V_{100}$通常被近似为近$\frac{1}{1-0.9}=10$天的加权平均温度。

同理,当$\beta = 0.98$时,有$0.98^{50}\approx \frac{1}{e}$,此时,$V_{100}$被近似为近50天内的气温加权平均值。

根据极限的公式:$\lim_{x\to 0} (1-x)^{\frac{1}{x}}=\frac{1}{e}$,当$x = 1 - \beta$时,有$\beta^{\frac{1}{1-\beta}}\approx \frac{1}{e}$。因此我们就可以总结出指数加权平均可近似为近$\frac{1}{1-\beta}$天的平均温度。

2.1. 指数加权平均的优势

相比使用算术平均计算局部平均值,指数加权平均不需要太多存储空间,只需在计算机内存中保留一行数字,并且基本一行代码即可实现,更为高效。虽然算数平均估计的均值更为准确,例如可以直接算出近十天或五十天的气温均值,但这样做的缺点是要保存所有的气温值及其气温值总和,需要更多的内存,更难实现,花费也更高。

因此,指数加权平均在机器学习中被广泛应用。

3. 偏差修正

偏差修正会使得指数加权平均估计的更为准确。

在第1部分$\beta = 0.98$时的例子中,绿线就是做完偏差修正之后的效果。如果没有偏差修正,得到的应该是下图中的紫线:

能注意到紫线的起点较低,但是后续趋势基本和绿线重合。

那为什么会出现这种情况呢?我们来分析一下。

假设第一天的温度是40华氏度,第二天的温度是55华氏度。假设$\beta = 0.98$,则有:

  • $V_0 = 0$
  • $V_1 = 0.98V_0+0.02\theta_1=0.02\times 40=0.8$
  • $V_2 = 0.98V_1+0.02\theta_2=0.98\times 0.8+0.02\times 55=1.884$

能看出前几天的估计有很大的偏差。因此我们需要对其进行修正:

$$\frac{V_t}{1-\beta^t}$$

$V_1$修正之后的结果为$\frac{0.8}{1-0.98^1}=40$;$V_2$修正之后的结果为$\frac{1.884}{1-0.98^2} \approx 47.58$。很明显,修正之后的结果更为准确。

并且随着$t$增加,$\beta^t$将接近于0,所以当$t$很大的时候,偏差修正几乎没有作用。这也就是当$t$很大的时候,紫线基本和绿线重合的原因。但是在初始阶段,偏差修正可以帮助我们更好的预测温度。当然也有部分人不注重初始阶段,因此也可以不使用偏差修正。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号
指数加权平均:深度学习中的局部平均值计算方法