優化算法:指數加權平均

在學習吳恩達的深度學習系列課程,優化算法部分,權重更新部分講到指數加權平均,查找到下面博文。此博文看配圖,舉例,也是吳恩達課程的總結,故此轉載。

原作:cloud&ken

發表於:博客園

鏈接:https://www.cnblogs.com/cloud-ken/p/7723755.html

 指數加權平均

舉個例子,對於圖中英國的溫度數據計算移動平均值或者說是移動平均值(Moving average).

2017-10-24_105908

IMG_20171024_111318
大體公式就是前一日的V值加上當日溫度的0.1倍,如果用紅線表示這個計算數值的話就可以得到每日溫度的指數加權平均值.

2017-10-24_111740

Vt=βVt1+(1β)θt

  • 對於θ
的理解,你可以將其認爲該數值表示的是11β天的平均值,例如如果這裏取β是取0.9,那麼這個V值表示的是十天以來的溫度的加權平均值.如果我們設置β
  • 值是0.98那麼我們就是在計算50天內的指數加權平均,這時我們用圖中的綠線表示指數加權平均值

2017-10-24_123827

  • 我們看到這個高值的β=0.98
得到的曲線要平坦一些,是因爲你多平均了幾天的溫度.所以波動更小,更加平坦.缺點是曲線向右移動,這時因爲現在平均的溫度值更多,所以會出現一定的延遲.對於β=0.98
這個值的理解在於有0.98的權重給了原先的值,只有0.02的權重給了當日的值.我們現在將β=0.5
  • 作圖運行後得到黃線,由於僅平均了兩天的溫度,平均的數據太少,所以得到的曲線有更多的噪聲,更有可能出現異常值,但是這個曲線能更快的適應溫度變化,所以指數加權平均數經常被使用.
  • 在統計學中,它常被稱爲指數加權移動平均值

2.4 理解指數加權平均

公式:

Vt=βVt1+(1β)θt

  • β
爲0.9時,得到的是紅線,β爲0.98,得到的是綠線,β
  • 爲0.5時,得到的是黃線.

2017-10-24_130336

2017-10-24_130542

IMG_20171024_132821

  • 通過計算,我們發現0.9101e0.35
,也就是說對於$\beta=0.9而言10\frac{1}{3}$對於β=0.98,0.98501e0.35,即50天之後權重就會下降到13
即有
(1ϵ)1ϵ1e

優勢

實際處理數據時,我們會使用以下公式:
2017-10-24_135627

  • 內存代碼僅僅佔用一行數字而已,不斷覆蓋掉原有的V值即可,只佔單行數字的存儲和內存.雖然不是最精確的計算平均值的方法,但是相比於原有的計算平均值需要保存所有數據求和後取平均的方法效率更高和資源佔用率大大減小.所以在機器學習中大部分採用指數加權平均的方法計算平均值.

2.5 指數加權平均的偏差修正

當我們取β=0.98

時,實際上我們得到的不是綠色曲線,而是紫色曲線,因爲使用指數加權平均的方法在前期會有很大的偏差,爲此我們引入了偏差修正的概念

2017-10-24_150409

指數加權平均公式:

Vt=βVt1+(1β)θt

帶修正偏差的指數加權平均公式:

V̂ t=Vt1βt=(βVt1+(1β)θt)1βt

IMG_20171024_150711

補充

在機器學習中,在計算指數加權平均數的大部分時候,大家不太在乎偏差修正,大部分寧願熬過初始階段,拿到具有偏差的估測,然後繼續計算下去.
如果你關心初始時期的偏差,修正偏差能幫助你在早期獲得更好的估測


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