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