深度学习: 指数加权平均

1. 指数加权平均

      指数加权平均是深度学习众多优化算法的理论基础,包括Momentum、RMSprop、Adam等,在介绍这些优化算法前,有必要对指数加权平均(exponentially weighted averages)做一个简单的介绍,以期对后续的优化算法的原理有所知晓。

       何为指数加权平均那? 

       现在想求一段时间内的平均温度,给定一段时间的温度序列 v_{1},v_{2},...,v_{n},加和平均结果为 (v_{1},v_{2},...,v_{n}) \ /\ n,每天温度的权重都是相同的。进一步,若要根据平均气温预测明天的温度,显然昨天的温度应该较30天之前的温度权重大一些,因为越早的日期对于预测明天温度所起到的作用越小,这符合我们的常规思维,因此给予每天的温度不同的权重,这就引出了统计学中常用的一种平均方法——指数加权平均,平均温度预测的指数加权平均形式如下:

       \theta _{t} = \beta * \theta _{t-1}\ +\ (1-\beta )*v_{t}

其中,\theta _{t} 代表第 t 天的平均温度值,\beta 代表可调节的参数值。令 \theta _{0} = 0,上式递推式展开如下:

       \theta _{0} = 0,

       \theta _{1} = (1-\beta )*v_{1}

       \theta _{2} = \beta * \ (1-\beta )*v_{1} + \ (1-\beta )*v_{2}

       \theta _{3} = \beta^{2} * \ (1-\beta )*v_{1} + \beta * \ (1-\beta )*v_{2} + \ (1-\beta )*v_{3}

       ......

      \theta _{t} = \beta^{t-1} * \ (1-\beta )*v_{1} + \beta^{t-2} * \ (1-\beta )*v_{2} + ... + \beta * (1-\beta ) * v_{t-1} + \ (1-\beta )*v_{t}

      可以看到,随着日期的向后推移,温度的权重以单位 \beta 进行衰减。 当 \beta 为 0 时,平均气温的计算完全忽略历史信息,随着 \beta 由 0 到 1 不断增大,历史温度的权重衰减速度不断降低。

      在吴恩达的深度学习课程中,英国每日温度以及每日温度的指数加权平均示意图如下:     

 

深度学习: 指数加权平均_第1张图片

                                             图 1  β 为0.98(绿线),0.9(红线)和0.02(黄线)时的指数加权平均值

     

      从上图分析可得,当 β 为 0.98 时,指数加权平均减慢了对历史温度的衰减,因而纳入了更多的历史温度信息,导致绿线在上升阶段的值小于红线,且最高点滞后于红线;当 β 为 0.9 时,似乎时根据历史温度预测明天温度的最恰当的取值;当 β 为 0.02时,历史温度信息几乎没有纳入指数加权平均的计算中,更注重最近几天的温度。随着 β 值的不断减小,指数加权平均线的平滑度在不断下降(时效性增强)。

 

2. 指数加权平均的偏差修正

       实际上,在图2中,当 β 取0.98时,得到的曲线并非绿色,而是下图的紫色曲线:

深度学习: 指数加权平均_第2张图片

                                                                                    图 2  β 为0.98的实际曲线(紫线)

       紫色曲线的值在开始上升的初始阶段明显小于绿色曲线,这是什么原因那? 通过指数加权的递推公式可以发现,最初几天的温度预测值不足历史温度的0.02,因而在预测前期会有一定的偏差。因此,引入偏差修正公式如下:

        \theta _{t}^{'}=\theta _{t} \ / \ (1-\beta ^{t})

       通过此修正公式,开始几天的平均温度预测值可以接近实际值,随着 t 的增大,偏差修正公式会逐渐还原为修正之前的指数加权平均公式。

        在基于指数加权平均的深度学习优化算法中, 如果你对初期的偏差修正比较重视,则可采用修正的指数加权平均公式,如果对初期的偏差修正不是特别在意,可以选择马虎的度过初始阶段。总之,如果你关心初始时期的偏差,修正偏差能帮助你在早期获得更好的估测。

你可能感兴趣的:(机器学习,神经网络)