丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
人工智能開發(fā)者 正文
發(fā)私信給AI研習(xí)社-譯站
發(fā)送

0

深度學(xué)習(xí)優(yōu)化入門:Momentum、RMSProp 和 Adam

本文作者: AI研習(xí)社-譯站 2018-07-23 15:28
導(dǎo)語:本文將介紹 3 種基于梯度下降法來解決病態(tài)曲率同時(shí)加快搜索速度的方法。

雷鋒網(wǎng) AI 研習(xí)社按:本文為雷鋒網(wǎng)字幕組編譯的技術(shù)博客,原標(biāo)題 Intro to optimization in deep learning: Momentum, RMSProp and Adam。

翻譯 | 趙朋飛 于志鵬    校對 | 莊嫻     整理 |  孔令雙

深度學(xué)習(xí)優(yōu)化入門:Momentum、RMSProp 和 Adam

在另一篇文章中,我們討論了隨機(jī)梯度下降的具體細(xì)節(jié),以及如何解決諸如卡在局部極小值或鞍點(diǎn)上的問題。在這篇文章中,我們討論另外一個(gè)困擾神經(jīng)網(wǎng)絡(luò)訓(xùn)練的問題,病態(tài)曲率。 

雖然局部極小值和鞍點(diǎn)會(huì)阻礙我們的訓(xùn)練,但病態(tài)曲率會(huì)減慢訓(xùn)練的速度,以至于從事機(jī)器學(xué)習(xí)的人可能會(huì)認(rèn)為搜索已經(jīng)收斂到一個(gè)次優(yōu)的極小值。讓我們深入了解什么是病態(tài)曲率。

病態(tài)曲率

考慮以下?lián)p失曲線圖。

深度學(xué)習(xí)優(yōu)化入門:Momentum、RMSProp 和 Adam

**病態(tài)曲率**

如你所知,我們在進(jìn)入一個(gè)以藍(lán)色為標(biāo)志的像溝一樣的區(qū)域之前是隨機(jī)的。這些顏色實(shí)際上代表了在特定點(diǎn)上的損失函數(shù)的值,紅色代表最高的值,藍(lán)色代表最低的值。

我們想要下降到最低點(diǎn),因此,需要穿過峽谷。這個(gè)區(qū)域就是所謂的病態(tài)曲率。為了了解為何將其稱為病態(tài)曲率,讓我們再深入研究。放大了看,病態(tài)曲率就像這樣...

深度學(xué)習(xí)優(yōu)化入門:Momentum、RMSProp 和 Adam

**病態(tài)曲率**

要知道這里發(fā)生的事情并不難。梯度下降沿著峽谷的山脊反彈,向最小的方向移動(dòng)的速度非常慢。這是因?yàn)樯郊沟那€在 W1 方向上彎曲的更陡。

考慮山脊表面的 A 點(diǎn)。我們看到,梯度在這點(diǎn)可以分解為兩個(gè)分量,一個(gè)沿著 W1 方向,另外一個(gè)沿著 W2 方向。如果 f 顯著下降的唯一方向是低曲率的,那么優(yōu)化可能會(huì)變得太慢而不切實(shí)際,甚至看起來完全停止,造成局部最小值的假象。  

深度學(xué)習(xí)優(yōu)化入門:Momentum、RMSProp 和 Adam

正常情況下,我們使用一個(gè)較慢的學(xué)習(xí)率來解決這種山脊間反彈的問題,正如上一篇關(guān)于梯度下降的文章所述。然而,這卻產(chǎn)生了麻煩。

當(dāng)我們接近最小值時(shí),慢下來是有意義的,我們想要收斂于它。但是考慮一下梯度下降進(jìn)入病態(tài)曲率的區(qū)域,以及到最小值的絕對距離。如果我們使用較慢的學(xué)習(xí)率,可能需要花費(fèi)更多的時(shí)間才能到達(dá)極小值點(diǎn)。事實(shí)上,有研究論文報(bào)道過使用足夠小的學(xué)習(xí)率來阻值山脊間的反彈可能導(dǎo)致參與者以為損失根本沒有改善,從而放棄訓(xùn)練。

如果 f 顯著下降的唯一方向是低曲率的,那么優(yōu)化可能會(huì)變得太慢而不切實(shí)際,甚至看起來完全停止,造成局部最小值的假象。  

