通俗理解指数加权平均

通俗理解指数加权平均

前言

在深度学习优化算法中,我们会涉及到指数加权平均这个概念,下面我将通过例子来一步一步引出这个概念。

平均数求法

比如我们现在有100天的温度值,要求这100天的平均温度值。

24,25,24,26,34,28,33,33,34,35..........32。

我们直接可以用公式:

v_{aver}=\frac{v_{1}+...+v_{100}}{100}

通过上面的公式就可以直接求出10天的平均值。而我们要介绍的指数加权平均本质上就是一种近似求平均的方法。

指数加权平均

我们现在直接给出公式: v_{t}=\beta*v_{t-1}+(1-\beta)\theta_{t}

其中 v_{t}代表到第t天的平均温度值\theta_{t}代表第t天的温度值 \beta代表可调节的超参数值

假如\beta=0.9,我们可以得到指数平均公式下的平均值求法如下:

化简开得到如下表达式:

通过上面表达式,我们可以看到,V100等于每一个时刻天数的温度值再乘以一个权值。

本质就是以指数式递减加权的移动平均。各数值的加权而随时间而指数式递减,越近期的数据加权越重,但较旧的数据也给予一定的加权。

而在我们上面提到的普通平均数求法,它的每一项的权值都是一样的,如果有n项,权值都为1/n。

指数加权平均的本质还可以用下图表示:

指数加权平均的结果是由当天温度值乘以指数衰减函数值,然后类和求得!

指数加权平均的优势

那么指数加权平均法有什么好处呢?首先我们来看它的实现:

我们可以看到指数加权平均的求解过程实际上是一个递推的过程,那么这样就会有一个非常大的好处,每当我要求从0到某一时刻(n)的平均值的时候,我并不需要像普通求解平均值的作为,保留所有的时刻值,类和然后除以n。

而是只需要保留0-(n-1)时刻的平均值和n时刻的温度值即可。也就是每次只需要保留常数值,然后进行运算即可,这对于深度学习中的海量数据来说,是一个很好的减少内存和空间的做法。

参考: 图片来自于吴恩达老师DeepLearning.ai课程slides
编辑于 2017-10-06

文章被以下专栏收录