網(wǎng)站制作NEWS
深度學(xué)習(xí)中的優(yōu)化器學(xué)習(xí)總結(jié)
梯度下降法
1.批梯度下降法(Batch Gradient Descent)
一次迭代訓(xùn)練所有樣本,樣本總數(shù)為n, 學(xué)習(xí)訓(xùn)練的模型參數(shù)為W,代價(jià)函數(shù)為J(W),輸入和輸出的樣本分別為X^i,Y^i, 則代價(jià)函數(shù)關(guān)于模型參數(shù)的偏導(dǎo)數(shù)即相關(guān)梯度為ΔJ(W),學(xué)習(xí)率為η_t
優(yōu)點(diǎn):理想狀態(tài)下經(jīng)過足夠多的迭代后可以達(dá)到全局最優(yōu);
缺點(diǎn):對于大數(shù)據(jù)集,訓(xùn)練速度會很慢
2.隨機(jī)梯度下降法(Stochastic Gradient Descent)
為了加快收斂速度,每次訓(xùn)練的都是隨機(jī)的一個樣本;
優(yōu)點(diǎn):訓(xùn)練速度快,引入了噪聲(隨機(jī)選取樣本),使得可能會避免陷入局部最優(yōu)解;
3.Mini-Batch Gradient Descent
BGD 和 SGD的折中方案, batch_size = 1, 就是 SGD, batch_size = m 就是Mini-Batch Gradient Descent,(現(xiàn)在深度學(xué)習(xí)中很多直接把Mini-Batch Gradient Descent 簡稱為SGD, 提到SGD 一般指的就是Mini-Batch Gradient Descent;
優(yōu)點(diǎn):mini-batch gradient descent 相對SGD在下降的時(shí)候,相對平滑些(相對穩(wěn)定),不像SGD那樣震蕩的比較厲害。
缺點(diǎn):增加了一個超參數(shù) batch_size,要去調(diào)這個超參數(shù);
動量優(yōu)化法
1.Momentum
從訓(xùn)練集中取一個大小為n的小批量{X^1,X^2,...,X^n}樣本,對應(yīng)的真實(shí)值分別為Y^i,則Momentum優(yōu)化表達(dá)式為
其中v_t表示 t 時(shí)刻積攢的加速度,α表示動力的大小,一般取值為0.9;
動量主要解決SGD的兩個問題:一是隨機(jī)梯度的方法(引入的噪聲);二是Hessian矩陣病態(tài)問題(不是很理解)。
理解策略為:由于當(dāng)前權(quán)值的改變會受到上一次權(quán)值改變的影響,類似于小球向下滾動的時(shí)候帶上了慣性。這樣可以加快小球向下滾動的速度。
2.牛頓加速度梯度法(Nesterov Accelerated Gradient)
理解策略:在Momentun中小球會盲目地跟從下坡的梯度,容易發(fā)生錯誤。所以需要一個更聰明的小球,能提前知道它要去哪里,還要知道走到坡底的時(shí)候速度慢下來而不是又沖上另一個坡。計(jì)算W_t−αv_{t−1}可以表示小球下一個位置大概在哪里。從而可以提前知道下一個位置的梯度,然后使用到當(dāng)前位置來更新參數(shù)。
自適應(yīng)學(xué)習(xí)率優(yōu)化算法
1.AdaGrad算法
假定一個多分類問題,i表示第i個分類,t表示第t迭代同時(shí)也表示分類i累計(jì)出現(xiàn)的次數(shù)。η_0表示初始的學(xué)習(xí)率取值一般為0.01,ϵ是一個取值很小的數(shù)(一般為1e-8)為了避免分母為0。W_t表示t時(shí)刻即第t迭代模型的參數(shù),g_{t,i}=ΔJ(W_{t,i})表示t時(shí)刻,指定分類i,代價(jià)函數(shù)J(⋅)關(guān)于W的梯度。
從表達(dá)式可以看出,對出現(xiàn)比較多的類別數(shù)據(jù),Adagrad給予越來越小的學(xué)習(xí)率,而對于比較少的類別數(shù)據(jù),會給予較大的學(xué)習(xí)率。因此Adagrad適用于數(shù)據(jù)稀疏或者分布不平衡的數(shù)據(jù)集。
Adagrad 的主要優(yōu)勢在于不需要人為的調(diào)節(jié)學(xué)習(xí)率,它可以自動調(diào)節(jié);缺點(diǎn)在于,隨著迭代次數(shù)增多,學(xué)習(xí)率會越來越小,最終會趨近于0。
2.RMSProp算法
RMSProp算法修改了AdaGrad的梯度積累為指數(shù)加權(quán)的移動平均,使得其在非凸設(shè)定下效果更好
其中,W_t表示t時(shí)刻即第t迭代模型的參數(shù),g_t=ΔJ(W_t)表示t次迭代代價(jià)函數(shù)關(guān)于W的梯度大小,E[g^2]t表示前t次的梯度平方的均值。α表示動力(通常設(shè)置為0.9),η0表示全局初始學(xué)習(xí)率。ϵ是一個取值很小的數(shù)(一般為1e-8)為了避免分母為0。
RMSProp借鑒了Adagrad的思想,觀察表達(dá)式,分母為sqrt(E[g^2]_t+ϵ)。由于取了個加權(quán)平均,避免了學(xué)習(xí)率越來越低的問題,而且能自適應(yīng)地調(diào)節(jié)學(xué)習(xí)率。
RMSProp算法在經(jīng)驗(yàn)上已經(jīng)被證明是一種有效且實(shí)用的深度神經(jīng)網(wǎng)絡(luò)優(yōu)化算法。目前它是深度學(xué)習(xí)從業(yè)者經(jīng)常采用的優(yōu)化方法之一。
3. AdaDelta算法
AdaGrad算法和RMSProp算法都需要指定全局學(xué)習(xí)率,AdaDelta算法結(jié)合兩種算法每次參數(shù)的更新步長即:
AdaDelta不需要設(shè)置一個默認(rèn)的全局學(xué)習(xí)率
優(yōu)點(diǎn):在模型訓(xùn)練的初期和中期,AdaDelta表現(xiàn)很好,加速效果不錯,訓(xùn)練速度快。
缺點(diǎn):在模型訓(xùn)練的后期,模型會反復(fù)地在局部最小值附近抖動。
4. Adam算法
Adam中動量直接并入了梯度一階矩(指數(shù)加權(quán))的估計(jì),Adam包括偏置修正,修正從原點(diǎn)初始化的一階矩(動量項(xiàng))和(非中心的)二階矩估計(jì)
其中,m_t和v_t分別為一階動量項(xiàng)和二階動量項(xiàng)。β_1,β_2為動力值大小通常分別取0.9和0.999;m^t,v^t分別為各自的修正值。
Adam通常被認(rèn)為對超參數(shù)的選擇相當(dāng)魯棒,盡管學(xué)習(xí)率有時(shí)需要從建議的默認(rèn)修改;
對比
① 在運(yùn)行速度方面
兩個動量優(yōu)化器Momentum和NAG的速度最快,其次是三個自適應(yīng)學(xué)習(xí)率優(yōu)化器AdaGrad、AdaDelta以及RMSProp,最慢的則是SGD。
② 在收斂軌跡方面
兩個動量優(yōu)化器雖然運(yùn)行速度很快,但是初中期走了很長的”岔路”。
三個自適應(yīng)優(yōu)化器中,Adagrad初期走了岔路,但后來迅速地調(diào)整了過來,但相比其他兩個走的路最長;AdaDelta和RMSprop的運(yùn)行軌跡差不多,但在快接近目標(biāo)的時(shí)候,RMSProp會發(fā)生很明顯的抖動。
SGD相比于其他優(yōu)化器,走的路徑是最短的,路子也比較正。
主流的觀點(diǎn)認(rèn)為:Adam等自適應(yīng)學(xué)習(xí)率算法對于稀疏數(shù)據(jù)具有優(yōu)勢,且收斂速度很快;但精調(diào)參數(shù)的SGD(+Momentum)往往能夠取得更好的最終結(jié)果
多重隨機(jī)標(biāo)簽
有哪些erp軟件 目前哪些四川長牌游戲開發(fā)公司比較靠譜怎么聯(lián)系 有沒有正規(guī)的黃金回收平臺推薦一下呢 風(fēng)車怎么做手工 馬鞍山職業(yè)技術(shù)學(xué)院王牌專業(yè)排名一覽表 溫州市圖書館默認(rèn)密碼 開發(fā)一個app需要多少錢啊 2024年承德中考200300分可以上的職業(yè)學(xué)校 飛機(jī)軟件在中國怎么用 誰知道這個網(wǎng)站的源碼哪里有50分一定要基本一樣的 959logo寓意解釋 深圳南山辦公室裝修打造舒適高效工作環(huán)境 汕頭市新濠網(wǎng)絡(luò)服務(wù)有限公司怎么樣 高密四中的新校區(qū)建設(shè) bim參數(shù)化設(shè)計(jì)包括 揚(yáng)州有哪些美食 有誰知道免費(fèi)推廣的方法 沁水縣龍港鎮(zhèn)川香鹵肉店招聘信息 手機(jī)攝像頭改裝usb攝像頭 織夢怎么安裝制作百度xml地圖 中秋節(jié)的來歷和風(fēng)俗 中秋節(jié)那天應(yīng)該做什么 黃楷淇培訓(xùn)課程 為什么大多數(shù)人大學(xué)都選商務(wù)英語和電子商務(wù)專業(yè) 溫州有什么人氣高的海鮮店推薦 什么壓縮工具能解壓asp和cfg文件 吳忠之最 舒城火車站簡介 公益招聘會 招聘方 還要錢嗎 上海紅盾網(wǎng)企業(yè)查詢 怎樣制作一份合格的演講ppt模板