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

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

0

機(jī)器學(xué)習(xí) 101:一文帶你讀懂梯度下降

本文作者: AI研習(xí)社-譯站 2019-07-05 14:38
導(dǎo)語(yǔ):梯度下降無(wú)疑是大多數(shù)機(jī)器學(xué)習(xí)(ML)算法的核心和靈魂。

機(jī)器學(xué)習(xí) 101:一文帶你讀懂梯度下降

原標(biāo)題 | Machine Learning 101: An Intuitive Introduction to Gradient Descent

作者 | Thalles Silva

譯者 | 汪鵬(重慶郵電大學(xué))、通夜(中山大學(xué))

編輯:王立魚(yú)

英語(yǔ)原文:https://towardsdatascience.com/machine-learning-101-an-intuitive-introduction-to-gradient-descent-366b77b52645

機(jī)器學(xué)習(xí) 101:一文帶你讀懂梯度下降

梯度下降無(wú)疑是大多數(shù)機(jī)器學(xué)習(xí)(ML)算法的核心和靈魂。我絕對(duì)認(rèn)為你應(yīng)該花時(shí)間去理解它。因?yàn)閷?duì)于初學(xué)者來(lái)說(shuō),這樣做能夠讓你更好地理解大多數(shù)機(jī)器學(xué)習(xí)算法是如何工作的。另外,想要培養(yǎng)對(duì)復(fù)雜項(xiàng)目的直覺(jué),理解基本的概念也是十分關(guān)鍵的。  

為了理解梯度下降的核心,讓我們來(lái)看一個(gè)運(yùn)行的例子。這項(xiàng)任務(wù)是這個(gè)領(lǐng)域的一項(xiàng)老任務(wù)——使用一些歷史數(shù)據(jù)作為先驗(yàn)知識(shí)來(lái)預(yù)測(cè)房?jī)r(jià)。 

我們的目標(biāo)是討論梯度下降。所以我們讓這個(gè)例子簡(jiǎn)單一點(diǎn),以便我們可以專注于重要的部分。

但是在我們開(kāi)始之前,你可以點(diǎn)擊此處獲取代碼

  基本概念

假設(shè)你想爬一座很高的山,你的目標(biāo)是最快到達(dá)山頂,可你環(huán)顧四周后,你意識(shí)到你有不止一條路可以走,既然你在山腳,但似乎所有選擇都能讓你離山頂更近。  

如果你想以最快的方式到達(dá)頂峰,所以你要怎么做呢?你怎樣才能只邁出一步,而能夠離山頂最近?  

到目前為止,我們還不清楚如何邁出這一步!而這就是梯度的用武之地。  

正如可汗學(xué)院的這段視頻所述,梯度獲取了一個(gè)多變量函數(shù)的所有偏導(dǎo)數(shù)。

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

用更簡(jiǎn)單的話來(lái)說(shuō),導(dǎo)數(shù)是一個(gè)函數(shù)在某一點(diǎn)的變化率或斜率。 

以f(x)=x2函數(shù)為例。f(x)的導(dǎo)數(shù)就是另一個(gè)函數(shù)f'(x)在一個(gè)定點(diǎn)x的值,f'(x)就是f(x)的斜率函數(shù)。在這種情況下,當(dāng)x=2時(shí),f(x) = x2的斜率是2 x,也就是2*2=4。  

機(jī)器學(xué)習(xí) 101:一文帶你讀懂梯度下降

f(x) = x2在不同點(diǎn)的斜率。

簡(jiǎn)單地說(shuō),導(dǎo)數(shù)指向上升最陡的方向。恰巧的是,梯度和導(dǎo)數(shù)基本上是一樣的。除了一點(diǎn),即梯度是一個(gè)向量值函數(shù),向量里包含著偏導(dǎo)數(shù)。換句話說(shuō),梯度是一個(gè)向量,它的每一個(gè)分量都是對(duì)一個(gè)特定變量的偏導(dǎo)數(shù)。  

以函數(shù)f(x,y)=2x2+y2為另一個(gè)例子。  

這里的f(x,y)是一個(gè)多變量函數(shù)。它的梯度是一個(gè)向量,其中包含了f(x,y)的偏導(dǎo)數(shù),第一個(gè)是關(guān)于x的偏導(dǎo)數(shù),第二個(gè)是關(guān)于y的偏導(dǎo)數(shù)。

如果我們計(jì)算f(x,y)的偏導(dǎo)數(shù)。 

機(jī)器學(xué)習(xí) 101:一文帶你讀懂梯度下降

得到的梯度是以下這樣的向量:  

機(jī)器學(xué)習(xí) 101:一文帶你讀懂梯度下降

請(qǐng)注意,其中每個(gè)元素都指示了函數(shù)里每個(gè)變量的最陡上升方向。換句話說(shuō),梯度指向函數(shù)增長(zhǎng)最多的方向。 

回到爬山的例子中,坡度指向的方向是最快到達(dá)山頂?shù)姆较?。換句話說(shuō),梯度指向一個(gè)面更高的地方。 

同樣的,如果我們有一個(gè)有四個(gè)變量的函數(shù),我們會(huì)得到一個(gè)有四個(gè)偏導(dǎo)數(shù)的梯度向量。通常,一個(gè)有n個(gè)變量的函數(shù)會(huì)產(chǎn)生一個(gè)n維梯度向量。 

機(jī)器學(xué)習(xí) 101:一文帶你讀懂梯度下降

但是對(duì)于梯度下降,我們不想讓f函數(shù)盡快地最大化,我們想讓它最小化。  

所以讓我們先定義我們的任務(wù),讓目標(biāo)變得更清晰明確一點(diǎn)。

  房?jī)r(jià)預(yù)測(cè) 

我們的目標(biāo)是基于歷史數(shù)據(jù)來(lái)預(yù)測(cè)房?jī)r(jià)。而想要建立一個(gè)機(jī)器學(xué)習(xí)模型,我們通常需要至少3個(gè)要素——問(wèn)題T、性能度量P和經(jīng)驗(yàn)E,我們的模型將從這其中學(xué)習(xí)到一些模式知識(shí)。  

為了解決問(wèn)題T,我們將使用一個(gè)簡(jiǎn)單的線性回歸模型。該模型將從經(jīng)驗(yàn)E中學(xué)習(xí),經(jīng)過(guò)訓(xùn)練,模型就能將其知識(shí)推廣到未知數(shù)據(jù)中。  

線性模型是一個(gè)很好的學(xué)習(xí)模型。它是許多其他ML算法的基礎(chǔ),比如神經(jīng)網(wǎng)絡(luò)和支持向量機(jī)。  

在本例中,經(jīng)驗(yàn)E就是房屋數(shù)據(jù)集。房屋數(shù)據(jù)集包含了圣路易斯奧比斯波縣及其周邊地區(qū)最近的房地產(chǎn)清單。  

數(shù)據(jù)集包含了781條數(shù)據(jù)記錄,可以在原文下載CSV格式的數(shù)據(jù)文件。為了簡(jiǎn)便,在數(shù)據(jù)的8個(gè)特征中,我們只關(guān)注其中的兩個(gè)特征 : 房屋大小和價(jià)格。在這781條記錄中,每一條記錄的房屋大小(以平方英尺為單位)將是我們的輸入特征,而價(jià)格則是我們的預(yù)測(cè)目標(biāo)值。  

此外,為了檢查我們的模型是否正確地從經(jīng)驗(yàn)E中學(xué)習(xí)到了模式知識(shí),我們需要一個(gè)機(jī)制來(lái)衡量它的性能。因此,我們將平方誤差(MSE)的均值作為性能度量P。

機(jī)器學(xué)習(xí) 101:一文帶你讀懂梯度下降

多年來(lái),MSE一直是線性回歸的標(biāo)準(zhǔn)。但從理論上講,任何其他誤差測(cè)量方法,比如絕對(duì)誤差,都是可用的。而MSE的一些優(yōu)點(diǎn)是,它對(duì)誤差的衡量比絕對(duì)誤差更好。 

現(xiàn)在我們已經(jīng)公式化了我們的學(xué)習(xí)算法,讓我們深入研究代碼。 

首先,我們使用pandas在python中加載數(shù)據(jù),并分離房屋大小和價(jià)格特征。之后,我們對(duì)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化,以防止某些特征的大小范圍與其他特征不同。而且,標(biāo)準(zhǔn)化過(guò)的數(shù)據(jù)在進(jìn)行梯度下降時(shí),收斂速度比其他方法快得多。

機(jī)器學(xué)習(xí) 101:一文帶你讀懂梯度下降

下面,你可以看到以平方米為單位的房?jī)r(jià)分布。

機(jī)器學(xué)習(xí) 101:一文帶你讀懂梯度下降

按面積計(jì)算的房?jī)r(jià)分布。數(shù)據(jù)被標(biāo)準(zhǔn)化到了[0,1]區(qū)間。

線性回歸模型的工作原理是在數(shù)據(jù)上畫(huà)一條線。因此,我們的模型由一個(gè)簡(jiǎn)單的直線方程表示。

機(jī)器學(xué)習(xí) 101:一文帶你讀懂梯度下降

線性方程,m和b分別是斜率和y軸的截距,x變量是輸入值。  

對(duì)于線性模型,斜率m和y軸的截距b是兩個(gè)自由的參數(shù)。我們則要通過(guò)改變這兩個(gè)參數(shù)來(lái)找到最好的直線方程。  

我們將對(duì)它們迭代執(zhí)行一些細(xì)小的改變,這樣它就可以沿著誤差曲面上最陡的下降方向走。在每次迭代之后,這些權(quán)重變化將改善我們的模型,使得它能夠表示數(shù)據(jù)集的趨勢(shì)。  

在繼續(xù)往下看之前,請(qǐng)記住我們要取梯度的反方向來(lái)進(jìn)行梯度下降。 

你可以把梯度下降想象成一個(gè)球滾下山谷。我們想讓它落在最深的山谷里,然而很明顯,我們看到實(shí)際情況可能會(huì)出錯(cuò)。  

機(jī)器學(xué)習(xí) 101:一文帶你讀懂梯度下降

打個(gè)比方,我們可以把梯度下降想象成一個(gè)球滾下山谷。最深的山谷是最優(yōu)的全局最小值,這是我們的目標(biāo)。  

根據(jù)球開(kāi)始滾動(dòng)的位置,它可能停在某一個(gè)山谷的底部。但不是最低的。這叫做局部極小值,在我們的模型中,山谷就是誤差面。 

注意,在類(lèi)比中,并不是所有的局部極小值都是糟糕的。實(shí)際上其中一些幾乎和最低的(全局)一樣低(好)。事實(shí)上,對(duì)于高維誤差曲面,最常見(jiàn)的方法是使用這些局部極小值中的一個(gè)(其實(shí)也不是很糟糕)。 

類(lèi)似地,我們初始化模型權(quán)重的方法可能會(huì)導(dǎo)致它停留在局部極小值。為了避免這種情況,我們從均值為零且方差較小的隨機(jī)正態(tài)分布中初始化兩個(gè)權(quán)值向量。 

在每次迭代中,我們將取數(shù)據(jù)集的一個(gè)隨機(jī)子集,并將其與權(quán)重線性組合。這個(gè)子集稱為迷你批處理(mini-batch)。在線性組合后,我們把得到的向量輸入MSE函數(shù),計(jì)算新的誤差。 

利用這個(gè)誤差,我們可以計(jì)算出誤差的偏導(dǎo)數(shù),然后得到梯度。 

首先,我們得到關(guān)于W0的偏導(dǎo)數(shù):

機(jī)器學(xué)習(xí) 101:一文帶你讀懂梯度下降

W0的偏導(dǎo)數(shù)

接下來(lái),我們求W1的偏導(dǎo)數(shù)

機(jī)器學(xué)習(xí) 101:一文帶你讀懂梯度下降

W1的偏導(dǎo)數(shù)

由這兩個(gè)偏導(dǎo)數(shù),我們可以得到梯度向量:

機(jī)器學(xué)習(xí) 101:一文帶你讀懂梯度下降

梯度向量

其中Err是MSE錯(cuò)誤函數(shù)。

有了這個(gè),我們的下一步是使用梯度更新權(quán)重向量W0和W1,以最小化誤差。

我們想要更新權(quán)重,以便它們可以在下一次迭代中將錯(cuò)誤降低。我們需要使它們遵循每個(gè)相應(yīng)梯度信號(hào)的相反方向。為此,我們將在這個(gè)方向上采取小尺寸η的小步驟。

步長(zhǎng)η是學(xué)習(xí)率,它控制學(xué)習(xí)速度。根據(jù)經(jīng)驗(yàn),一個(gè)好的起點(diǎn)是0.1。最后,更新步驟規(guī)則設(shè)置為:

機(jī)器學(xué)習(xí) 101:一文帶你讀懂梯度下降

在代碼中,完整的模型看起來(lái)像這樣。查看兩個(gè)梯度DW0和DW1前面的減號(hào)。這保證了我們將在與梯度相反的方向上采取步驟。

機(jī)器學(xué)習(xí) 101:一文帶你讀懂梯度下降

更新權(quán)重后,我們使用另一個(gè)隨機(jī)小批量重復(fù)該過(guò)程,就是這樣。

逐步地,每次重量更新導(dǎo)致線路中的小的移動(dòng)朝向其最佳表示。最后,當(dāng)誤差方差足夠小時(shí),我們就可以停止學(xué)習(xí)。

機(jī)器學(xué)習(xí) 101:一文帶你讀懂梯度下降

隨時(shí)間變換的線性模型。第一次權(quán)重更新使線條快速達(dá)到理想的表示。

此版本的梯度下降稱為迷你批處理(Mini-Batch)隨機(jī)梯度下降。在這個(gè)版本中,我們使用一小部分訓(xùn)練數(shù)據(jù)來(lái)計(jì)算梯度。每個(gè)小批量梯度提供最佳方向的近似值。即使梯度沒(méi)有指向確切的方向,實(shí)際上它也會(huì)收斂到非常好的解決方案。

機(jī)器學(xué)習(xí) 101:一文帶你讀懂梯度下降

每一個(gè)Epoch的錯(cuò)誤信號(hào)。請(qǐng)注意,在非??斓販p小誤差信號(hào)之后,模型會(huì)減慢并收斂。

如果你仔細(xì)觀察錯(cuò)誤圖表,你會(huì)注意到,在開(kāi)始時(shí)學(xué)習(xí)速度會(huì)更快。

然而,在經(jīng)過(guò)一些Epoch之后,它會(huì)放慢速度并保持平穩(wěn)。這是因?yàn)?,在開(kāi)始時(shí),指向最陡下降的梯度向量的幅度很長(zhǎng)。結(jié)果,兩個(gè)權(quán)重變量W0和W1遭受更大的變化。

接著,隨著它們?cè)絹?lái)越靠近誤差表面的頂點(diǎn),梯度逐漸變得越來(lái)越小,這導(dǎo)致了權(quán)重的非常小的變化。

最后,學(xué)習(xí)曲線穩(wěn)定,并且過(guò)程完成。雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)

想要繼續(xù)查看該篇文章相關(guān)鏈接和參考文獻(xiàn)?

點(diǎn)擊【機(jī)器學(xué)習(xí)101:一文帶你讀懂梯度下降】即可訪問(wèn)!

今日博客推薦:「元學(xué)習(xí)」解析:學(xué)習(xí)如何梯度下降與學(xué)習(xí)新的算法

本文作者 Cody Marie Wild,她是一位機(jī)器學(xué)習(xí)領(lǐng)域的數(shù)據(jù)科學(xué)家,在生活中還是名貓咪鏟屎官,她鐘愛(ài)語(yǔ)言和簡(jiǎn)潔優(yōu)美的系統(tǒng)。在這篇文章中,Cody 介紹了元學(xué)習(xí)的基本概念和方法類(lèi)別,討論了「元學(xué)習(xí)」到底在學(xué)什么、又有哪些限制。

詳情查看點(diǎn)擊:https://ai.yanxishe.com/page/blogDetail/5798


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

機(jī)器學(xué)習(xí) 101:一文帶你讀懂梯度下降

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

知情人士

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