也許我們想要的是能讓我們慢慢進(jìn)入病態(tài)曲率底部的平坦區(qū)域,然后在最小值的方向上加速。二階導(dǎo)數(shù)可以幫助我們做到這一點(diǎn)。

牛頓法

梯度下降是一階優(yōu)化方法。它只考慮損失函數(shù)的一階導(dǎo)數(shù),而不考慮更高階的導(dǎo)數(shù)。這基本上意味著它不知道損失函數(shù)的曲率。它只能說明損失是否下降以及下降的速度,而不能區(qū)分曲線是平坦的,向上的,還是向下的。深度學(xué)習(xí)優(yōu)化入門:Momentum、RMSProp 和 Adam

之所以會(huì)發(fā)生這種現(xiàn)象,是因?yàn)樘荻认陆抵魂P(guān)心梯度,就好像上圖中紅色的點(diǎn),三個(gè)曲線在這一點(diǎn)上的梯度是相同的。如何解決?使用二階導(dǎo)數(shù),或者考慮梯度變化的速率。

一個(gè)非常流行的可以使用二階導(dǎo)數(shù)的技術(shù),可以解決我們的問題,這個(gè)方法稱為牛頓法。  如果表面變得不那么陡峭,那么學(xué)習(xí)步驟就會(huì)減少。

牛頓法可以提供一個(gè)理想的步長,在梯度方向上移動(dòng)。 由于我們現(xiàn)在有了關(guān)于損失表面曲率的信息,所以可以選擇步長,而不是用病態(tài)曲率來超過該區(qū)域的極限。

牛頓法通過計(jì)算 Hessian 矩陣來實(shí)現(xiàn),Hessian 矩陣是損失函數(shù)的二階導(dǎo)數(shù)組成的權(quán)值組合。我所說的權(quán)值組合,如下所示。

深度學(xué)習(xí)優(yōu)化入門:Momentum、RMSProp 和 Adam

 Hessian 矩陣在一個(gè)大矩陣中計(jì)算所有這些梯度。

深度學(xué)習(xí)優(yōu)化入門:Momentum、RMSProp 和 Adam

Hessian 矩陣給出了一個(gè)點(diǎn)的損失曲面曲率的估計(jì)。一個(gè)損失的表面可以有一個(gè)正曲率,這意味著當(dāng)我們移動(dòng)時(shí),表面會(huì)迅速變得不那么陡峭。如果我們有一個(gè)負(fù)曲率,這意味著當(dāng)我們移動(dòng)時(shí),曲面變得越來越陡。 

深度學(xué)習(xí)優(yōu)化入門:Momentum、RMSProp 和 Adam

注意,如果這一步是負(fù)的,那就意味著我們可以使用任意的步驟。換句話說,我們可以切換回原來的算法。這對應(yīng)于下面的情況,梯度變得越來越陡。

深度學(xué)習(xí)優(yōu)化入門:Momentum、RMSProp 和 Adam

然而,如果梯度變得不那么陡峭,我們可能會(huì)走向一個(gè)處于病態(tài)曲率底部的區(qū)域。在這里,牛頓法給了我們一個(gè)修正的學(xué)習(xí)步驟,正如你所看到的,它與曲率成反比,或者曲面變得越來越小。

如果表面變得不那么陡峭,那么學(xué)習(xí)步驟就會(huì)減少。

為什么我們很少使用牛頓法?

看到公式中的 Hessian 矩陣了嗎?Hessian 矩陣需要計(jì)算損失函數(shù)對所有權(quán)值組合的梯度。在組合已知的情況下,要求的值的數(shù)量約是神經(jīng)網(wǎng)絡(luò)中權(quán)值數(shù)量的平方。

對于現(xiàn)代的網(wǎng)絡(luò)來說,通常都含有數(shù)十億個(gè)參數(shù),使用高階的優(yōu)化方法很難計(jì)算 10 億的平方數(shù)量級的梯度。

二階優(yōu)化是關(guān)于梯度本身如何變化的信息。雖然我們不能精確的計(jì)算它,但是我們可以遵循啟發(fā)式方式,以指導(dǎo)我們根據(jù)之前的梯度進(jìn)行優(yōu)化

Momentum

與 SDG 結(jié)合使用的一種常用方法叫做 Momentum。Momentum 不僅會(huì)使用當(dāng)前梯度,還會(huì)積累之前的梯度以確定走向。 梯度下降方程修改如下。

深度學(xué)習(xí)優(yōu)化入門:Momentum、RMSProp 和 Adam

