機器學(xué)習(xí)優(yōu)化過程中的各種梯度下降方法(SGD磕洪,AdaGrad吭练,RMSprop,AdaDelta析显,Adam鲫咽,Momentum,Nesterov)

機器學(xué)習(xí)優(yōu)化過程中的各種梯度下降方法(SGD谷异,AdaGrad分尸,RMSprop,AdaDelta歹嘹,Adam箩绍,Momentum,Nesterov)

實際上尺上,優(yōu)化算法可以分成一階優(yōu)化和二階優(yōu)化算法材蛛,其中一階優(yōu)化就是指的梯度算法及其變種,而二階優(yōu)化一般是用二階導(dǎo)數(shù)(Hessian 矩陣)來計算怎抛,如牛頓法卑吭,由于需要計算Hessian陣和其逆矩陣,計算量較大马绝,因此沒有流行開來豆赏。這里主要總結(jié)一階優(yōu)化的各種梯度下降方法。先從最原始的梯度下降開始富稻。

SGD算法

簡單來講:樣本少可以采用Batch Gradient Descent掷邦,樣本過大可以SGD,實際情況下一般Mini-batch Gradient Descent唉窃。

BGD是一次將所有的樣本點進(jìn)行掃描并計算出梯度:

這樣雖然簡單耙饰,但是具有一個很大的缺陷纹笼,就是對于較大的數(shù)據(jù)集速度很慢纹份,而且也并不保險,很可能花了很長時間走到了局部最優(yōu),可是又出不來了蔓涧,因為這里的梯度是0件已。所以并不實用。

樣本較大時可以用SGD元暴,隨機梯度下降篷扩,也就是說,每次只用一個隨機抽取的樣本點求導(dǎo)數(shù)茉盏,作為最終結(jié)果鉴未,進(jìn)行下降:

這里的g代表著某一個樣本的gradient。這樣雖然不如直接做BGD在路徑上更穩(wěn)定鸠姨,但是一般最終會找到最優(yōu)解铜秆。而且還有好處是可以在局部最優(yōu)解中跳出來,只要新選取的一個樣本可以提供一個向外的梯度讶迁。SGD是一種可以用來做在線學(xué)習(xí)的连茧,也就是每進(jìn)來一個樣本就更新一下參數(shù)。另外巍糯,SGD比BGD收斂更快啸驯。

常用的一個是Mini-batch gradient,也就是每次訓(xùn)練一個batch祟峦,可以盡量減少波動罚斗,同時又不必把所有的都投入訓(xùn)練。因此比較常用宅楞。但是小批量下降并不能保證很好的收斂惰聂,并且,需要選擇learning rate咱筛,這是很困難的搓幌。

AdaGrad

前面的sgd是對所有的參數(shù)統(tǒng)一求導(dǎo)和下降的,但是由于實際數(shù)據(jù)中可能存在這樣一種情況:有些參數(shù)已經(jīng)近乎最優(yōu)迅箩,因此只需要微調(diào)了溉愁,而另一些可能還需要很大的調(diào)整。這種情況可能會在樣本較少的情況下出現(xiàn)饲趋,比如含有某一特征的樣本出現(xiàn)較少拐揭,因此被代入優(yōu)化的次數(shù)也較少,這樣就導(dǎo)致不同參數(shù)的下降不平衡奕塑。adagrad就是來處理這類問題的堂污。

adagrad的基本想法是,對每個參數(shù)theta自適應(yīng)的調(diào)節(jié)它的學(xué)習(xí)率龄砰,自適應(yīng)的方法就是對每個參數(shù)乘以不同的系數(shù)盟猖,并且這個系數(shù)是通過之前累積的梯度大小的平方和決定的讨衣,也就是說,對于之前更新很多的式镐,相對就可以慢一點反镇,而對那些沒怎么更新過的,就可以給一個大一些的學(xué)習(xí)率娘汞。

Adagrad的算法如下:

RMSprop

這個實際上是對adagrad的一個改進(jìn)歹茶,也就是把Adagrad對歷史梯度加和變成了對歷史梯度求均值(當(dāng)然這個不是嚴(yán)格意義上的均值),然后用這個均值代替Adagrad的累加的梯度和對當(dāng)前梯度進(jìn)行加權(quán)你弦,并用來update惊豺。

用均值代替求和是為了解決Adagrad的學(xué)習(xí)率逐漸消失的問題。

AdaDelta

