日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

神经网络优化:指数衰减计算平均值(滑动平均)

發(fā)布時(shí)間:2023/12/20 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 神经网络优化:指数衰减计算平均值(滑动平均) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Polyak平均會(huì)平均優(yōu)化算法在參數(shù)空間訪問(wèn)中的幾個(gè)點(diǎn)。如果t次迭代梯度下降訪問(wèn)了點(diǎn),那么Polyak平均算法的輸出是。

當(dāng)應(yīng)用Polyak平均于非凸問(wèn)題時(shí),通常會(huì)使用指數(shù)衰減計(jì)算平均值:

? ? ? ? ? ? ? ? ? ? ??? ? ? ? ? ? ? ?

1. 用滑動(dòng)平均估計(jì)局部均值

  滑動(dòng)平均(exponential moving average),或者叫做指數(shù)加權(quán)平均(exponentially weighted moving average),可以用來(lái)估計(jì)變量的局部均值,使得變量的更新與一段時(shí)間內(nèi)的歷史取值有關(guān)。

  變量在t時(shí)刻記為,為變量v在t時(shí)刻的取值,即在不使用滑動(dòng)平均模型時(shí),在使用滑動(dòng)平均模型后,的更新公式如下:

? ? ? ? ? ? ?? ? ? ? ?(1)

  上式中,。 相當(dāng)于沒(méi)有使用滑動(dòng)平均。

  假設(shè)起始,,之后每個(gè)時(shí)刻,依次對(duì)變量v進(jìn)行賦值,不使用滑動(dòng)平均和使用滑動(dòng)平均結(jié)果如下:

表 1

t

不使用滑動(dòng)平均模型,即給v直接賦值

使用滑動(dòng)平均模型,按照公式(1)更新v

使用滑動(dòng)平均模型,按照公式(2)更新v

00//
110110
2202.913.6842
3103.6113.3210
403.2499.4475
5103.92419.5824
6205.5316911.8057
7307.97852115.2932
857.680668913.4859
906.9126020111.2844

?

? ? ? ? ? ? ? ? ? ? ? ?圖 1:三種變量更新方式

  Andrew Ng在Course 2 Improving Deep Neural?Networks中講到,t時(shí)刻變量v的滑動(dòng)平均值大致等于過(guò)去個(gè)時(shí)刻θ值的平均。這個(gè)結(jié)論在滑動(dòng)平均起始時(shí)相差比較大,所以有了Bias correction,將除以修正對(duì)均值的估計(jì)。

  加入了Bias correction后,更新公式如下:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ? ? ? (2)

t越大,越接近1,則公式(1)和(2)得到的結(jié)果將越來(lái)越近。

  當(dāng)越大時(shí),滑動(dòng)平均得到的值越和θ的歷史值相關(guān)。如果,則大致等于過(guò)去10個(gè)θ值的平均;如果,則大致等于過(guò)去100個(gè)θ值的平均。

  滑動(dòng)平均的好處:

占內(nèi)存少,不需要保存過(guò)去10個(gè)或者100個(gè)歷史θ值,就能夠估計(jì)其均值。(當(dāng)然,滑動(dòng)平均不如將歷史值全保存下來(lái)計(jì)算均值準(zhǔn)確,但后者占用更多內(nèi)存和計(jì)算成本更高)

?

2. TensorFlow中使用滑動(dòng)平均來(lái)更新變量(參數(shù))

  滑動(dòng)平均可以看作是變量的過(guò)去一段時(shí)間取值的均值,相比對(duì)變量直接賦值而言,滑動(dòng)平均得到的值在圖像上更加平緩光滑,抖動(dòng)性更小,不會(huì)因?yàn)槟炒蔚漠惓H≈刀沟没瑒?dòng)平均值波動(dòng)很大,如圖 1所示。

  TensorFlow 提供了 tf.train.ExponentialMovingAverage 來(lái)實(shí)現(xiàn)滑動(dòng)平均。在初始化 ExponentialMovingAverage 時(shí),需要提供一個(gè)衰減率(decay),即公式(1)(2)中的。這個(gè)衰減率將用于控制模型的更新速度。ExponentialMovingAverage 對(duì)每一個(gè)變量(variable)會(huì)維護(hù)一個(gè)影子變量(shadow_variable),這個(gè)影子變量的初始值就是相應(yīng)變量的初始值,而每次運(yùn)行變量更新時(shí),影子變量的值會(huì)更新為:

? ? ? ? ? ? ? ? ? ? ?? ?(3)

公式(3)中的 shadow_variable 就是公式(1)中的,公式(3)中的 variable 就是公式(1)中的,公式(3)中的 decay 就是公式(1)中的。

  公式(3)中,decay 決定了影子變量的更新速度,decay 越大影子變量越趨于穩(wěn)定。在實(shí)際運(yùn)用中,decay一般會(huì)設(shè)成非常接近1的數(shù)(比如0.999或0.9999)。為了使得影子變量在訓(xùn)練前期可以更新更快,ExponentialMovingAverage 還提供了 num_updates 參數(shù)動(dòng)態(tài)設(shè)置 decay 的大小。如果在初始化 ExponentialMovingAverage 時(shí)提供了 num_updates 參數(shù),那么每次使用的衰減率將是:

? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? (4)

這一點(diǎn)其實(shí)和Bias correction很像。

?

3. 滑動(dòng)平均為什么在測(cè)試過(guò)程中被使用?

  滑動(dòng)平均可以使模型在測(cè)試數(shù)據(jù)上更健壯(robust)。“采用隨機(jī)梯度下降算法訓(xùn)練神經(jīng)網(wǎng)絡(luò)時(shí),使用滑動(dòng)平均在很多應(yīng)用中都可以在一定程度上提高最終模型在測(cè)試數(shù)據(jù)上的表現(xiàn)。”?

  對(duì)神經(jīng)網(wǎng)絡(luò)邊的權(quán)重 weights 使用滑動(dòng)平均,得到對(duì)應(yīng)的影子變量 shadow_weights。在訓(xùn)練過(guò)程仍然使用原來(lái)不帶滑動(dòng)平均的權(quán)重 weights,不然無(wú)法得到 weights 下一步更新的值,又怎么求下一步 weights 的影子變量 shadow_weights。之后在測(cè)試過(guò)程中使用 shadow_weights 來(lái)代替 weights 作為神經(jīng)網(wǎng)絡(luò)邊的權(quán)重,這樣在測(cè)試數(shù)據(jù)上效果更好。因?yàn)?shadow_weights 的更新更加平滑,對(duì)于隨機(jī)梯度下降而言,更平滑的更新說(shuō)明不會(huì)偏離最優(yōu)點(diǎn)很遠(yuǎn);對(duì)于梯度下降 batch gradient decent,我感覺(jué)影子變量作用不大,因?yàn)樘荻认陆档姆较蛞呀?jīng)是最優(yōu)的了,loss 一定減小;對(duì)于 mini-batch gradient decent,可以嘗試滑動(dòng)平均,畢竟 mini-batch gradient decent 對(duì)參數(shù)的更新也存在抖動(dòng)。

  設(shè),一個(gè)更直觀的理解,在最后的1000次訓(xùn)練過(guò)程中,模型早已經(jīng)訓(xùn)練完成,正處于抖動(dòng)階段,而滑動(dòng)平均相當(dāng)于將最后的1000次抖動(dòng)進(jìn)行了平均,這樣得到的權(quán)重會(huì)更加robust。

??

References

Course 2 Improving Deep Neural?Networks?by Andrew Ng

http://www.cnblogs.com/wuliytTaotao/p/9479958.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的神经网络优化:指数衰减计算平均值(滑动平均)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。