先上总结:
1. 指数加权平均
是一种 减少数据波动的方法。简单来说就是每个点的值都是前几个点和当前点的加权平均。
公式如下:
beta的值越大,数据越平稳。
但是beta的值过大会使数据有一种“滞后”的感觉,如图中的绿线。
1.1 理解
为什么叫“指数”加权平均呢?因为根据公式,我们可以推导出以下的式子:
也就是说,当前点 V100 的值可以由前99个点的加权值得到,而权重是个指数函数。
1.2 平均估计
前提:当某个点a的权重的大小是当前点的1/3时,我们可以认为算法只关注到了这个a点之后的点到当前点的平均值。
因为自然数e的倒数约等于0.36,我们用这个数来估计。
因为 (1−x)1/x=1/e 所以带入1-x=0.9,x=0.1,当指数为10的时候,也就是 v90 这个点的权重为当前点的1/3,即我们可以认为算法是计算了前10个点的平均值。
归纳:指数加权平均算法可以认为是计算了前 11−β 个点的平均值。
1.3 偏置修正
从原点初始化时,指数平均估计会有偏置问题。如下图:绿色线是真实平均值,但是算法得到的紫色线明显在远点附近小于真实值。
这是因为原点初始化为0的关系,解决方法是进行偏置修正:每个值都除以 1−βt
2. 动量梯度下降
虽然随机梯度下降仍然是非常受欢迎的优化方法,但其学习过程有时会很慢。动量方法(Polyak, 1964) 旨在加速学习,特别是处理高曲率、小但一致的梯度,或是带噪声的梯度。动量算法积累了之前梯度的指数加权平均,并且继续沿该方向移动。
动量的效果如图所示。
从形式上看,动量算法引入了变量v 充当速度角色——它代表参数在参数空间移动的方向和速率。速度被设为负梯度的指数衰减平均.
3. RMSprop
RMSProp 算法缩放每个参数反比于其所有梯度历史平方值总和的平方根(Duchi et al., 2011)。使得具有损失最大偏导的参数相应地有一个快速下降的学习率,而具有小偏导的参数在学习率上有相对较小的下降。
参数的平方和采用指数加权平均。
4. adam
adam 是RMSprop和动量梯度下降的结合。其次,Adam 包括偏置修正,修正从原点初始化的一阶矩(动量项)和(非中心的)二阶矩的估计(算法8.7 )。
Redeference:
https://github.com/exacity/deeplearningbook-chinese