tft每日頭條

 > 生活

 > 機器學習線性回歸梯度下降算法

機器學習線性回歸梯度下降算法

生活 更新时间:2024-11-24 15:22:23

機器學習線性回歸梯度下降算法(機器學習Deeplearning.ai筆記)1

回顧logistic損失函數

機器學習線性回歸梯度下降算法(機器學習Deeplearning.ai筆記)2

上圖是logistic回歸的一般形式,其中L(a,y)是loss function,具體原因如下圖,詳情可看我之前寫的其他文章。

機器學習線性回歸梯度下降算法(機器學習Deeplearning.ai筆記)3

單樣本的梯度下降

機器學習線性回歸梯度下降算法(機器學習Deeplearning.ai筆記)4

要想計算損失函數L的導數,首先我們要向前一步計算損失函數的導數,即求”da”=dL(a,y)/da,即對a求偏導數。根據logx導數為1/x,結果為-y/a (1-y)/(1-a)。現在求得關于變量a的導數,現在可以向後計算一步求”dz”,”dz”=dL(a,y)/dz,計算過程如下:

機器學習線性回歸梯度下降算法(機器學習Deeplearning.ai筆記)5

其中,左邊-y/a (1-y)/(1-a)部分已經在之前計算了,右邊部分為邏輯回歸映射函數a=1/(1 e^(-z)),求導後得a*(1-a)。這就是反向求導的”鍊式法則”。

特别地:

機器學習線性回歸梯度下降算法(機器學習Deeplearning.ai筆記)6

所以,在更新w1,w2,b時:

機器學習線性回歸梯度下降算法(機器學習Deeplearning.ai筆記)7

機器學習線性回歸梯度下降算法(機器學習Deeplearning.ai筆記)8

以上就是單個樣本實例一次梯度更新步驟和整個流程的演算圖。

m樣本的梯度下降

當然這隻是單個樣本情況下,對于m個實例,全局成本函數(cost function)是一個求和結果,實際上是1到m項損失函數(loss function)和的平均數。

機器學習線性回歸梯度下降算法(機器學習Deeplearning.ai筆記)9

在上述反向求導中,我們已經知道損失函數(loss function)單個樣本如何更新w1,w2以及b。那麼如何計算m個樣本的反向求導呢?很簡單,在成本函數(cost function)中,隻需對每個樣本進行以上步驟得到各項參數的梯度值後加總求平均,就會得到各項參數的全局梯度值。

具體算法

機器學習線性回歸梯度下降算法(機器學習Deeplearning.ai筆記)10

如上圖所示,初始化J=0,dw1=0,dw2=0,db=0,for循環遍曆訓練集,訓練集的個數為m,同時計算相應的每個訓練樣本的導數,然後把它們加起來求平均,求得該批次樣本的梯度值。最後利用圖中右側公式,對w1,w2,b進行更新,即完成了一次梯度下降。

通過不斷重複梯度下降算法,中止條件如下:

1.叠代次數達到限制次數;

2.訓練集中無可供更新的樣本集;

3.loss不再下降或反而上升。

總結

對于梯度下降算法,有批量梯度下降法(Batch Gradient Descent),随機梯度下降法(Stochastic Gradient Descent)和梯度下降法(Gradient Descent)。

以上解析的是批量梯度下降法。即用了一些小樣本來近似全部的樣本,其本質就是我1個指不定不太準,那我用個30個或50個樣本那比随機的要準不少了吧,而且批量的話還是非常可以反映樣本的一個分布情況的。

随機梯度下降:由于多了随機兩個字,也就是說我随機用樣本中的一個例子來近似我所有的樣本,來調整θ,因而随機梯度下降是會帶來一定的問題,因為計算得到的并不是準确的一個梯度,容易陷入到局部最優解中。

梯度下降:在原始的梯度下降中,對于θ的更新所有的樣本都有貢獻,也就是參與調整θ,其計算得到的是一個标準梯度。理論上來說一次更新的幅度是比較大的。在樣本不多的情況下,收斂的速度會更快。

機器學習線性回歸梯度下降算法(機器學習Deeplearning.ai筆記)11

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved