指數加權移動平均
以下內容來自 https://zhuanlan.zhihu.com/p/32335746,純用作記錄
指數加權移動平均(Exponentially Weighted Moving Average),他是一種常用的序列處理方式。在\(t\)時刻,移動平均值公式是
其中\(v_t\)是\(t\)時刻的指數加權移動平均值,\(\theta_t\)是\(t\)時刻的真實值,\(\beta\)是權重,是一個超參數。系數 \(\beta\) 越小就說明對過去測量值的權重越低,也就是對當前抽樣值的權重越高。這個時候移動平均估計值的時效性就越強(其實也就是更加擬合點分布的趨勢)。反之,則會越弱。指數移動加權平均還有另一個特點就是能吸收瞬時突發的能力也就是平穩性(使得得到的曲線趨勢能夠更加平緩),如果對過去估計值的權重越低也就是 \(\beta\) 越小,那么他的平穩性就差一點,反之平穩性會增強。
我們使用 \(\beta=0.9\) 來看看指數移動加權平均的原理是什么?
我們將式子一步一步的帶入得到最終式子:
我們認為,上述操作,實際上是10天的平均結果,因為\(0.9^9\times 0.1\)非常小了,后續的可以近似為0。當\(\beta\)為其他值時,平均的天數可以通過以下公式進行計算
計算指數加權平均數只占單行數字的存儲和內存。他的效率和資源的占有率會大大的減小。 所以在機器學習中大部分采用指數加權平均的方法計算平均值。
指數加權移動平均的偏差修正
如同推薦系統,指數加權移動平均也存在着冷啟動的問題,舉個例子:當\(\beta = 0.98\) 的時候,我們假設\(v_0 = 0, \theta_1 = 40\), 那么通過指數移動加權平均的公式可以得到\(v_1 = 0.98\times v_0 + 0.02 \times 40 = 8\),這很明顯不符合真實的結果,偏離真實值太遠,因此需要進行修正。下面是帶有偏差修正的指數加權移動平均
我們假設\(v_0 = 0, \theta_1 = 40\), 那么通過指數移動加權平均的公式可以得到\(v_1 = (0.98\times v_0 + 0.02 \times 40)/0.02^1 = 40\),很明顯經過修正后的結果比沒有修正的結果好得多。當\(t\)足夠大的時候,也就是說已經度過了冷啟動階段,\(\beta^t\)的結果趨於0,分母趨於1,不再進行修正。
