本文的内容来自deeplearning.ai
一、什么是指数加权平均
指数加权平均(exponentially weighted averges)也叫指数加权移动平均,通过它可以来计算局部的平均值,来描述数值的变化趋势,下面通过一个温度的例子来详细介绍一下。
上面的图,是一个天与温度的变化关系,其中横轴表示的是一年中的第几天,纵轴表示的是该天的温度,1月份和12月份的温度相对于年中(6月、7月)的温度要低一些。
下面我们通过温度的局部平均值(移动平均值)来描述温度的变化趋势,通过下面的公式来计算平均值
在计算局部温度平均值的时候我们使用的是β等于0.9,计算出来的温度趋势,如下图的红色曲线。
当β大于0.9(为0.98)的时候,局部温度平均值如下图所示
其中红线表示β为0.9时候的温度的加权平均值,绿线表示β为0.98时候的温度加权平均值,绿线相对于红线来说,更加平稳、稳定。相对于红线来说缺点就是,它向右平移了,产生了延迟,因为当β为0.98时,相当于平均了1/(1-0.98)=50天的温度,而β为0.9只是平均了10天的温度。
当β小于0.9(为0.5)的时候,局部温度平均值如下图所示
其中黄线表示的是,当β为0.5时的加权温度平均,相对于红线来说,它抖动的更加厉害,因为它只平均了2天的温度,所以对于温度的趋势反馈能够更加的及时,更快的适应温度的变化,同时它也会带来更多的噪声(平均的天数太少)。
注意:在上面的不同β所对应的加权温度曲线中,当β为0.9时,表现最好。
二、指数加权平均的作用
在介绍指数加权平均的时候,介绍过了如何通过加权平均来计算局部温度的平均值,下面将式子展开
最后可以得到
其实上面的式子就是一个指数加权平均。
1、在上面为什么说当β为0.9时,只是平均了10天的温度。
如果你想要计算10天局部温度的平均值,你需要保存最近10的温度。而使用指数加权平均来计算局部平均值的时候,可以节省大量的空间,你只需要保存前一个加权平均值。相对于直接计算平均值而言,它的精确度没有那么高。
三、偏差修正
偏差修正的主要目的是为了提高指数加权平均的精确度,主要是针对前期的加权平均值的计算精度。
下面通过一个例子来说明一下
通过计算可以发现,前期的指数加权平均存在较大误差,下面通过偏差修正来减少前期指数加权平均的误差。
注意:如果你对于前期的局部平均值的精度没有要求,可以不用使用偏差修正,偏差修正主要是针对前期的局部平均值的误差。