一、指數加權平均算法介紹
引言
在了解指數加權平均之前,首先我們需要回顧一下求平均數的相關概念,從而進行進一步理解與引導。
如何求平均數
平均數求法數學公式:

現在舉例說明:比如我們現在有100天的溫度值,要求這100天的平均溫度值(24,25,24,26,34,28,33,33,34,35..........32),我們可以直接用公式進行運算。
,通過此公式就可以直接求出10天的平均值。而我們要介紹的指數加權平均本質上就是一種近似求平均的方法。
指數加權平均介紹
公式:

參數說明:
![]() |
第t天的平均溫度值 |
![]() |
第t天的溫度值 |
![]() |
可調節的超參數值 |
假如
=0.9,我們可以得到指數平均公式下的平均值求法如下:

通過上面表達式,我們可以看到,V100等於每一個時刻天數的溫度值再乘以一個權值。指數加權平均的結果是由當天溫度值乘以指數衰減函數值,然后類和求得!
本質就是以指數式遞減加權的移動平均。各數值的加權而隨時間而指數式遞減,越近期的數據加權越重,但較舊的數據也給予一定的加權。
而在我們上面提到的普通平均數求法,它的每一項的權值都是一樣的,如果有n項,權值都為1/n。
指數加權平均優勢
推導過程如下:

我們可以看到指數加權平均的求解過程實際上是一個遞推的過程,那么這樣就會有一個非常大的好處,每當我要求從0到某一時刻(n)的平均值的時候,我並不需要像普通求解平均值的作為,保留所有的時刻值,類和然后除以n。而是只需要保留0-(n-1)時刻的平均值和n時刻的溫度值即可。也就是每次只需要保留常數值,然后進行運算即可,這對於深度學習中的海量數據來說,是一個很好的減少內存和空間的做法。
二、指數加權平均算法偏差修正
我們首先來看一個圖:
假設β=0.98時,指數加權平均結果如上圖綠色曲線所示。但是實際上,真實曲線如紫色曲線所示,修正這種問題的方法是進行偏移校正(bias correction)。即在每次計算完Vt后,對Vt進行下式處理:

在剛開始的時候,t比較小,(1−βt)<1(1−βt)<1,這樣就將VtVt修正得更大一些,效果是把紫色曲線開始部分向上提升一些,與綠色曲線接近重合。隨着t增大,(1−βt)≈1(1−βt)≈1,Vt基本不變,紫色曲線與綠色曲線依然重合。這樣就實現了簡單的偏移校正,得到我們希望的綠色曲線。
值得一提的是,機器學習中,偏移校正並不是必須的。因為,在迭代一次次數后(t較大),Vt受初始值影響微乎其微,紫色曲線與綠色曲線基本重合。所以,一般可以忽略初始迭代過程,等到一定迭代之后再取值,這樣就不需要進行偏移校正了。
參考:https://zhuanlan.zhihu.com/p/29895933



