[DeeplearningAI筆記]第二章2.3-2.5帶修正偏差的指數加權平均
覺得有用的話,歡迎一起討論相互學習~
2.3 指數加權平均
- 舉個例子,對於圖中英國的溫度數據計算移動平均值或者說是移動平均值(Moving average).
- 大體公式就是前一日的V值加上當日溫度的0.1倍,如果用紅線表示這個計算數值的話就可以得到每日溫度的指數加權平均值.
\[V_{t}=\beta V_{t-1}+(1-\beta)\theta_{t} \]
- 對於\(\theta\)的理解,你可以將其認為該數值表示的是\(\frac{1}{1-\beta}\)天的平均值,例如如果這里取\(\beta\)是取0.9,那么這個V值表示的是十天以來的溫度的加權平均值.如果我們設置\(\beta\)值是0.98那么我們就是在計算50天內的指數加權平均,這時我們用圖中的綠線表示指數加權平均值
- 我們看到這個高值的\(\beta=0.98\)得到的曲線要平坦一些,是因為你多平均了幾天的溫度.所以波動更小,更加平坦.缺點是曲線向右移動,這時因為現在平均的溫度值更多,所以會出現一定的延遲.對於\(\beta=0.98\)這個值的理解在於有0.98的權重給了原先的值,只有0.02的權重給了當日的值.
- 我們現在將\(\beta=0.5\)作圖運行后得到黃線,由於僅平均了兩天的溫度,平均的數據太少,所以得到的曲線有更多的噪聲,更有可能出現異常值,但是這個曲線能更快的適應溫度變化,所以指數加權平均數經常被使用.
- 在統計學中,它常被稱為指數加權移動平均值
2.4 理解指數加權平均
公式:
\[V_{t}=\beta V_{t-1}+(1-\beta)\theta_{t} \]
- \(\beta\)為0.9時,得到的是紅線,\(\beta\)為0.98,得到的是綠線,\(\beta\)為0.5時,得到的是黃線.
- 通過計算,我們發現 \(0.9^{10}\approx\frac{1}{e}\approx0.35\) ,也就是說對於\(\beta=0.9\)而言10天之后權重就會下降到\(\frac{1}{3}\)
- 對於\(\beta=0.98\)而言,有\(0.98^{50}\approx\frac{1}{e}\approx0.35\),即50天之后權重就會下降到\(\frac{1}{3}\)
- 即有
\[(1-\epsilon)^{\frac{1}{\epsilon}}\approx\frac{1}{e} \]
優勢
實際處理數據時,我們會使用以下公式:
- 內存代碼僅僅占用一行數字而已,不斷覆蓋掉原有的V值即可,只占單行數字的存儲和內存.雖然不是最精確的計算平均值的方法,但是相比於原有的計算平均值需要保存所有數據求和后取平均的方法效率更高和資源占用率大大減小.所以在機器學習中大部分采用指數加權平均的方法計算平均值.
2.5 指數加權平均的偏差修正
- 當我們取\(\beta=0.98\)時,實際上我們得到的不是綠色曲線,而是紫色曲線,因為使用指數加權平均的方法在前期會有很大的偏差,為此我們引入了偏差修正的概念
指數加權平均公式:
\[V_{t}=\beta V_{t-1}+(1-\beta)\theta_{t} \]
帶修正偏差的指數加權平均公式:
\[\hat{V}_{t}=\frac{V_{t}}{1-\beta^{t}}=\frac{(\beta V_{t-1}+(1-\beta)\theta_{t})}{1-\beta^{t}} \]
補充
- 在機器學習中,在計算指數加權平均數的大部分時候,大家不太在乎偏差修正,大部分寧願熬過初始階段,拿到具有偏差的估測,然后繼續計算下去.
- 如果你關心初始時期的偏差,修正偏差能幫助你在早期獲得更好的估測