訂閱
糾錯(cuò)
加入自媒體

機(jī)器學(xué)習(xí)算法:梯度下降算法背后的工作原理

介紹梯度下降算法是工業(yè)中最常用的機(jī)器學(xué)習(xí)算法之一,但也是很多新手難以理解的算法之一。如果你剛剛接觸機(jī)器學(xué)習(xí),那么梯度下降算法背后的數(shù)學(xué)原理是比較難理解的。

在本文中,我將幫助你了解梯度下降算法背后的工作原理。我們會(huì)了解損失函數(shù)的作用,梯度下降的工作原理,以及如何選擇學(xué)習(xí)參數(shù)。什么是損失函數(shù)?它是一個(gè)函數(shù),用于衡量模型對(duì)任何給定數(shù)據(jù)的性能。損失函數(shù)將預(yù)測(cè)值與期望值之間的誤差進(jìn)行量化,并以單個(gè)實(shí)數(shù)的形式表示出來。在對(duì)初始參數(shù)進(jìn)行假設(shè)后,我們會(huì)計(jì)算了損失函數(shù),以降低損失函數(shù)為目標(biāo),利用梯度下降算法對(duì)給定數(shù)據(jù)進(jìn)行參數(shù)修正。下面是它的數(shù)學(xué)表示:

什么是梯度下降假設(shè)你在玩一個(gè)游戲,玩家在山頂,他們要求到達(dá)山的最低點(diǎn),此外,他們還蒙著眼睛,那么,你認(rèn)為怎樣才能到達(dá)最低點(diǎn)呢?最好的辦法是觀察地面,找出地面下降的地方,從這個(gè)位置開始,向下降方向邁出一步,重復(fù)這個(gè)過程,直到到達(dá)最低點(diǎn)。

梯度下降法是一種求解函數(shù)局部極小值的迭代優(yōu)化算法。要用梯度下降法求函數(shù)的局部極小值,必須選擇與當(dāng)前點(diǎn)處函數(shù)的負(fù)梯度(遠(yuǎn)離梯度)方向。如果我們采取與梯度的正方向,我們將接近函數(shù)的局部極大值,這個(gè)過程稱為梯度上升。梯度下降最初是由柯西在1847年提出的,它也被稱為最速下降。

梯度下降算法的目標(biāo)是最小化給定函數(shù)(比如損失函數(shù))。為了實(shí)現(xiàn)這一目標(biāo),它迭代地執(zhí)行兩個(gè)步驟:計(jì)算梯度(斜率),函數(shù)在該點(diǎn)的一階導(dǎo)數(shù)在與梯度相反的方向上移動(dòng)一步(移動(dòng))

Alpha被稱為學(xué)習(xí)率-優(yōu)化過程中的一個(gè)調(diào)整參數(shù),它決定了步長(zhǎng)。繪制梯度下降算法當(dāng)我們有一個(gè)單一的參數(shù)(θ),我們可以在y軸上繪制因變量損失值,并在x軸上繪制θ。如果有兩個(gè)參數(shù),我們可以進(jìn)行三維繪圖,其中一個(gè)軸上有損失值,另兩個(gè)軸上有兩個(gè)參數(shù)(θ)。

它也可以通過使用等高線來可視化,這會(huì)顯示一個(gè)二維的三維繪圖,其中包括沿兩個(gè)軸的參數(shù)和等高線的響應(yīng)值。遠(yuǎn)離中心的響應(yīng)值增加,并且隨著環(huán)的增加而增加。

α-學(xué)習(xí)率有了前進(jìn)的方向之后,現(xiàn)在我們必須決定我們要采取的步大小。必須謹(jǐn)慎選擇,以達(dá)到局部最小值。如果學(xué)習(xí)率太高,我們可能會(huì)超過最小值,而不會(huì)達(dá)到最小值如果學(xué)習(xí)率太低,訓(xùn)練時(shí)間可能會(huì)太長(zhǎng)

a) 學(xué)習(xí)率最優(yōu),模型收斂到最小b) 學(xué)習(xí)速度太小,需要更多的時(shí)間,但會(huì)收斂到最小值c) 學(xué)習(xí)率高于最優(yōu)值,較慢速度的收斂(1/c<η<2/c)d) 學(xué)習(xí)率非常大,它會(huì)過度偏離,偏離最小值,學(xué)習(xí)性能下降

注:隨著梯度減小而向局部最小值移動(dòng),步長(zhǎng)減小,因此,學(xué)習(xí)速率(alpha)可以在優(yōu)化過程中保持不變,而不需要迭代地改變。局部最小值成本函數(shù)可以由許多最小點(diǎn)組成。梯度可以落在任何一個(gè)極小值上,這取決于初始點(diǎn)(即初始參數(shù)θ)和學(xué)習(xí)速率,因此,在不同的起點(diǎn)和學(xué)習(xí)率下,優(yōu)化可以收斂到不同的點(diǎn)。

梯度下降的Python代碼實(shí)現(xiàn)

結(jié)尾一旦我們調(diào)整了學(xué)習(xí)參數(shù)(alpha)并得到了最優(yōu)的學(xué)習(xí)速率,我們就可以開始迭代了,直到我們收斂到局部最小值。參考鏈接:https://www.a(chǎn)nalyticsvidhya.com/blog/2020/10/how-does-the-gradient-descent-algorithm-work-in-machine-learning/

☆ END ☆

聲明: 本文由入駐維科號(hào)的作者撰寫,觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無評(píng)論

暫無評(píng)論

人工智能 獵頭職位 更多
掃碼關(guān)注公眾號(hào)
OFweek人工智能網(wǎng)
獲取更多精彩內(nèi)容
文章糾錯(cuò)
x
*文字標(biāo)題:
*糾錯(cuò)內(nèi)容:
聯(lián)系郵箱:
*驗(yàn) 證 碼:

粵公網(wǎng)安備 44030502002758號(hào)