第一個(gè)式子有兩項(xiàng)。第一項(xiàng)是上一次迭代的梯度,乘上一個(gè)被稱為「Momentum 系數(shù)」的值,可以理解為取上次梯度的比例。

深度學(xué)習(xí)優(yōu)化入門:Momentum、RMSProp 和 Adam

我們設(shè) v 的初始為 0,動(dòng)量系數(shù)為 0.9,那么迭代過程如下:

深度學(xué)習(xí)優(yōu)化入門:Momentum、RMSProp 和 Adam

我們可以看到之前的梯度會(huì)一直存在后面的迭代過程中,只是越靠前的梯度其權(quán)重越小。(說的數(shù)學(xué)一點(diǎn),我們?nèi)〉氖沁@些梯度步長的指數(shù)平均)

這對我們的例子有什么幫助呢?觀察下圖,注意到大部分的梯度更新呈鋸齒狀。我們也注意到,每一步的梯度更新方向可以被進(jìn)一步分解為 w1 和 w2 分量。如果我們單獨(dú)的將這些向量求和,沿 w1 方向的的分量將抵消,沿 w2 方向的分量將得到加強(qiáng)。

深度學(xué)習(xí)優(yōu)化入門:Momentum、RMSProp 和 Adam

對于權(quán)值更新來說,將沿著 w2 方向進(jìn)行,因?yàn)?w1 方向已抵消。這就可以幫助我們快速朝著極小值方向更新。所以,動(dòng)量也被認(rèn)為是一種抑制迭代過程中鋸齒下降問題的技術(shù)。

這種方法還可以提高收斂速度,但如果超過極小值,可能需要使用模擬退化算法

我們通常初始化動(dòng)量為 0.5,并且在一定循環(huán)次數(shù)后逐漸退火到 0.9

RMSProp

RMSProp 或均方根反向傳播算法有著有趣的歷史。 它是由傳奇人物Geoffrey Hinton提出的,當(dāng)時(shí)只是在課堂上是隨意提出的一個(gè)想法。 

RMSProp 算法也旨在抑制梯度的鋸齒下降,但與動(dòng)量相比, RMSProp 不需要手動(dòng)配置學(xué)習(xí)率超參數(shù),由算法自動(dòng)完成。 更重要的是,RMSProp 可以為每個(gè)參數(shù)選擇不同的學(xué)習(xí)率。 

在 RMSprop 算法中,每次迭代都根據(jù)下面的公式完成。 它是對每個(gè)參數(shù)單獨(dú)迭代。

深度學(xué)習(xí)優(yōu)化入門:Momentum、RMSProp 和 Adam

讓我們來看看上面的方程都在做什么

在第一個(gè)方程中,我們計(jì)算一個(gè)梯度平方的指數(shù)平均值。由于我們需要針對每個(gè)梯度分量分別執(zhí)行平方,所以此處的梯度向量 Gt 對應(yīng)的是正在更新的參數(shù)方向的梯度各個(gè)方向的投影分量。

為此,我們將上一次更新的超參數(shù)乘希臘字母 nu。然后將當(dāng)前的梯度平方乘(1-nu)。最后我們將他們加到一起得到這一時(shí)刻的指數(shù)平均。

我們之所以使用指數(shù)平均是因?yàn)樵?momentum 例子中看到的那樣,它可以使得間隔和權(quán)重成正比例變化。實(shí)際上使用「指數(shù)」一詞是因?yàn)榍懊骓?xiàng)的權(quán)重呈指數(shù)級下降(最近的項(xiàng)權(quán)重是 ρ,次近的 ρ 方,然后是 ρ 立方,以此類推)。

注意我們表示病態(tài)曲率的圖,梯度沿 w1 方向的分量比沿 w2 方向的分量大的多。我們以平方的方式將 w1 和 w2 疊加,w1 不會(huì)發(fā)生抵消,w2 在指數(shù)平均后會(huì)更小。

第二個(gè)方程定義了步長,我們沿負(fù)梯度方向移動(dòng),但是步長受到指數(shù)平均值的影響。我們設(shè)置了一個(gè)初始學(xué)習(xí)率 eta,用它除指數(shù)平均值。在我們的例子中,因?yàn)?w1 平均后比 w2 大很多,所以 w1 的迭代步長就比 w2 要小很多。因此這將避免我們在山脊之間跳躍而朝著正確的方向移動(dòng)。

