指數加權移動平均法(EWMA)


** 本文內容來自於吳恩達深度學習公開課

1、概述

  加權移動平均法,是對觀察值分別給予不同的權數,按不同權數求得移動平均值,並以最后的移動平均值為基礎,確定預測值的方法。采用加權移動平均法,是因為觀察期的近期觀察值對預測值有較大影響,它更能反映近期變化的趨勢。

  指數移動加權平均法,是指各數值的加權系數隨時間呈指數式遞減,越靠近當前時刻的數值加權系數就越大。

  指數移動加權平均較傳統的平均法來說,一是不需要保存過去所有的數值;二是計算量顯著減小。

2、算法理解

  引入一個例子,例子為美國一年內每天的溫度分布情況,具體如下圖所示

    

  EWMA 的表達式如下:

    $v_t = \beta v_{t-1} + (1 - \beta) \theta_t$

  上式中 $ \theta_t$ 為時刻 $ t$ 的實際溫度;系數 $\beta$ 表示加權下降的速率,其值越小下降的越快;$v_t$ 為 $t$ 時刻 EWMA 的值。

  在上圖中有兩條不同顏色的線,分別對應着不同的 $\beta$ 值。

  當 $\beta = 0.9$ 時,有 $v_t = 0.9 v_{t-1} + 0.1 \theta_t$ ,對應着圖中的紅線,此時雖然曲線有些波動,但總體能擬合真實數據

  當 $\beta = 0.98$ 時,有 $v_t = 0.98 v_{t-1} + 0.02 \theta_t$ ,對應着圖中的綠線,此時曲線較平,但卻有所偏離真實數據

  在 $t=0$ 時刻,一般初始化 $v_0 = 0$ ,對 EWMA 的表達式進行歸納可以將 $t$ 時刻的表達式寫成:

    $ v_t = (1-\beta)  (\theta_t + \beta\theta_{t-1}+ ... + \beta^{t-1}\theta_1) $ 

  從上面式子中可以看出,數值的加權系數隨着時間呈指數下降。在數學中一般會以 $\frac {1} {e}$ 來作為一個臨界值,小於該值的加權系數的值不作考慮,接着來分析上面 $\beta = 0.9 $ 和 $\beta = 0.98$ 的情況。

  當 $\beta = 0.9$ 時,$0.9^{10}$ 約等於 $\frac {1} {e}$ ,因此認為此時是近10個數值的加權平均。

  當 $\beta = 0.98$ 時,$0.9^{50}$ 約等於 $\frac {1} {e}$,因此認為此時是近50個數值的加權平均。這種情況也正是移動加權平均的來源。

  具體的分析如下圖所示:

    

3、偏差修正

  在初始化 $ v_0 = 0$ 時實際上會存在一個問題。具體的如下圖所示:

    

  從上圖中可以看出有一條綠色和紫色的曲線,都是對應於 $\beta = 0.98$ 時的曲線。理想狀況下應該是綠色的曲線,但當初始化 $v_0 = 0$ 時卻會得到紫色的曲線,這是因為初始化的值太小,導致初期的數值都偏小,而隨着時間的增長,初期的值的影響減小,紫色的曲線就慢慢和綠色的曲線重合。我們對公式做一些修改:

    $ v_t = \frac {\beta {v_{t-1}}  + {(1 - \beta)} \theta_t} {1 - \beta^t} $ 

  當 $t$ 很小時,分母可以很好的放大當前的數值;當 $t$ 很大時,分母的數值趨於1,對當前數值幾乎沒有影響。

   EWMA 主要是被應用在動量優化算法中,比如Adam算法中的一階矩和二階矩都采用了上面修改后的EWMA算法。

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM