EMA(指数移动平均)及其深度学习应用
在深度學習中,經常會使用EMA(指數移動平均)這個方法對模型的參數做平均,以提高測試指標并增加模型魯棒。
1.基于數學的介紹
1.1 公式例子
我們有關于“溫度-天數”的數據
:在第t天的溫度。
:第t天的移動平均數。
:權重參數。
圖中紅線即是藍色數據點的指數移動平均。
1.2? 和 之間的關系
大概表示前天的平均數據。(以第天做參考)
如:
| 大概表示前10天的平均數據 | 紅線 | ||
| 大概表示前50天的平均數據 | 綠線 | ||
| 大概表示前2天的平均數據 | 黃線 | 
那么越大,表示考慮的時間長度越長。
1.3 進一步理解
當,從往回寫
? ...
迭代代入, … 得:
由此可知:
1.是的加權求和
2. 𝜃?前的系數相加起來為?1?或者逼近?1
當某項系數小于峰值系數(𝟏?𝜷)的𝟏/𝒆時,我們可以忽略它的影響
(0.9)^10 ~= 0.34 ~= 1/e 所以當β=0.9時,相當于前10天的加權平均。
(0.98)^50 ~= 0.36 ~= 1/e 所以當β=0.98時,相當于前50天的加權平均。
(0.5)^2 ~= 0.25 ~= 1/e 所以當β=0.5時,相當于前2天的加權平均。
2.在深度學習模型中的應用
:在第t次更新得到的所有參數權重。
:第t次更新的所有參數移動平均數。
:權重參數。
2.1 為啥EMA會有用
對于更新n次時普通的參數權重? ?(為第n次傳播得到的梯度):
對于更新n次時使用EMA的參數權重?(此式中α為上面提到的參數β):
將代入表達式,并且令得:
對比兩式:
普通的參數權重相當于一直累積更新整個訓練過程的梯度,使用EMA的參數權重相當于使用訓練過程梯度的加權平均(剛開始的梯度權值很小)。由于剛開始訓練不穩定,得到的梯度給更小的權值更為合理,所以EMA會有效。
3.Pytorch實現EMA類
4.biggan實現的EMA
總結
以上是生活随笔為你收集整理的EMA(指数移动平均)及其深度学习应用的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 梦幻西游 python.dll_GitH
- 下一篇: OV7725寄存器配置