第三個(gè)方程是更新操作,超參數(shù) p 通常選為 0.9,但是你可能需要調(diào)整它。方程 2 中的 epsilon 是為了防止被 0 除,通常取 1e-10

還要注意的是,RMSProp 隱含的執(zhí)行模擬退火,假設(shè)我們正朝著極小值前進(jìn)并且我們想要放慢速度避免越過極小值。當(dāng)步長很大時(shí) RMSProp 將自動(dòng)減小梯度更新的步長(大步長容易越過極小值點(diǎn))。

Adam

到目前為止,我們已經(jīng)對比了 RMSProp 和 Momentum 兩種方法。盡管 Momentum 加速了我們對極小值方向的搜索,但 RMSProp 阻礙了我們在振蕩方向上的搜索。

Adam 或 Adaptive Moment Optimization 算法將 Momentum 和 RMSProp 兩種算法結(jié)合了起來。 這里是迭代方程。

深度學(xué)習(xí)優(yōu)化入門:Momentum、RMSProp 和 Adam

我們計(jì)算了每個(gè)梯度分量的指數(shù)平均和梯度平方指數(shù)平均(方程 1、方程 2)。為了確定迭代步長我們在方程 3 中用梯度的指數(shù)平均乘學(xué)習(xí)率(如 Momentum 的情況)并除以根號(hào)下的平方指數(shù)平均(如 Momentum 的情況),然后方程 4 執(zhí)行更新步驟

超參數(shù) beta1 一般取 0.9 左右,beta_2 取 0.99。Epsilon 一般取1e-10。

結(jié)論

在這篇文章中,我們介紹了 3 種基于梯度下降法來解決病態(tài)曲率同時(shí)加快搜索速度的方法。 這些方法通常稱為「自適應(yīng)方法」,因?yàn)閷W(xué)習(xí)步驟會(huì)根據(jù)等高線拓?fù)溥M(jìn)行調(diào)整。

在上面的三種方法中,盡管 Adam 算法在論文中被認(rèn)為是最有前景的算法,但是 Momentum 方法貌似更主流一些。實(shí)踐結(jié)果表明,在給定損失函數(shù)的情況下,三種算法都能收斂到不同的局部最優(yōu)極小值。但是用帶 Momentum 的 SGD 算法比 Adam 算法找到的極小值更加平坦,而自適應(yīng)方法往往會(huì)收斂到更加尖銳的極小值點(diǎn)。平坦的極小值通常好于尖銳的極小值。

深度學(xué)習(xí)優(yōu)化入門:Momentum、RMSProp 和 Adam

盡管自適應(yīng)算法有助于我們在復(fù)雜的損失函數(shù)上找到極小值點(diǎn),但這還不夠,特別是在當(dāng)前網(wǎng)絡(luò)越來越來越深的背景下。除了研究更好的優(yōu)化方法之外,還有一些研究致力于構(gòu)建產(chǎn)生更平滑損失函數(shù)的網(wǎng)絡(luò)架構(gòu)。Batch-Normalization 和殘差連接是其中的解決方法,我們也會(huì)盡快在博客上發(fā)布有關(guān)的詳細(xì)介紹。歡迎隨時(shí)在評論中提問。

擴(kuò)展閱讀

原文鏈接:

https://blog.paperspace.com/intro-to-optimization-momentum-rmsprop-adam/

雷鋒網(wǎng)字幕組編譯。


號(hào)外號(hào)外~

一個(gè)專注于

AI技術(shù)發(fā)展和AI工程師成長的求知求職社區(qū)

誕生啦!

歡迎大家訪問以下鏈接或者掃碼體驗(yàn)

https://club.leiphone.com/page/home

深度學(xué)習(xí)優(yōu)化入門:Momentum、RMSProp 和 Adam

深度學(xué)習(xí)優(yōu)化入門:Momentum、RMSProp 和 Adam

雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

深度學(xué)習(xí)優(yōu)化入門:Momentum、RMSProp 和 Adam

分享:
相關(guān)文章

知情人士

AI研習(xí)社(yanxishe.com)譯站頻道,傳播前沿人工智能知識(shí),讓語言不再成為學(xué)習(xí)知識(shí)的門檻。(原雷鋒字幕組)
當(dāng)月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號(hào)
作品鏈接
個(gè)人簡介
為了您的賬戶安全,請驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號(hào)信息
您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說