一、EMA 简介
1、演化
- 算术平均(
权重相等
)—>加权平均(权重不等
)—>移动平均(大约是只取最近的 N 次数据进行计算
)—> 批量归一化(BN
)及各种优化算法的基础 - EMA:是以
指数式递减
加权的移动平均,各数值的加权影响力
随时间呈指数式递减,时间越靠近当前时刻的数据加权影响力越大
2、公式及理解
- vt=βvt−1+(1−β)θt v t = β v t − 1 + ( 1 − β ) θ t ,公式中 θt θ t 为 t 时刻的实际温度;系数 β β 表示加权下降的快慢,值越小权重下降的越快; vt v t 为 t 时刻 EMA 的值。
- 当
v0=0
v
0
=
0
时,可得:
vt=(1−β)(θt+βθt−1+β2θt−2+...+βt−1θ1)
v
t
=
(
1
−
β
)
(
θ
t
+
β
θ
t
−
1
+
β
2
θ
t
−
2
+
.
.
.
+
β
t
−
1
θ
1
)
,从公式中可以看到:每天温度(
θ
θ
)的权重系数以
指数等比形式
缩小,时间越靠近当前时刻的数据加权影响力越大。 - 在优化算法中,我们一般取
β>=0.9
β
>=
0.9
,而
1+β+β2+...+βt−1=1−βt1−β
1
+
β
+
β
2
+
.
.
.
+
β
t
−
1
=
1
−
β
t
1
−
β
,所以当 t 足够大时
βt≈0
β
t
≈
0
,此时便是严格意义上的指数加权移动平均。
- 在优化算法中,我们一般取
β>=0.9
β
>=
0.9
,此时有
β11−β≈1e≈0.36
β
1
1
−
β
≈
1
e
≈
0.36
,也就是说
N=11−β
N
=
1
1
−
β
天后,曲线的高度下降到了约原来的
13
1
3
,由于时间越往前推移
θ
θ
权重越来越小,所以相当于说:我们每次只考虑最近(latest)
N=11−β
N
=
1
1
−
β
天的数据来计算当前时刻的 EMA,这也就是
移动
平均的来源。
二、EMA 偏差修正
- 在 β=0.98 β = 0.98 时,理想状况下,我们应该能得到绿色曲线,然而现实我们得到的却是紫色曲线,它的起点比真实的要低很多,不能很好的估计起始位置的温度,此问题称为:冷启动问题,这是由于 v0=0 v 0 = 0 造成的。
解决方案
:将所有时刻的 EMA 除以 1−βt 1 − β t 后作为修正后的 EMA。当 t 很小时,这种做法可以在起始阶段的估计更加准确;当 t 很大时,偏差修正几乎没有作用,所以对原来的式子几乎没有影响。注意
:我们一般取 β>=0.9 β >= 0.9 ,计算 t 时刻偏修正后的 EMA 时,用的还是 t−1 t − 1 时刻修正前的EMA。
三、EMA 的优点及其应用理解
1、EMA 的优点
它占用极少内存
:计算指数加权平均数只占用单行数字的存储和内存,然后把最新数据代入公式,不断覆盖就可以了
。- 移动平均线能较好的反应
时间序列的变化趋势
,权重的大小不同起到的作用也是不同,时间比较久远的变量值的影响力相对较低,时间比较近的变量值的影响力相对较高
。
2、EMA 在 Momentum 优化算法中应用的理解
- 假设每次梯度的值都是
g
g
、 ,此时参数更新幅度会
加速下降
,当 n 达到 150 左右,此时达到了速度上限,之后将匀速下降
(可参考一中的公式理解)。 - 假如,在某个时间段内一些参数的梯度方向与之前的不一致时,那么真实的参数更新幅度会变小;相反,若在某个时间段内的参数的梯度方向都一致,那么其真实的参数更新幅度会变大,起到
加速收敛
的作用。在迭代后期,由于随机噪声问题,经常会在收敛值附近震荡,动量法会起到减速作用,增加稳定性
。
四、参考资料
1、Coursera:Exponentially-Weighted-Moving-Averages
2、Gluon:优化算法中关于 EMA 的讲解
3、优化算法之指数移动加权平均