欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

各種梯度下降法是如何工作的

深度學(xué)習(xí)自然語(yǔ)言處理 ? 來(lái)源:深度學(xué)習(xí)自然語(yǔ)言處理 ? 作者:深度學(xué)習(xí)自然語(yǔ)言 ? 2022-08-17 11:50 ? 次閱讀

導(dǎo)讀一圖勝千言,什么?還是動(dòng)畫,那就更棒啦!本文用了大量的資源來(lái)解釋各種梯度下降法(gradient descents),想給大家直觀地介紹一下這些方法是如何工作的。

一圖勝千言,什么?還是動(dòng)畫,那就更棒啦!

7b29c7a0-1dcd-11ed-ba43-dac502259ad0.gif

在一個(gè)表面上動(dòng)畫演示5個(gè)梯度下降法: 梯度下降(青色) ,momentum(洋紅色) ,AdaGrad (白色) ,RMSProp (綠色) ,Adam (藍(lán)色)。左坑是全局極小值,右坑是局部極小值

在這篇文章中,我用了大量的資源來(lái)解釋各種梯度下降法(gradient descents),想直觀地介紹一下這些方法是如何工作的。通過(guò)我寫的一個(gè)梯度下降可視化工具(https://github.com/lilipads/gradient_descent_viz)的幫助,希望可以向你展示一些獨(dú)特的見(jiàn)解,或者至少是很多GIF :-)

我假設(shè)大家已經(jīng)對(duì)梯度下降在機(jī)器學(xué)習(xí)中的使用原因和方式有基本的了解。這里的重點(diǎn)是比較這些方法。如果你已經(jīng)熟悉了所有的方法,可以拉到底部觀看一些有趣的“賽馬”。

原版梯度下降(Vanilla Gradient Descent)

讓我們快速?gòu)?fù)習(xí)一下。在機(jī)器學(xué)習(xí)的場(chǎng)景下,梯度下降學(xué)習(xí)的目標(biāo)通常是最小化機(jī)器學(xué)習(xí)問(wèn)題的損失函數(shù)。一個(gè)好的算法能夠快速可靠地找到最小值(也就是說(shuō),它不會(huì)陷入局部極小值、鞍點(diǎn)或高原區(qū)域,而是尋找全局最小值)。

基本的梯度下降算法遵循的思想是,梯度的相反方向指向較低的區(qū)域。所以它在梯度的相反方向迭代。對(duì)于每個(gè)參數(shù) theta,它做如下操作:

delta = - learning_rate * gradient

theta += delta

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

7b7c66f4-1dcd-11ed-ba43-dac502259ad0.gif

由于人類的感知僅限于三維,在我所有的可視化中,假設(shè)我們只有兩個(gè)參數(shù)(或者 thetas)需要優(yōu)化,它們由圖中的 x 和 y 維表示。曲面是損失函數(shù)。我們要找到在曲面最低點(diǎn)的(x,y)組合。這個(gè)問(wèn)題對(duì)我們來(lái)說(shuō)是顯而易見(jiàn)的,因?yàn)槲覀兛梢钥吹秸麄€(gè)曲面。但是這個(gè)球(下降算法)不能,它一次只能走一步,探索周圍的環(huán)境,就像在黑暗中只用手電筒走路一樣。

原版梯度下降法之所以叫原版,是因?yàn)樗话凑仗荻葋?lái)執(zhí)行。下面的方法對(duì)梯度進(jìn)行一些額外的處理,使其更快、更好。

動(dòng)量(Momentum)

7ba0c3fa-1dcd-11ed-ba43-dac502259ad0.gif

帶有動(dòng)量的梯度下降算法(簡(jiǎn)稱動(dòng)量)借鑒了物理學(xué)的思想。想象一下在無(wú)摩擦的碗里滾動(dòng)一個(gè)球。沒(méi)有在底部停止,而是積累的動(dòng)量推動(dòng)它前進(jìn),球繼續(xù)前后滾動(dòng)。

我們可以把動(dòng)量的概念應(yīng)用到我們的原版梯度下降算法中。在每個(gè)步驟中,除了常規(guī)的梯度之外,它還增加了前一步中的移動(dòng)。在數(shù)學(xué)上,它通常表示為:

delta = - learning_rate * gradient + previous_delta * decay_rate (方程1)

theta += delta (方程2)

