優(yōu)化方法總結(jié)

SGD行您,Momentum溜宽,AdaGrad实苞,RMSProp豺撑,Adam

1. SGD

Batch Gradient Descent

在每一輪的訓(xùn)練過(guò)程中,Batch Gradient Descent算法用整個(gè)訓(xùn)練集的數(shù)據(jù)計(jì)算cost fuction的梯度黔牵,并用該梯度對(duì)模型參數(shù)進(jìn)行更新:

Θ=Θ?α?▽?duì)↗(Θ)

優(yōu)點(diǎn):

  • cost fuction若為凸函數(shù)聪轿,能夠保證收斂到全局最優(yōu)值;若為非凸函數(shù)猾浦,能夠收斂到局部最優(yōu)值

缺點(diǎn):

  • 由于每輪迭代都需要在整個(gè)數(shù)據(jù)集上計(jì)算一次陆错,所以批量梯度下降可能非常慢
  • 訓(xùn)練數(shù)較多時(shí)灯抛,需要較大內(nèi)存
  • 批量梯度下降不允許在線更新模型,例如新增實(shí)例音瓷。

Stochastic Gradient Descent

和批梯度下降算法相反对嚼,Stochastic gradient descent 算法每讀入一個(gè)數(shù)據(jù),便立刻計(jì)算cost fuction的梯度來(lái)更新參數(shù):

Θ=Θ?α?▽?duì)↗(Θ;x(i),y(i))

優(yōu)點(diǎn):

  • 算法收斂速度快(在Batch Gradient Descent算法中, 每輪會(huì)計(jì)算很多相似樣本的梯度, 這部分是冗余的)
  • 可以在線更新
  • 有幾率跳出一個(gè)比較差的局部最優(yōu)而收斂到一個(gè)更好的局部最優(yōu)甚至是全局最優(yōu)

缺點(diǎn):

  • 容易收斂到局部最優(yōu)绳慎,并且容易被困在鞍點(diǎn)

Mini-batch Gradient Descent

mini-batch Gradient Descent的方法是在上述兩個(gè)方法中取折衷, 每次從所有訓(xùn)練數(shù)據(jù)中取一個(gè)子集(mini-batch) 用于計(jì)算梯度:

Θ=Θ?α?▽?duì)↗(Θ;x(i:i+n),y(i:i+n))

Mini-batch Gradient Descent在每輪迭代中僅僅計(jì)算一個(gè)mini-batch的梯度纵竖,不僅計(jì)算效率高,而且收斂較為穩(wěn)定杏愤。該方法是目前深度學(xué)訓(xùn)練中的主流方法

上述三個(gè)方法面臨的主要挑戰(zhàn)如下:

  • 選擇適當(dāng)?shù)膶W(xué)習(xí)率α

  • 較為困難靡砌。太小的學(xué)習(xí)率會(huì)導(dǎo)致收斂緩慢,而學(xué)習(xí)速度太塊會(huì)造成較大波動(dòng)珊楼,妨礙收斂通殃。

  • 目前可采用的方法是在訓(xùn)練過(guò)程中調(diào)整學(xué)習(xí)率大小,例如模擬退火算法:預(yù)先定義一個(gè)迭代次數(shù)m厕宗,每執(zhí)行完m次訓(xùn)練便減小學(xué)習(xí)率画舌,或者當(dāng)cost function的值低于一個(gè)閾值時(shí)減小學(xué)習(xí)率。然而迭代次數(shù)和閾值必須事先定義已慢,因此無(wú)法適應(yīng)數(shù)據(jù)集的特點(diǎn)骗炉。

  • 上述方法中, 每個(gè)參數(shù)的 learning rate 都是相同的,這種做法是不合理的:如果訓(xùn)練數(shù)據(jù)是稀疏的蛇受,并且不同特征的出現(xiàn)頻率差異較大句葵,那么比較合理的做法是對(duì)于出現(xiàn)頻率低的特征設(shè)置較大的學(xué)習(xí)速率,對(duì)于出現(xiàn)頻率較大的特征數(shù)據(jù)設(shè)置較小的學(xué)習(xí)速率兢仰。

  • 近期的的研究表明乍丈,深層神經(jīng)網(wǎng)絡(luò)之所以比較難訓(xùn)練,并不是因?yàn)槿菀走M(jìn)入local minimum把将。相反轻专,由于網(wǎng)絡(luò)結(jié)構(gòu)非常復(fù)雜,在絕大多數(shù)情況下即使是 local minimum 也可以得到非常好的結(jié)果察蹲。而之所以難訓(xùn)練是因?yàn)閷W(xué)習(xí)過(guò)程容易陷入到馬鞍面中请垛,即在坡面上,一部分點(diǎn)是上升的洽议,一部分點(diǎn)是下降的宗收。而這種情況比較容易出現(xiàn)在平坦區(qū)域,在這種區(qū)域中亚兄,所有方向的梯度值都幾乎是 0混稽。

2. Momentum

