exponentially weighted average
Vi = Vi-1beta - (1-beta)Ti
越早的数据其所占的权重越小,从下图右上角的小图可以看出其每天对应的值(上图)与指数曲线对应的值(下图)进行相乘,所以越靠前的数据,其权重下降的越厉害。
当beta=0.9时,当计算10天前的数值时,衰减指数函数为0.910, 约为0.35或者1/e,这时我们认为再往下计算其权重已经很小了,基本可以忽略了,所以可以近似的认为这个加权平均数就是近10天的平均值
bias correction in exponentially weighted averge
如上图中紫线所示,在开始阶段,其平均值远低于其大部分值,并不能真实反映数值的平均情况(原因在于V0为0时最终导致θ1 和θ2被赋予了一个极小的权重,使得平均值变小,如左下方的示例)。因此我们希望通过某种方式来修正。bias correction就是通过让原先的Vt来除以1-βt来进行修正, 以t=2为例,最终通过除以0.0396来进行了修正,而当t非常大时,由于β<1, 所以βt就会接近于0,所以可以忽略了,这样相当于没有修正了。这导致对于初始的平均值更加准确,会形成如图中绿色的平均线。
gradient decent with momentum
所谓momentum就是在梯度下降时,原先计算w和b时是通过减α*dw来进行更新,现在是通过减α*Vdw来进行更新, 而Vdw就是指数加权平均值,如图所示。
直观理解,原先的梯度下降非常曲折,有很多横向的移动,如图中蓝色的梯度下降曲线,而通过使用指数加权平均值,这种横向的移动被平均了,相互抵消,而纵向的下降还是原先的下降方向,这样就可以像如图红色下降曲线所示可以有更快的下降。
另外,通常的机器学习中β值取0.9比较合适。
RMSprop
RMSprop也是一种加速梯度下降的算法,原理如下图所示:
- 首先Sdw在计算时使用的是dw2 (element wise),所以最后梯度下降的时候,又开平方根。
- 通过减去α*dw/sqrt(Sdw)来进行更新dw,同理db也是如此。这样当在某个方向震荡幅度较大时,其对应的Sdw也较大,dw/sqrt(Sdw)就会变小,从而减小这个方向的震荡。
- 为了避免分母为0的情况,我们通常会为squrt(Sdw)加一个极小的数ɛ,如10-8