指數加權平均和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.



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