指数加权平均和momentum梯度下降

开头先以一个例子引入指数加权平均

        假设以下是伦敦某年365天的天气:

蓝点是每一天的温度, vt表示每一天指数加权后的温度,连接这些点后,也就有了这条红色的弯曲的线,为什么我们要使用指数加权呢?我的理解是让连接的曲线更加平滑,让每天温度的变化幅度变小一点,因为每一天的加权温度,总是会加上前一天的温度。




1.加权系数不同,导致的结果不同

       此时我们看到等式右边的v前面有一个加权系数0.9,不妨把它普遍化为白塔,上面的式子也就变成了下面的式子,白塔等于0.9时,某一天的温度我们相当于平均了它之前的10天的温度。白塔等于0.98时,相当于平均了它之前50天的温度。白塔等于0.5时,相当于平均了它之前两天的温度。当然,我这里的平均并不是说平均数,而是一种加权平均,在后面我会给予解释。可以看到,红线是白塔等于0.9,绿线是白塔等于0.98,黄线是白塔等于0.5,因为它是平均了之前两天的温度,所以曲线有很大的浮动,并不是很平滑,而蓝线则是平均了50天的温度,曲线特别平滑。这里为什么说白塔等于0.98时,平均了前50天的温度,后面会给出解释。



2.详解加权平均

此处我们把v100,也就是第100天温度的加权平均拆开,得到了下面很长的式子,当白塔等于0.9时,注意下面v100右边的长等式,0.9的10次方等于0.35,大概等于,再用0.1乘,系数已经下降到了第100天温度系数的1/3,那么我们可以只关注前面这些系数,之后的系数就不在关注。因此,对于白塔=0.9时,仿佛v100就是它之前10天温度的一个加权平均。而当白塔=0.98时,0.98的50次方才等于0.36,再乘一个0.1,系数已经下降到了第100天温度系数的1/3,之后的系数我们也不再关注。因此对于白塔=0.98时,仿佛v100就是它之前50天温度的加权平均。看下面的式子,我们就可以知道vt时平均了它之前(1/1-白塔)天的温度。



3.上面的式子其实我们可以写在一个式子里,用循环则可以实现。看下图:



4.Momentum梯度下降

        Momentum梯度下降基本思想就是计算指数的加权平均数,并利用该梯度来更新权重。下面我将详细阐述:

由指数加权平均,我们引入momentum梯度下降,先是前向计算,然后计算损失函数,在计算反向,计算出dW ,db,用来更新W,b这是以往普通梯度下降的做法,此处我们并没有向之前那样W=W-a*dW,b=b-a*db,而是对dW,db进行了加权平均为Vdw,Vdb。当我们想向中间最小值出发时,我们希望较少在纵轴上的摆动,或者说,摆动的幅度尽量小,这样才能快速的到达中间最小值,此时看蓝色的线,是普通梯度下降法。对于某一个时间t,  Vdw是对之前的多个时间的加权平均,因此在这么多时间内纵轴上出现的不同方向上的值会相互抵消,而横轴上一直向前,也就实现了纵轴上幅度减小,横轴不断向前,则比之前普通的梯度下降要快的多,也就时我们这条红色的线。然后使用dW的加权平均来更新W.



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章