這個更高級禽作,用AdaDelta下降我們甚至不需要設(shè)置學(xué)習(xí)率扮叨。它的基本思路是這樣:首先,借鑒了Adagrad的思路领迈,對每個參數(shù)進(jìn)行自適應(yīng)的學(xué)習(xí)率變化彻磁,依據(jù)的也是之前的梯度的累積,但是這里不是像Adagrad那樣直接加起來狸捅,而是用平均值的方式(實際使用的是RMS)衷蜓,把之前的梯度大小的影響加進(jìn)來。目的是計算歷史梯度在某個窗內(nèi)的值的均值尘喝,但是不通過儲存窗口內(nèi)的值磁浇,而是用了當(dāng)前的均值和當(dāng)前的梯度來近似計算。另外朽褪,為了解決Adagrad置吓,sgd等方法中直接用梯度的倒數(shù)可能帶來的假設(shè)單位不相同的問題(個人理解是這樣:希望更新梯度乘上系數(shù)以后,那個系數(shù)是不帶單位的缔赠,這樣update和當(dāng)前的parameter有相同的單位才能疊加)衍锚,把梯度的系數(shù)的分子上的eta換成了之前更新的部分Delta(theta)的RMS,這樣嗤堰,更新就變成了:

整個AdaDelta的算法流程如下:

Adam

adam名字來源是adaptive moment estimation戴质。Our method is designed to combine the advantages of two recently popular methods: AdaGrad (Duchi et al., 2011), which works well with sparse gradients, and RMSProp (Tieleman & Hinton, 2012), which works well in on-line and non-stationary settings。也就是說踢匣,adam融合了Adagrad和RMSprop的思想告匠。

這里,用gt的一次方和平方來估計一階矩和二階矩离唬,由于不是全部儲存求平均后专,而是迭代更新的方法,所以會有bias输莺,兩個帶hat 的mt和vt就是消除bias以后的結(jié)果戚哎。然后用這兩個估計的m和v進(jìn)行更新裸诽。

Momentum

動量法是為了解決維度的傾斜程度不相等的問題,讓下一步的位置帶上一些上一次的慣性建瘫,而不是完全按照更新后的走崭捍,這樣會更穩(wěn)一點尸折,減輕上圖所示zigzag的這種情況啰脚。

Nesterov Accelerated Gradient (NAG)

NAG的思路也很簡單,那就是要解決直接動量下降可能直接邁的步子太大的問題实夹,因為我們當(dāng)前下降的時候是無法知道下一步究竟落在一個什么地方的橄浓。但是由于momentum中我們常常把動量項,也就是上一時刻的更新的值亮航,的權(quán)重設(shè)置為0.9左右荸实,也就是說,下一步達(dá)到的位置很大程度是由動量項決定的缴淋,因此我們可以先用動量項估計一下下一步的大概位置准给,然后在估計的位置求取梯度,在將這個梯度作為更新的梯度項重抖,和動量項加起來做一個update露氮。

下面這個圖表示的就是momentum和NAG的區(qū)別,藍(lán)色是momentum钟沛,先計算梯度畔规,在加上動量,紅和綠色表示NAG恨统,先加上動量項叁扫,再計算梯度。

————————————————

版權(quán)聲明:本文為CSDN博主「江戶川柯壯」的原創(chuàng)文章畜埋,遵循CC 4.0 BY-SA版權(quán)協(xié)議莫绣,轉(zhuǎn)載請附上原文出處鏈接及本聲明。

原文鏈接:https://blog.csdn.net/edogawachia/article/details/80071967

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末悠鞍,一起剝皮案震驚了整個濱河市兔综,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌狞玛,老刑警劉巖软驰,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異心肪,居然都是意外死亡锭亏,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進(jìn)店門硬鞍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來慧瘤,“玉大人戴已,你說我怎么就攤上這事」酰” “怎么了糖儡?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長怔匣。 經(jīng)常有香客問我握联,道長,這世上最難降的妖魔是什么每瞒? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任金闽,我火速辦了婚禮,結(jié)果婚禮上剿骨,老公的妹妹穿的比我還像新娘代芜。我一直安慰自己,他們只是感情好浓利,可當(dāng)我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布挤庇。 她就那樣靜靜地躺著,像睡著了一般贷掖。 火紅的嫁衣襯著肌膚如雪嫡秕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天羽资,我揣著相機與錄音淘菩,去河邊找鬼。 笑死屠升,一個胖子當(dāng)著我的面吹牛潮改,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播腹暖,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼汇在,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了脏答?” 一聲冷哼從身側(cè)響起糕殉,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎殖告,沒想到半個月后阿蝶,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡黄绩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年羡洁,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片爽丹。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出伴澄,到底是詐尸還是另有隱情,我是刑警寧澤袋马,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站秸应,受9級特大地震影響虑凛,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜灸眼,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一卧檐、第九天 我趴在偏房一處隱蔽的房頂上張望墓懂。 院中可真熱鬧焰宣,春花似錦、人聲如沸捕仔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽榜跌。三九已至闪唆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間钓葫,已是汗流浹背悄蕾。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留础浮,地道東北人帆调。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像豆同,于是被迫代替她去往敵國和親番刊。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,601評論 2 353

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