Machine Learning 學習筆記 (1) —— 線性回歸與邏輯回歸


本系列文章允許轉載,轉載請保留全文!

【請先閱讀】【說明&總目錄】http://www.cnblogs.com/tbcaaa8/p/4415055.html

 

1. 梯度下降法 (Gradient Descent)

梯度下降法是一種用來尋找函數最小值的算法。算法的思想非常簡單:每次沿與當前梯度方向相反的方向走一小步,並不斷重復這一過程。舉例如下:

[例]使用梯度下降法,求z=0.3x2+0.4y2+2的最小值。

第一步:求解迭代格式。根據“每次沿與當前梯度方向相反的方向走一小步”的思想,可知x(k+1)=x(k)-0.6x(k), y(k+1)=y(k)-0.8y(k)

第二步:選擇迭代的初始值。初始值一般可以隨意選擇,但恰當的初始值有助於提升收斂速度。本例中選擇x(0)=1, y(0)=1

第三步:根據迭代格式和初始值進行迭代求解。迭代過程如下:

k x(k) y(k) z(x(k),y(k))
0 1.00 1.00 2.7000
1 0.40 0.20 2.0640
2 0.16 0.04 2.0083
3 0.06 0.01 2.0013
4 0.03 0.00 2.0002
5 0.01 0.00 2.0000
6 0.00 0.00 2.0000

結論:可以發現,第6次迭代后,算法收斂。所求最小值為2。

梯度下降算法如何進行收斂判定呢?一個通用的方法是判斷相鄰兩次迭代中,目標值變化量的絕對值是否足夠小。具體到上述例題,就是判斷|z(x(k+1),y(k+1))-z(x(k),y(k))|<eps是否成立。eps是一個足夠小的正實數,可以根據所需要的精度進行選取,本例中eps=10-4

需要注意的是,梯度下降法有可能陷入局部最優解。可以通過多次隨機選取初始值以及增加沖量項等方法加以改善,本系列后續文章中可能涉及。

 

2. 線性回歸 (Linear Regression)

線性回歸是對自變量和因變量之間關系進行建模的回歸分析,回歸函數滿足如下形式:

  

我們使用表示數據組數,使用表示數據的維數;使用表示第組數據的自變量和因變量,使用表示第組數據自變量的第個分量。推導過程基於如下假設:

即每一組數據的誤差項相互獨立,且均服從均值為0,方差為的正態分布。進而,我們可以得到似然函數:

對數似然函數:

化簡,可得:

定義損失函數:

要使似然函數最大,只需使損失函數最小。我們使用損失函數的極小值代替最小值,只需對每一個求偏導數:

最后,使用梯度下降法迭代求解:

其中,為學習率,是一個大於0的常數。學習率應當慎重選擇,過大會導致算法不收斂,過小會導致收斂速度緩慢。在實際應用中,可以根據具體情況對學習率進行調節。有資料表明,當  時,上述算法收斂。由於難以高效計算,因此往往使用來代替。

 

3. 邏輯回歸 (Logistic Regression)

當因變量只能在{0,1}中取值時,線性回歸模型不再適合,因為極端數據的存在會使閥值的選擇變得困難。我們可以使用邏輯回歸對數據進行建模。回歸函數滿足如下形式:

其中:

sigmoid函數具有如下性質:

推導過程基於如下假設:(其實就是假設y(i)~Bernoulli(hθ(x(i))))

 

 

考慮到取值的特殊性,上述假設等價於以下形式:

進而得到似然函數:

對數似然函數:

化簡,得:

定義損失函數:

要使似然函數最大,只需使損失函數最小。我們使用損失函數的極小值代替最小值,只需對每一個求偏導數:

化簡,得:

最后,使用梯度下降法迭代求解:

含義同上。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM