訂閱
糾錯
加入自媒體

技術(shù)分析:如何理解梯度下降算法

介紹

在這篇文章中,我們將了解什么是真正的梯度下降法,為什么它成為非常流行的機(jī)器學(xué)習(xí)算法,為什么AI和ML中的大多數(shù)算法都遵循這種技術(shù)。

柯西在1847年提出了梯度下降算法,是第一個提出梯度下降的人,

梯度這個詞的意思是一個性質(zhì)的增加和減少!而下降意味著向下移動的動作,所以,總的來說,先下降到某個地方,然后觀察并且繼續(xù)下降的行為被稱為梯度下降

所以,在正常情況下,如圖所示,山頂?shù)钠露群芨?通過不斷的移動,當(dāng)你到達(dá)山腳時的坡度最小,或者接近或等于零,同樣的情況在數(shù)學(xué)上也適用。

讓我們看看怎么做

在數(shù)學(xué)上的梯度下降

我們假設(shè)這是一條形式為y=f(x)的曲線。

曲線上,任何一點(diǎn)上的斜率都是y對x的導(dǎo)數(shù),當(dāng)向下移動時,斜率在尖端或最小位置減小并等于零,當(dāng)我們再次向上移動時,斜率會增加

記住這一點(diǎn),我們將研究在最小點(diǎn)處x和y的值會發(fā)生什么,

觀察下圖,我們有不同位置的五個點(diǎn)!

當(dāng)我們向下移動時,我們會發(fā)現(xiàn)y值會減小,所以在這里的所有點(diǎn)中,我們在圖的底部得到了相對最小的值,因此,我們的結(jié)論是我們總是在圖的底部找到最小值(x,y),F(xiàn)在讓我們看看如何在ML和DL中實(shí)現(xiàn)這個過程,以及如何在不遍歷整個圖的情況下達(dá)到最小點(diǎn)?

在任何一種優(yōu)化算法中,我們的主要目的是最小化損失,這才能使我們的模型表現(xiàn)更好。為了分析這一點(diǎn),我們將使用線性回歸

因?yàn)榫性回歸使用直線來預(yù)測連續(xù)輸出-

設(shè)直線為y=w*x+c

這里我們需要得到w和c的值,才能得到使誤差最小化的最佳擬合線,所以我們的目標(biāo)是找到最佳的w和c值

我們先把w和c初始化為隨機(jī)值,我們根據(jù)損失更新w和c的值,也就是說,我們更新這些權(quán)重,直到斜率等于或接近于零。

我們將取y軸上的損失函數(shù),x軸上有w和c。查看下圖

為了在第一個圖中達(dá)到最小的w值,請遵循以下步驟-

用w和c計(jì)算給定的一組x _values的損失。

繪制點(diǎn),現(xiàn)在將權(quán)重更新為-

w_new =w_old – learning_rate * slope at (w_old,loss)

重復(fù)這些步驟,直到達(dá)到最小值!

我們在這里減去梯度,因?yàn)槲覀兿胍频缴侥_下,或者朝著最陡的下降方向移動

當(dāng)我們減去梯度后,我們會得到一個比前一個小的斜率,這就是我們想要移動到斜率等于或接近于零的點(diǎn)

我們稍后再討論學(xué)習(xí)率

這同樣適用于圖2,即損失和c的函數(shù)


現(xiàn)在的問題是為什么要把學(xué)習(xí)率放在等式中?這是因?yàn)槲覀儾荒茉谄瘘c(diǎn)和最小值之間遍歷所有的點(diǎn)

我們需要跳過一些點(diǎn)

我們可以在最初階段采取大步行動。

但是,當(dāng)我們接近最小值時,我們需要小步走,因?yàn)槲覀兛赡軙竭^最小值。為了控制步長和移動,引入了學(xué)習(xí)速率。即使沒有學(xué)習(xí)速率,我們也會得到最小值,但我學(xué)習(xí)速率可以讓我們的算法更快!!

下面是一個使用梯度下降的線性回歸的示例算法。這里我們用均方誤差作為損失函數(shù)-

1.用零初始化模型參數(shù)

m=0,c=0

2.使用(0,1)范圍內(nèi)的任何值初始化學(xué)習(xí)速率

lr=0.01

誤差方程-

現(xiàn)在用(w*x+c)代替Ypred并計(jì)算偏導(dǎo)

3.c也一樣可以計(jì)算得出

4.將此應(yīng)用于所有epoch的數(shù)據(jù)集

for i in range(epochs):
         y_pred = w * x +c
         D_M = (-2/n) * sum(x * (y_original - y_pred))
         D_C = (-2/n) * sum(y_original - y_pred)

這里求和函數(shù)一次性將所有點(diǎn)的梯度相加!

更新所有迭代的參數(shù)

W = W – lr * D_M

C = C – lr * D_C

梯度下降法用于神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)…

在這里,我們更新每個神經(jīng)元的權(quán)值,以便在最小誤差的情況下得到最佳分類。我們使用梯度下降法來更新每一層的所有權(quán)值…

Wi = Wi – learning_rate * derivative (Loss function w.r.t Wi)

為什么它受歡迎?

梯度下降是目前機(jī)器學(xué)習(xí)和深度學(xué)習(xí)中最常用的優(yōu)化策略。

它用于訓(xùn)練數(shù)據(jù)模型,可以與各種算法相結(jié)合,易于理解和實(shí)現(xiàn)

許多統(tǒng)計(jì)技術(shù)和方法使用GD來最小化和優(yōu)化它們的計(jì)算過程。

圖片標(biāo)題

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

發(fā)表評論

0條評論,0人參與

請輸入評論內(nèi)容...

請輸入評論/評論長度6~500個字

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

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

暫無評論

暫無評論

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

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