SGD方法的一個(gè)缺點(diǎn)是其更新方向完全依賴于當(dāng)前batch計(jì)算出的梯度,因而十分不穩(wěn)定。Momentum算法借用了物理中的動(dòng)量概念匈勋,它模擬的是物體運(yùn)動(dòng)時(shí)的慣性礼旅,即更新的時(shí)候在一定程度上保留之前更新的方向,同時(shí)利用當(dāng)前batch的梯度微調(diào)最終的更新方向洽洁。這樣一來(lái)痘系,可以在一定程度上增加穩(wěn)定性,從而學(xué)習(xí)地更快饿自,并且還有一定擺脫局部最優(yōu)的能力:

vt=γ?vt?1+α?▽?duì)↗(Θ)

Θ=Θ?vt

Momentum算法會(huì)觀察歷史梯度vt?1汰翠,若當(dāng)前梯度的方向與歷史梯度一致(表明當(dāng)前樣本不太可能為異常點(diǎn)),則會(huì)增強(qiáng)這個(gè)方向的梯度璃俗,若當(dāng)前梯度與歷史梯方向不一致,則梯度會(huì)衰減悉默。一種形象的解釋是:我們把一個(gè)球推下山城豁,球在下坡時(shí)積聚動(dòng)量,在途中變得越來(lái)越快抄课,γ可視為空氣阻力唱星,若球的方向發(fā)生變化,則動(dòng)量會(huì)衰減跟磨。

3. Nesterov Momentum

在小球向下滾動(dòng)的過(guò)程中间聊,我們希望小球能夠提前知道在哪些地方坡面會(huì)上升,這樣在遇到上升坡面之前抵拘,小球就開(kāi)始減速哎榴。這方法就是Nesterov Momentum,其在凸優(yōu)化中有較強(qiáng)的理論保證收斂僵蛛。并且尚蝌,在實(shí)踐中Nesterov Momentum也比單純的 Momentum 的效果好:

vt=γ?vt?1+α?▽?duì)↗(Θ?γvt?1)

Θ=Θ?vt

其核心思想是:注意到 momentum 方法,如果只看 γ * v 項(xiàng)充尉,那么當(dāng)前的 θ經(jīng)過(guò) momentum 的作用會(huì)變成 θ+γ * v飘言。因此可以把 θ+γ * v這個(gè)位置看做是當(dāng)前優(yōu)化的一個(gè)”展望”位置。所以驼侠,可以在 θ+γ * v求導(dǎo), 而不是原始的θ姿鸿。

這里寫圖片描述

4. Adagrad

上述方法中,對(duì)于每一個(gè)參數(shù)<nobr aria-hidden="true">θi</nobr>

的訓(xùn)練都使用了相同的學(xué)習(xí)率α倒源。Adagrad算法能夠在訓(xùn)練中自動(dòng)的對(duì)learning rate進(jìn)行調(diào)整苛预,對(duì)于出現(xiàn)頻率較低參數(shù)采用較大的α更新;相反笋熬,對(duì)于出現(xiàn)頻率較高的參數(shù)采用較小的α更新碟渺。因此,Adagrad非常適合處理稀疏數(shù)據(jù)。

我們?cè)O(shè)<nobr aria-hidden="true">gt,i</nobr>

為第t輪第i個(gè)參數(shù)的梯度苫拍,即gt,i=▽?duì)↗(Θi)芜繁。因此,SGD中參數(shù)更新的過(guò)程可寫為:

Θt+1,i=Θt,i?α?gt,i

Adagrad在每輪訓(xùn)練中對(duì)每個(gè)參數(shù)θi的學(xué)習(xí)率進(jìn)行更新绒极,參數(shù)更新公式如下:

Θt+1,i=Θt,i?αGt,ii+?√?gt,i

其中骏令,Gt∈Rd×d為對(duì)角矩陣,每個(gè)對(duì)角線位置i,i為對(duì)應(yīng)參數(shù)θi

從第1輪到第t輪梯度的平方和垄提。?是平滑項(xiàng)榔袋,用于避免分母為0,一般取值1e?8铡俐。Adagrad的缺點(diǎn)是在訓(xùn)練的中后期凰兑,分母上梯度平方的累加將會(huì)越來(lái)越大,從而梯度趨近于0审丘,使得訓(xùn)練提前結(jié)束吏够。

5. RMSprop

RMSprop是Geoff Hinton提出的一種自適應(yīng)學(xué)習(xí)率方法。Adagrad會(huì)累加之前所有的梯度平方滩报,而RMSprop僅僅是計(jì)算對(duì)應(yīng)的平均值锅知,因此可緩解Adagrad算法學(xué)習(xí)率下降較快的問(wèn)題。

E[g2]t=0.9E[g2]t?1+0.1g2t

Θt+1=Θt?αE[g2]t+?√?gt

6. Adam

Adam(Adaptive Moment Estimation)是另一種自適應(yīng)學(xué)習(xí)率的方法脓钾。它利用梯度的一階矩估計(jì)和二階矩估計(jì)動(dòng)態(tài)調(diào)整每個(gè)參數(shù)的學(xué)習(xí)率售睹。Adam的優(yōu)點(diǎn)主要在于經(jīng)過(guò)偏置校正后,每一次迭代學(xué)習(xí)率都有個(gè)確定范圍可训,使得參數(shù)比較平穩(wěn)昌妹。公式如下:

mt=β1mt?1+(1?β1)gt</nobr>

vt=β1vt?1+(1?β1)g2t
m^t=mt1?βt1
v^t=vt1?βt2
Θt+1=Θt?αvt√+?mt

其中,mt握截、vt分別是對(duì)梯度的一階矩估計(jì)和二階矩估計(jì)捺宗,可以看作對(duì)期望E[gt]</nobr>,E[g2t]的近似川蒙;mt蚜厉,vt是對(duì)mt,vt的校正畜眨,這樣可以近似為對(duì)期望的無(wú)偏估計(jì)昼牛。 Adam算法的提出者建議β1 的默認(rèn)值為0.9,β2的默認(rèn)值為.999康聂,?默認(rèn)為10^(-8)贰健。 另外,在數(shù)據(jù)比較稀疏的時(shí)候恬汁,adaptive的方法能得到更好的效果伶椿,例如Adagrad,RMSprop, Adam 等。Adam 方法也會(huì)比 RMSprop方法收斂的結(jié)果要好一些, 所以在實(shí)際應(yīng)用中 脊另,Adam為最常用的方法导狡,可以比較快地得到一個(gè)預(yù)估結(jié)果。

最后兩張動(dòng)圖從直觀上展現(xiàn)了算法的優(yōu)化過(guò)程偎痛。第一張圖為不同算法在損失平面等高線上隨時(shí)間的變化情況旱捧,第二張圖為不同算法在鞍點(diǎn)處的行為比較。

這里寫圖片描述
這里寫圖片描述

文章轉(zhuǎn)自 https://blog.csdn.net/u010089444/article/details/76725843

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末踩麦,一起剝皮案震驚了整個(gè)濱河市枚赡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌谓谦,老刑警劉巖贫橙,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異反粥,居然都是意外死亡卢肃,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門星压,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)践剂,“玉大人鬼譬,你說(shuō)我怎么就攤上這事娜膘。” “怎么了优质?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵竣贪,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我巩螃,道長(zhǎng)演怎,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任避乏,我火速辦了婚禮爷耀,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘拍皮。我一直安慰自己歹叮,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布铆帽。 她就那樣靜靜地躺著咆耿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪爹橱。 梳的紋絲不亂的頭發(fā)上萨螺,一...
    開(kāi)封第一講書(shū)人閱讀 51,578評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼慰技。 笑死椭盏,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的惹盼。 我是一名探鬼主播庸汗,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼手报!你這毒婦竟也來(lái)了蚯舱?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤掩蛤,失蹤者是張志新(化名)和其女友劉穎枉昏,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體揍鸟,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡兄裂,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了阳藻。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晰奖。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖腥泥,靈堂內(nèi)的尸體忽然破棺而出匾南,到底是詐尸還是另有隱情,我是刑警寧澤蛔外,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布蛆楞,位于F島的核電站,受9級(jí)特大地震影響夹厌,放射性物質(zhì)發(fā)生泄漏豹爹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一矛纹、第九天 我趴在偏房一處隱蔽的房頂上張望臂聋。 院中可真熱鬧,春花似錦或南、人聲如沸孩等。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)瞎访。三九已至,卻和暖如春吁恍,著一層夾襖步出監(jiān)牢的瞬間扒秸,已是汗流浹背播演。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留伴奥,地道東北人写烤。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像拾徙,于是被迫代替她去往敵國(guó)和親洲炊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 基于隨機(jī)梯度下降(SGD)的優(yōu)化算法在科研和工程的很多領(lǐng)域里都是極其核心的尼啡。很多理論或工程問(wèn)題都可以轉(zhuǎn)化為對(duì)目標(biāo)函...
    Emerson_G閱讀 242,744評(píng)論 6 86
  • 在很多機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的應(yīng)用中暂衡,我們發(fā)現(xiàn)用的最多的優(yōu)化器是 Adam,為什么呢崖瞭? 下面是 TensorFlow ...
    _兩只橙_閱讀 1,327評(píng)論 0 4
  • 本文主要是從HBase應(yīng)用程序設(shè)計(jì)與開(kāi)發(fā)的角度狂巢,總結(jié)幾種常用的性能優(yōu)化方法。 Auto Flash 通過(guò)調(diào)用HTa...
    digger30閱讀 6,209評(píng)論 0 13
  • 1 資源分離打包與加載 游戲中會(huì)有很多地方使用同一份資源书聚。比如唧领,有些界面會(huì)共用同一份字體、同一張圖集雌续,有些場(chǎng)景會(huì)共...
    JumboWu閱讀 1,821評(píng)論 0 9
  • 日子過(guò)的很快斩个,忙忙碌碌中,被紅筆記號(hào)的初八很快便出現(xiàn)在謝唯的日歷上驯杜。 婚禮定在錦江飯店受啥,何家大公子娶媳婦,排場(chǎng)自然...
    延緩厭倦閱讀 346評(píng)論 0 0