我發(fā)現(xiàn)如果我稍微修改一下這個(gè)方程,然后跟蹤(衰減的)累積梯度之和,會(huì)更直觀。當(dāng)我們稍后引入 Adam 算法時(shí),這也會(huì)使事情變得更簡(jiǎn)單。

sum_of_gradient = gradient + previous_sum_of_gradient * decay_rate (方程3)

delta = -learning_rate * sum_of_gradient (方程4)

theta += delta (方程5)

(我所做的是分解出學(xué)習(xí)率。為了看到數(shù)學(xué)等價(jià)性,可以用-learning_rate * sum_of_gradient代替方程1中的delta 以得到方程3.)

7bb18dd4-1dcd-11ed-ba43-dac502259ad0.jpg

讓我們考慮兩個(gè)極端情況來(lái)更好地理解這個(gè)衰減率(decay rate)參數(shù)。如果衰減率為0,那么它與原版梯度下降完全相同。如果衰減率是1,那么它就會(huì)像我們開(kāi)始提到的無(wú)摩擦碗的類比一樣,前后不斷地?fù)u擺; 你不會(huì)想要這樣的結(jié)果。通常衰減率選擇在0.8-0.9左右,它就像一個(gè)有一點(diǎn)摩擦的表面,所以它最終會(huì)減慢并停止。

7bbfa9b4-1dcd-11ed-ba43-dac502259ad0.gif

那么,在哪些方面動(dòng)量比原版梯度下降更好呢?在上面的比較中,你可以看到兩個(gè)優(yōu)點(diǎn):

動(dòng)量移動(dòng)得更快(因?yàn)樗e累的所有動(dòng)量)

動(dòng)量有機(jī)會(huì)逃脫局部極小值(因?yàn)閯?dòng)量可能推動(dòng)它脫離局部極小值)。同樣,我們將在后面看到,它也將更好地通過(guò)高原區(qū)

AdaGrad

Adaptive Gradient 算法,簡(jiǎn)稱 AdaGrad,不是像動(dòng)量一樣跟蹤梯度之和,而是跟蹤梯度平方之和,并使用這種方法在不同的方向上調(diào)整梯度。這些方程通常用張量表示。我將避免使用張量來(lái)簡(jiǎn)化這里的語(yǔ)言。對(duì)于每個(gè)維度:

sum_of_gradient_squared = previous_sum_of_gradient_squared + gradient2

delta = -learning_rate * gradient / sqrt(sum_of_gradient_squared)

theta += delta

7c342b22-1dcd-11ed-ba43-dac502259ad0.jpg

在機(jī)器學(xué)習(xí)優(yōu)化中,一些特征是非常稀疏的。稀疏特征的平均梯度通常很小,所以這些特征的訓(xùn)練速度要慢得多。解決這個(gè)問(wèn)題的一種方法是為每個(gè)特征設(shè)置不同的學(xué)習(xí)率,但這很快就會(huì)變得混亂。

Adagrad 解決這個(gè)問(wèn)題的思路是: 你已經(jīng)更新的特征越多,你將來(lái)更新的就越少,這樣就有機(jī)會(huì)讓其它特征(例如稀疏特征)趕上來(lái)。用可視化的術(shù)語(yǔ)來(lái)說(shuō),更新這個(gè)特征的程度即在這個(gè)維度中移動(dòng)了多少,這個(gè)概念由梯度平方的累積和表達(dá)。注意在上面的一步一步的網(wǎng)格插圖中,如果沒(méi)有重新縮放調(diào)整(1b) ,球大部分會(huì)垂直向下移動(dòng); 如果有調(diào)整(1d) ,它會(huì)沿對(duì)角線方向移動(dòng)。

7c428a82-1dcd-11ed-ba43-dac502259ad0.gif

這個(gè)屬性讓 AdaGrad (以及其它類似的基于梯度平方的方法,如 RMSProp 和 Adam)更好地避開(kāi)鞍點(diǎn)。Adagrad 將采取直線路徑,而梯度下降(或相關(guān)的動(dòng)量)采取的方法是“讓我先滑下陡峭的斜坡,然后才可能擔(dān)心較慢的方向”。有時(shí)候,原版梯度下降可能非常滿足的僅僅停留在鞍點(diǎn),那里兩個(gè)方向的梯度都是0。

RMSProp

然而,AdaGrad 的問(wèn)題在于它非常慢。這是因?yàn)樘荻鹊钠椒胶椭粫?huì)增加而不會(huì)減小。Rmsprop (Root Mean Square Propagation)通過(guò)添加衰減因子來(lái)修復(fù)這個(gè)問(wèn)題。

sum_of_gradient_squared = previous_sum_of_gradient_squared * decay_rate+ gradient2 * (1- decay_rate)

delta = -learning_rate * gradient / sqrt(sum_of_gradient_squared)

theta += delta

更精確地說(shuō),梯度的平方和實(shí)際上是梯度平方的衰減和。衰減率表明的是只是最近的梯度平方有意義,而很久以前的梯度基本上會(huì)被遺忘。順便說(shuō)一句,“衰減率”這個(gè)術(shù)語(yǔ)有點(diǎn)用詞不當(dāng)。與我們?cè)趧?dòng)量中看到的衰減率不同,除了衰減之外,這里的衰減率還有一個(gè)縮放效應(yīng): 它以一個(gè)因子(1 - 衰減率)向下縮放整個(gè)項(xiàng)。換句話說(shuō),如果衰減率設(shè)置為0.99,除了衰減之外,梯度的平方和將是 sqrt (1-0.99) = 0.1,因此對(duì)于相同的學(xué)習(xí)率,這一步大10倍。

7c5c31f8-1dcd-11ed-ba43-dac502259ad0.gif

為了看到衰減的效果,在這個(gè)對(duì)比中,AdaGrad (白色)最初與 RMSProp (綠色)差不多,正如調(diào)整學(xué)習(xí)率和衰減率的預(yù)期。但是 AdaGrad 的梯度平方和累計(jì)得非???,以至于它們很快變得非常巨大(從動(dòng)畫中方塊的大小可以看出)。買路費(fèi)負(fù)擔(dān)沉重,最終 AdaGrad 幾乎停止了。另一方面,由于衰變率的原因,RMSProp 一直將方塊保持在一個(gè)可控的大小。這使得 RMSProp 比 AdaGrad 更快。

Adam

最后但并非最不重要的是,Adam (Adaptive Moment Estimation)同時(shí)兼顧了動(dòng)量和 RMSProp 的優(yōu)點(diǎn)。Adam在實(shí)踐中效果很好,因此在最近幾年,它是深度學(xué)習(xí)問(wèn)題的常用選擇。

讓我們來(lái)看看它是如何工作的:

sum_of_gradient = previous_sum_of_gradient * beta1 + gradient * (1 - beta1) [Momentum]

sum_of_gradient_squared = previous_sum_of_gradient_squared * beta2 + gradient2 * (1- beta2) [RMSProp]

delta = -learning_rate * sum_of_gradient / sqrt(sum_of_gradient_squared)

theta += delta

Beta1是一階矩梯度之和(動(dòng)量之和)的衰減率,通常設(shè)置為0.9。Beta2是二階矩梯度平方和的衰減率,通常設(shè)置為0.999。

7cb1d414-1dcd-11ed-ba43-dac502259ad0.jpg

Adam 的速度來(lái)自于動(dòng)量和RMSProp 適應(yīng)不同方向的梯度的能力。這兩者的結(jié)合使它變得更強(qiáng)大。

結(jié)束語(yǔ)

現(xiàn)在我們已經(jīng)討論了所有的方法,讓我們觀看幾個(gè)比賽,包含所有我們上面提到的下降方法!(有一些不可避免的參數(shù)挑選。最好自己玩一下)

在這個(gè)地形中,有兩座小山阻擋了通往全局極小值的道路。Adam是唯一一個(gè)能夠找到通往全局極小值的算法。無(wú)論以哪種方式調(diào)整參數(shù),至少?gòu)倪@個(gè)起始位置開(kāi)始,沒(méi)有任何其它方法可以到達(dá)那里。這意味著不管是動(dòng)量還是自適應(yīng)梯度都不能單獨(dú)做到這一點(diǎn)。這實(shí)際上是兩者的結(jié)合: 首先,動(dòng)量使Adam越過(guò)了所有其它球停止的局部極小值點(diǎn); 然后對(duì)梯度平方和的調(diào)整使其側(cè)向移動(dòng),因?yàn)檫@是一個(gè)未被探索的方向,導(dǎo)致了它的最終勝利。

這是另一場(chǎng)比賽。在這個(gè)地形中,圍繞著全局極小值有一個(gè)平坦的區(qū)域(高原)。通過(guò)一些參數(shù)調(diào)整,Momentum 和 Adam (多得其動(dòng)量組件)可以到達(dá)中心,而其它方法不能。

總之,梯度下降法算法是一類通過(guò)梯度來(lái)尋找函數(shù)最小點(diǎn)的算法。原版梯度下降只遵循梯度(按學(xué)習(xí)速率進(jìn)行調(diào)整)。改善梯度下降法的兩個(gè)常用工具是梯度之和(一階矩)和梯度平方之和(二階矩)。動(dòng)量利用一階矩的衰減率來(lái)獲得速度。Adagrad 使用沒(méi)有衰減的二階矩來(lái)處理稀疏特征。Rmsprop 使用二階矩的衰減率來(lái)加速 AdaGrad。Adam同時(shí)使用一階矩和二階矩,通常是最好的選擇。還有一些其它的梯度下降算法,比如 Nesterov 加速梯度算法,AdaDelta 算法等等,在本文中沒(méi)有涉及。

最后,展示一下帶著沒(méi)有衰減的動(dòng)量下降。它的路徑構(gòu)成了一個(gè)有趣的模式。沒(méi)有什么實(shí)際的用處,但是在這里展示它只是為了好玩。

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:梯度下降的可視化解釋(Adam,AdaGrad,Momentum,RMSProp)

文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    機(jī)器學(xué)習(xí)新手必學(xué)的三種優(yōu)化算法(牛頓法、梯度下降法、最速下降法

    法、梯度下降法、最速下降法)進(jìn)行了介紹和比較,并結(jié)合算法的數(shù)學(xué)原理和實(shí)際案例給出了優(yōu)化算法選擇的一些建議。閱讀本文的基礎(chǔ)準(zhǔn)備線性代數(shù)多變量微積分對(duì)凸函數(shù)的基本知識(shí)我們都知道,機(jī)器學(xué)習(xí)中最重要的內(nèi)容之一
    發(fā)表于 05-07 08:30

    如何更新權(quán)重實(shí)現(xiàn)梯度下降

    實(shí)現(xiàn)梯度下降
    發(fā)表于 07-15 10:09

    梯度下降法、牛頓法到擬牛頓法它們的聯(lián)系與區(qū)別是什么

    梯度下降法、牛頓法到擬牛頓法,淺談它們的聯(lián)系與區(qū)別
    發(fā)表于 05-21 11:06

    接地電阻測(cè)試儀怎么使用電位下降法

    疊時(shí),就可以測(cè)量電阻。在這種情況下,電阻區(qū)域外的所有體積都非常接近相同的電位,這樣就可以開(kāi)發(fā)以下測(cè)量方法?! 〗拥仉娮铚y(cè)試儀怎么使用電位下降法  為了可以避免電極H的接地電阻引入誤差,使用了第三電極S。在
    發(fā)表于 12-03 17:11

    用基于計(jì)算機(jī)隨機(jī)模擬的下降法求解報(bào)童問(wèn)題

    采用計(jì)算機(jī)隨機(jī)模擬加上傳統(tǒng)的梯度下降法,求解了報(bào)童每天賣報(bào)的期望收益最大的訂報(bào)量,并給出了迭代變化圖,結(jié)果表明此算法對(duì)于報(bào)童問(wèn)題是相當(dāng)有效的。對(duì)于企業(yè)訂貨等問(wèn)
    發(fā)表于 09-16 10:49 ?7次下載

    基于梯度下降法和互補(bǔ)濾波的航向姿態(tài)參考系統(tǒng)

    針對(duì)微型無(wú)人機(jī)航向姿態(tài)參考系統(tǒng)低成本、小型化的工程實(shí)現(xiàn)需求,基于三軸陀螺儀、加速度計(jì)和磁力計(jì),提出了一種在線實(shí)時(shí)姿態(tài)估計(jì)算法。該算法采用四元數(shù)描述系統(tǒng)模型,采用改進(jìn)的梯度下降法預(yù)處理加速度計(jì)和磁力計(jì)
    發(fā)表于 11-16 10:29 ?15次下載
    基于<b class='flag-5'>梯度</b><b class='flag-5'>下降法</b>和互補(bǔ)濾波的航向姿態(tài)參考系統(tǒng)

    一種結(jié)合梯度下降法的二層搜索粒子群算法

    針對(duì)標(biāo)準(zhǔn)粒子群優(yōu)化(PSO)算法在求解復(fù)雜優(yōu)化問(wèn)題中出現(xiàn)的早熟收斂問(wèn)題,提出一種結(jié)合梯度下降法的二次搜索粒子群算法。首先,當(dāng)全局極值超過(guò)預(yù)設(shè)的最大不變迭代次數(shù)時(shí),判斷全局極值點(diǎn)處于極值陷阱中;然后
    發(fā)表于 11-27 17:28 ?5次下載
    一種結(jié)合<b class='flag-5'>梯度</b><b class='flag-5'>下降法</b>的二層搜索粒子群算法

    機(jī)器學(xué)習(xí):隨機(jī)梯度下降和批量梯度下降算法介紹

    隨機(jī)梯度下降(Stochastic gradient descent) 批量梯度下降(Batch gradient descent) 梯度
    發(fā)表于 11-28 04:00 ?9035次閱讀
    機(jī)器學(xué)習(xí):隨機(jī)<b class='flag-5'>梯度</b><b class='flag-5'>下降</b>和批量<b class='flag-5'>梯度</b><b class='flag-5'>下降</b>算法介紹

    一文看懂常用的梯度下降算法

    編輯:祝鑫泉 一 概述 梯度下降算法( Gradient Descent Optimization )是神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練最常用的優(yōu)化算法。對(duì)于深度學(xué)習(xí)模型,基本都是采用梯度下降算法來(lái)進(jìn)
    發(fā)表于 12-04 18:17 ?1835次閱讀

    機(jī)器學(xué)習(xí)中梯度下降法的過(guò)程

    梯度下降法是一個(gè)用于尋找最小化成本函數(shù)的參數(shù)值的最優(yōu)化算法。當(dāng)我們無(wú)法通過(guò)分析計(jì)算(比如線性代數(shù)運(yùn)算)求得函數(shù)的最優(yōu)解時(shí),我們可以利用梯度下降法來(lái)求解該問(wèn)題。
    發(fā)表于 04-26 16:44 ?3447次閱讀

    梯度下降算法及其變種:批量梯度下降,小批量梯度下降和隨機(jī)梯度下降

    現(xiàn)在我們來(lái)討論梯度下降算法的三個(gè)變種,它們之間的主要區(qū)別在于每個(gè)學(xué)習(xí)步驟中計(jì)算梯度時(shí)使用的數(shù)據(jù)量,是對(duì)每個(gè)參數(shù)更新(學(xué)習(xí)步驟)時(shí)的梯度準(zhǔn)確性與時(shí)間復(fù)雜度的折衷考慮。
    的頭像 發(fā)表于 05-03 15:55 ?2.2w次閱讀

    機(jī)器學(xué)習(xí)優(yōu)化算法中梯度下降,牛頓法和擬牛頓法的優(yōu)缺點(diǎn)詳細(xì)介紹

    梯度下降法實(shí)現(xiàn)簡(jiǎn)單,當(dāng)目標(biāo)函數(shù)是凸函數(shù)時(shí),梯度下降法的解是全局解。一般情況下,其解不保證是全局最優(yōu)解,梯度
    的頭像 發(fā)表于 08-04 11:40 ?5.2w次閱讀

    簡(jiǎn)單的梯度下降算法,你真的懂了嗎?

    梯度下降算法的公式非常簡(jiǎn)單,”沿著梯度的反方向(坡度最陡)“是我們?nèi)粘=?jīng)驗(yàn)得到的,其本質(zhì)的原因到底是什么呢?為什么局部下降最快的方向就是梯度
    發(fā)表于 09-19 00:17 ?862次閱讀

    梯度下降法在機(jī)器學(xué)習(xí)中的應(yīng)用

    梯度下降法沿著梯度的反方向進(jìn)行搜索,利用了函數(shù)的一階導(dǎo)數(shù)信息。
    的頭像 發(fā)表于 05-18 09:20 ?1496次閱讀
    <b class='flag-5'>梯度</b><b class='flag-5'>下降法</b>在機(jī)器學(xué)習(xí)中的應(yīng)用

    PyTorch教程12.4之隨機(jī)梯度下降

    電子發(fā)燒友網(wǎng)站提供《PyTorch教程12.4之隨機(jī)梯度下降.pdf》資料免費(fèi)下載
    發(fā)表于 06-05 14:58 ?0次下載
    PyTorch教程12.4之隨機(jī)<b class='flag-5'>梯度</b><b class='flag-5'>下降</b>