機器學習算法:梯度下降算法背后的工作原理
介紹梯度下降算法是工業(yè)中最常用的機器學習算法之一,但也是很多新手難以理解的算法之一。如果你剛剛接觸機器學習,那么梯度下降算法背后的數(shù)學原理是比較難理解的。
在本文中,我將幫助你了解梯度下降算法背后的工作原理。我們會了解損失函數(shù)的作用,梯度下降的工作原理,以及如何選擇學習參數(shù)。什么是損失函數(shù)?它是一個函數(shù),用于衡量模型對任何給定數(shù)據(jù)的性能。損失函數(shù)將預測值與期望值之間的誤差進行量化,并以單個實數(shù)的形式表示出來。在對初始參數(shù)進行假設(shè)后,我們會計算了損失函數(shù),以降低損失函數(shù)為目標,利用梯度下降算法對給定數(shù)據(jù)進行參數(shù)修正。下面是它的數(shù)學表示:
什么是梯度下降假設(shè)你在玩一個游戲,玩家在山頂,他們要求到達山的最低點,此外,他們還蒙著眼睛,那么,你認為怎樣才能到達最低點呢?最好的辦法是觀察地面,找出地面下降的地方,從這個位置開始,向下降方向邁出一步,重復這個過程,直到到達最低點。
梯度下降法是一種求解函數(shù)局部極小值的迭代優(yōu)化算法。要用梯度下降法求函數(shù)的局部極小值,必須選擇與當前點處函數(shù)的負梯度(遠離梯度)方向。如果我們采取與梯度的正方向,我們將接近函數(shù)的局部極大值,這個過程稱為梯度上升。梯度下降最初是由柯西在1847年提出的,它也被稱為最速下降。
梯度下降算法的目標是最小化給定函數(shù)(比如損失函數(shù))。為了實現(xiàn)這一目標,它迭代地執(zhí)行兩個步驟:計算梯度(斜率),函數(shù)在該點的一階導數(shù)在與梯度相反的方向上移動一步(移動)
Alpha被稱為學習率-優(yōu)化過程中的一個調(diào)整參數(shù),它決定了步長。繪制梯度下降算法當我們有一個單一的參數(shù)(θ),我們可以在y軸上繪制因變量損失值,并在x軸上繪制θ。如果有兩個參數(shù),我們可以進行三維繪圖,其中一個軸上有損失值,另兩個軸上有兩個參數(shù)(θ)。
它也可以通過使用等高線來可視化,這會顯示一個二維的三維繪圖,其中包括沿兩個軸的參數(shù)和等高線的響應(yīng)值。遠離中心的響應(yīng)值增加,并且隨著環(huán)的增加而增加。
α-學習率有了前進的方向之后,現(xiàn)在我們必須決定我們要采取的步大小。必須謹慎選擇,以達到局部最小值。如果學習率太高,我們可能會超過最小值,而不會達到最小值如果學習率太低,訓練時間可能會太長
a) 學習率最優(yōu),模型收斂到最小b) 學習速度太小,需要更多的時間,但會收斂到最小值c) 學習率高于最優(yōu)值,較慢速度的收斂(1/c<η<2/c)d) 學習率非常大,它會過度偏離,偏離最小值,學習性能下降
注:隨著梯度減小而向局部最小值移動,步長減小,因此,學習速率(alpha)可以在優(yōu)化過程中保持不變,而不需要迭代地改變。局部最小值成本函數(shù)可以由許多最小點組成。梯度可以落在任何一個極小值上,這取決于初始點(即初始參數(shù)θ)和學習速率,因此,在不同的起點和學習率下,優(yōu)化可以收斂到不同的點。
梯度下降的Python代碼實現(xiàn)
結(jié)尾一旦我們調(diào)整了學習參數(shù)(alpha)并得到了最優(yōu)的學習速率,我們就可以開始迭代了,直到我們收斂到局部最小值。參考鏈接:https://www.a(chǎn)nalyticsvidhya.com/blog/2020/10/how-does-the-gradient-descent-algorithm-work-in-machine-learning/
☆ END ☆

請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個字
最新活動更多
-
即日-9.1立即下載>> 【限時下載】ADI中國三十周年感恩回饋助力企業(yè)升級!
-
即日-9.16點擊進入 >> 【限時福利】TE 2025國際物聯(lián)網(wǎng)展·深圳站
-
10月23日立即報名>> Works With 開發(fā)者大會深圳站
-
10月24日立即參評>> 【評選】維科杯·OFweek 2025(第十屆)物聯(lián)網(wǎng)行業(yè)年度評選
-
11月27日立即報名>> 【工程師系列】汽車電子技術(shù)在線大會
-
12月18日立即報名>> 【線下會議】OFweek 2025(第十屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會
推薦專題