神经网络优化篇:详解指数加权平均数(Exponentially weighted averages)
指數加權平均數
比如這兒有去年倫敦的每日溫度,所以1月1號,溫度是40華氏度,相當于4攝氏度。世界上大部分地區使用攝氏度,但是美國使用華氏度。在1月2號是9攝氏度等等。在年中的時候,一年365天,年中就是說,大概180天的樣子,也就是5月末,溫度是60華氏度,也就是15攝氏度等等。夏季溫度轉暖,然后冬季降溫。
用數據作圖,可以得到以下結果,起始日在1月份,這里是夏季初,這里是年末,相當于12月末。
這里是1月1號,年中接近夏季的時候,隨后就是年末的數據,看起來有些雜亂,如果要計算趨勢的話,也就是溫度的局部平均值,或者說移動平均值。
要做的是,首先使\(v_{0} =0\),每天,需要使用0.9的加權數之前的數值加上當日溫度的0.1倍,即\(v_{1} =0.9v_{0} + 0.1\theta_{1}\),所以這里是第一天的溫度值。
第二天,又可以獲得一個加權平均數,0.9乘以之前的值加上當日的溫度0.1倍,即\(v_{2}= 0.9v_{1} + 0.1\theta_{2}\),以此類推。
第二天值加上第三日數據的0.1,如此往下。大體公式就是某天的\(v\)等于前一天\(v\)值的0.9加上當日溫度的0.1。
如此計算,然后用紅線作圖的話,便得到這樣的結果。
得到了移動平均值,每日溫度的指數加權平均值。
看一下上面的公式,\(v_{t} = 0.9v_{t - 1} +0.1\theta_{t}\),把0.9這個常數變成\(\beta\),將之前的0.1變成\((1 - \beta)\),即\(v_{t} = \beta v_{t - 1} + (1 - \beta)\theta_{t}\)
由于以后要考慮的原因,在計算時可視\(v_{t}\)大概是\(\frac{1}{(1 -\beta)}\)的每日溫度,如果\(\beta\)是0.9,會想,這是十天的平均值,也就是紅線部分。
來試試別的,將\(\beta\)設置為接近1的一個值,比如0.98,計算\(\frac{1}{(1 - 0.98)} =50\),這就是粗略平均了一下,過去50天的溫度,這時作圖可以得到綠線。
這個高值\(\beta\)要注意幾點,得到的曲線要平坦一些,原因在于多平均了幾天的溫度,所以這個曲線,波動更小,更加平坦,缺點是曲線進一步右移,因為現在平均的溫度值更多,要平均更多的值,指數加權平均公式在溫度變化時,適應地更緩慢一些,所以會出現一定延遲,因為當\(\beta=0.98\),相當于給前一天的值加了太多權重,只有0.02的權重給了當日的值,所以溫度變化時,溫度上下起伏,當\(\beta\) 較大時,指數加權平均值適應地更緩慢一些。
可以再換一個值試一試,如果\(\beta\)是另一個極端值,比如說0.5,根據右邊的公式(\(\frac{1}{(1-\beta)}\)),這是平均了兩天的溫度。
作圖運行后得到黃線。
由于僅平均了兩天的溫度,平均的數據太少,所以得到的曲線有更多的噪聲,有可能出現異常值,但是這個曲線能夠更快適應溫度變化。
所以指數加權平均數經常被使用,再說一次,它在統計學中被稱為指數加權移動平均值,就簡稱為指數加權平均數。通過調整這個參數(\(\beta\)),或者說后面的算法學習,會發現這是一個很重要的參數,可以取得稍微不同的效果,往往中間有某個值效果最好,\(\beta\)為中間值時得到的紅色曲線,比起綠線和黃線更好地平均了溫度。
總結
以上是生活随笔為你收集整理的神经网络优化篇:详解指数加权平均数(Exponentially weighted averages)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 背会了常见的几个线程池用法,结果被问翻了
- 下一篇: STM32CubeMX教程13 ADC