一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

梯度下降方法的視覺解釋(動量,AdaGrad,RMSProp,Adam)

 taotao_2016 2020-06-11

梯度下降方法的視覺解釋(動量,AdaGrad,RMSProp,Adam)

> Animation of 5 gradient descent methods on a surface: gradient descent (cyan), momentum (magenta),

在這篇文章中,由于有大量的資源可以解釋梯度下降,我想在視覺上引導(dǎo)您了解每種方法的工作原理。 借助我構(gòu)建的梯度下降可視化工具,希望我可以為您提供一些獨(dú)特的見解,或者至少提供許多GIF。

我假設(shè)對在機(jī)器學(xué)習(xí)中使用梯度下降的原因和方式有基本的了解(如果沒有,我推薦3Blue1Brown推薦該視頻)。 我在這里的重點是比較和對比這些方法。 如果您已經(jīng)熟悉所有方法,則可以滾動至底部,觀看一些有趣的'賽馬'。

普通梯度下降

讓我們快速復(fù)習(xí)一下。 在機(jī)器學(xué)習(xí)的上下文中,梯度下降的目標(biāo)通常是使機(jī)器學(xué)習(xí)問題的損失函數(shù)最小化。 好的算法可以快速,可靠地找到最小值(即,它不會陷入局部最小值,鞍點或平穩(wěn)區(qū)域,而會求出全局最小值)。

基本的梯度下降算法遵循這樣的思想,即梯度的相反方向指向下部區(qū)域的位置。 因此,它會沿梯度的相反方向迭代地采取步驟。 對于每個參數(shù)theta,它執(zhí)行以下操作:

增量=-學(xué)習(xí)率*梯度

θ+ =增量

Theta是您要優(yōu)化的一些參數(shù)(例如,神經(jīng)網(wǎng)絡(luò)中神經(jīng)元到神經(jīng)元連接的權(quán)重,線性回歸中特征的系數(shù)等)。 機(jī)器學(xué)習(xí)優(yōu)化設(shè)置中可能有成千上萬個這樣的theta。 Delta是算法每次迭代后theta的變化量; 希望隨著每個這樣的變化,θ逐漸接近最佳值。

梯度下降方法的視覺解釋(動量,AdaGrad,RMSProp,Adam)

> Step-by-step illustration of gradient descent algorithm.

由于人類的感知僅限于3維,因此在我所有的可視化中,假設(shè)我們只有兩個參數(shù)(或theta)需要優(yōu)化,它們由圖中的x和y維表示。 表面是損失函數(shù)。 我們想找到位于表面最低點的(x,y)組合。 這個問題對我們來說微不足道,因為我們可以看到整個表面。 但是,球(下降算法)卻沒有; 它一次只能邁出一步,并探索周圍的環(huán)境,就像只用手電筒在黑暗中行走一樣。

Vannilla梯度下降法是普通的,因為它僅對梯度起作用。 以下方法對梯度進(jìn)行了一些其他處理,以使其更快,更好。

動量

梯度下降方法的視覺解釋(動量,AdaGrad,RMSProp,Adam)

> Momentum descent with decay_rate = 1.0 (no decay).

動量算法(或簡稱為動量)的梯度下降借鑒了物理學(xué)的思想。 想象一下,將球滾動到無摩擦碗內(nèi)。 累積的動量并沒有停止在底部,而是將其向前推動,并且球不斷來回滾動。

我們可以將動量的概念應(yīng)用于我們的香草梯度下降算法。 在每個步驟中,除了規(guī)則的漸變以外,它還增加了上一步的運(yùn)動。 在數(shù)學(xué)上,它通常表示為:

增量=-學(xué)習(xí)率梯度+上一個增量衰變率(eq.1)

θ+ =增量(等式2)

如果稍微按摩一下該方程式,然后跟蹤(衰減的)累積梯度總和,我會發(fā)現(xiàn)它更直觀。 當(dāng)我們稍后介紹Adam算法時,這也將使事情變得更容易。

sum_of_gradient =梯度+ previous_sum_of_gradient *衰減率(eq.3)

delta = -learning_rate * sum_of_gradient(等式4)

θ+ =增量(等式5)

(我所做的是剔除-learning_rate。要查看數(shù)學(xué)上的等價關(guān)系,您可以在等式1中用-learning_rate * sum_of_gradient代替delta以得到等式3。)

梯度下降方法的視覺解釋(動量,AdaGrad,RMSProp,Adam)

> Step-by-step illustration of momentum descent. Watch live animation in the app. For the rest of th

讓我們考慮兩種極端情況,以便更好地了解此衰減率參數(shù)。 如果衰減率為0,則它與(香草)梯度下降完全相同。 如果衰減率為1,則它會像我們在開頭提到的無摩擦碗類推一樣不斷地來回?fù)u擺; 你不希望出現(xiàn)這種情況。 通常,衰減率大約在0.8-0.9之間選擇-就像表面上有一點摩擦,因此它最終會減速并停止。

梯度下降方法的視覺解釋(動量,AdaGrad,RMSProp,Adam)

> Momentum (magenta) vs. Gradient Descent (cyan) on a surface with a global minimum (the left well)

那么,動量在哪些方面比香草梯度下降更好? 在左側(cè)的比較中,您可以看到兩個優(yōu)點:

· 動量只是移動得更快(因為它累積了所有動量)

· 動量有逃避局部最小值的作用(因為動量可能將其推離局部最小值)。 同樣,正如我們稍后將看到的那樣,它還將更好地通過高原地區(qū)。

AdaGrad

自適應(yīng)梯度算法(或簡稱AdaGrad)不是跟蹤動量之類的梯度總和,而是跟蹤梯度平方的總和,并使用它來適應(yīng)不同方向的梯度。 方程通常用張量表示。 在這里,我將避免張量來簡化語言。 對于每個維度:

sum_of_gradient_squared =上一個sum_of_gradient_squared +漸變2

增量= -learning_rate *梯度/ sqrt(sum_of_gradient_squared)

θ+ = 增量

梯度下降方法的視覺解釋(動量,AdaGrad,RMSProp,Adam)

> Step-by-step illustration of AdaGrad descent. Watch live animation in the app.

在ML優(yōu)化中,某些功能非常稀疏。 稀疏特征的平均梯度通常很小,因此以慢得多的速度訓(xùn)練這些特征。 解決此問題的一種方法是為每個功能設(shè)置不同的學(xué)習(xí)率,但這會很快變得混亂。

AdaGrad使用這種想法解決了這個問題:您更新的功能越多,將來更新的功能就越少,從而為其他功能(例如稀疏功能)提供了趕超的機(jī)會。 用視覺術(shù)語來說,您更新了此功能有多少表示您在此維度中已移動了多少,并且此概念是由梯度平方的累積和所捕獲的。 請注意,在上面的逐步網(wǎng)格圖示中,如果沒有重新調(diào)整縮放比例(1b),球?qū)⒋蟛糠执怪毕蛳乱苿樱?通過調(diào)整(1d),它會沿對角線移動。

梯度下降方法的視覺解釋(動量,AdaGrad,RMSProp,Adam)

> AdaGrad (white) vs. gradient descent (cyan) on a terrain with a saddle point. The learning rate of

此屬性使AdaGrad(以及其他類似的基于梯度平方的方法,如RMSProp和Adam)可以更好地逃避鞍點。 AdaGrad將走一條直線,而梯度下降(或相關(guān)的動量)則采取'讓我先滑下陡坡,然后再擔(dān)心慢速方向'的方法。 有時,香草梯度下降可能會在兩個方向的梯度均為0且在此處完全滿足的鞍點處停止。

RMSProp

但是,AdaGrad的問題在于它的運(yùn)行速度非常慢。 這是因為梯度平方的總和只會增加而不會縮小。 RMSProp(用于均方根傳播)通過添加衰減因子來解決此問題。

sum_of_gradient_squared = previous_sum_of_gradient_squared * * decay_rate +梯度2*(1- delay_rate)

增量= -learning_rate *梯度/ sqrt(sum_of_gradient_squared)

θ+ =增量

更精確地,梯度平方的和實際上是梯度平方的衰減的和。 衰減率僅表示最近的梯度2很重要,而很久以前的梯度基本上已被忘記。 附帶說明一下,術(shù)語'衰減率'有點用詞不當(dāng)。 與我們在動量中看到的衰減率不同,除衰減外,此處的衰減率還具有縮放效果:它將整個項按比例縮?。?-delay_rate)。 換句話說,如果將delay_rate設(shè)置為0.99,則除了衰減外,梯度平方的總和將為AdaGrad的sqrt(1- 0.99)= 0.1,因此對于相同的步驟,該步長約為10倍。 學(xué)習(xí)率。

梯度下降方法的視覺解釋(動量,AdaGrad,RMSProp,Adam)

> RMSProp (green) vs AdaGrad (white). The first run just shows the balls; the second run also shows

為了了解衰減的影響,在這種直接對比中,AdaGrad white(白色)最初與RMSProp(綠色)保持一致,這與調(diào)整后的學(xué)習(xí)速率和衰減速率一樣。 但是AdaGrad的平方平方和累積起來如此之快,以至于很快就變得龐大起來(由動畫中的平方大小證明)。 他們付出了沉重的代價,最終AdaGrad實際上停止了前進(jìn)。 另一方面,由于衰減率的原因,RMSProp始終將正方形保持在可管理的大小范圍內(nèi)。 這使得RMSProp比AdaGrad更快。

Adam

最后但并非最不重要的一點是,Adam(自適應(yīng)矩估計的縮寫)兼具動量和RMSProp的優(yōu)點。 Adam在經(jīng)驗上表現(xiàn)良好,因此近年來,它通常是深度學(xué)習(xí)問題的首選。

讓我們看看它是如何工作的:

sum_of_gradient = previous_sum_of_gradient * beta1 +漸變*(1-beta1)

sum_of_gradient_squared = previous_sum_of_gradient_squared * beta2 +漸變2*(1- beta2)

delta = -learning_rate * sum_of_gradient / sqrt(sum_of_gradient_squared)

θ+ =增量

Beta1是第一時刻的衰減率,即梯度(又稱為動量)之和,通常設(shè)置為0.9。 Beta 2是第二個時刻的衰減率,是梯度平方的總和,通常設(shè)置為0.999。

梯度下降方法的視覺解釋(動量,AdaGrad,RMSProp,Adam)

> Step-by-step illustration of Adam descent. Watch live animation in the app.

Adam從動量獲得速度,并從RMSProp獲得了在不同方向適應(yīng)梯度的能力。 兩者的結(jié)合使其功能強(qiáng)大。

結(jié)束語

既然我們已經(jīng)討論了所有方法,那么讓我們來看一下到目前為止討論的所有下降方法的競賽! (不可避免地會挑剔一些參數(shù)。獲得品味的最佳方法是在自己周圍玩耍。)

在這個地形上,有兩個小山丘阻礙了通向全球最小值的道路。 亞當(dāng)是唯一能夠達(dá)到全球最低要求的人。 無論采用哪種方式調(diào)整參數(shù),至少從此起始位置開始,其他方法都無法到達(dá)該位置。 這意味著動量和自適應(yīng)梯度都無法解決問題。 這實際上是兩者的結(jié)合:首先,動量使亞當(dāng)超出了其他所有球停止運(yùn)動的局部最小值。 然后,根據(jù)梯度平方和進(jìn)行的調(diào)整將其拉到一邊,因為它是較少探索的方向,從而導(dǎo)致了最終的勝利。

這是另一場比賽。 在此地形中,有一個圍繞全局最小值的平坦區(qū)域(高原)。 通過一些參數(shù)調(diào)整,Momentum和Adam(由于其動量分量)可以使其居中,而其他方法則不能。

總之,梯度下降是一類算法,旨在通過遵循梯度來找到函數(shù)上的最小點。 香草梯度下降正好遵循梯度(由學(xué)習(xí)率定標(biāo))。 改善梯度下降的兩個常用工具是梯度的總和(第一力矩)和梯度平方的總和(第二動量)。 動量法使用具有衰減率的第一時刻來獲得速度。 AdaGrad使用第二個矩不衰減來處理稀疏特征。 RMSProp使用第二矩并以衰減率從AdaGrad加速。 亞當(dāng)同時使用第一刻和第二刻,通常是最佳選擇。 梯度下降算法還有其他一些變體,例如Nesterov加速梯度,AdaDelta等,在本文中未涉及。

最后,我將讓您保持這種勢頭下降而不會衰減的趨勢。 它的路徑構(gòu)成了一個有趣的模式。 我還沒有看到實際的用途,但只是為了娛樂而已。

試一下本文中用于生成所有可視化的可視化工具,然后看看您發(fā)現(xiàn)了什么!

參考資料和相關(guān)鏈接:

[1] http://www.cs./~tijmen/csc321/slides/lecture_slides_lec6.pdf

[2] https:///optimizing-gradient-descent

[3] https://bl./EmilienDupont/aaf429be5705b219aaaf8d691e27ca87

(本文翻譯自Lili Jiang的文章《A Visual Explanation of Gradient Descent Methods (Momentum, AdaGrad, RMSProp, Adam)》,參考:https:///a-visual-explanation-of-gradient-descent-methods-momentum-adagrad-rmsprop-adam-f898b102325c)

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    免费观看一区二区三区黄片| 麻豆国产精品一区二区三区| 国产亚洲精品久久久优势| 国产精品一区二区成人在线| 色婷婷国产熟妇人妻露脸| 中文字幕乱码一区二区三区四区| 在线免费观看黄色美女| 一区二区三区免费公开| 亚洲国产精品久久精品成人| 在线懂色一区二区三区精品| 91麻豆精品欧美视频| 国产精品免费福利在线| 东京不热免费观看日本| 精品香蕉一区二区在线| 亚洲最新av在线观看| 成人综合网视频在线观看| 成年人黄片大全在线观看| 五月天丁香婷婷一区二区| 国产午夜福利片在线观看| 精品人妻一区二区三区免费看| 国产白丝粉嫩av在线免费观看| 欧美三级精品在线观看| 色偷偷偷拍视频在线观看| 国产精品白丝一区二区| 内射精品欧美一区二区三区久久久 | 午夜精品麻豆视频91| 国产偷拍盗摄一区二区| 91午夜少妇极品福利| 五月综合激情婷婷丁香| 噜噜中文字幕一区二区| 亚洲欧美日韩综合在线成成| 国产精品午夜福利免费在线| 国产视频在线一区二区| 中日韩免费一区二区三区| 国产一区二区三区精品免费| 青青操在线视频精品视频| 国产免费一区二区三区不卡| 国产欧美亚洲精品自拍| 亚洲天堂精品一区二区| 不卡中文字幕在线视频| 欧美精品亚洲精品一区|