斯坦福機器學習視頻筆記 Week3 邏輯回歸與正則化 Logistic Regression and Regularization


我們將討論邏輯回歸。 邏輯回歸是一種將數據分類為離散結果的方法。 例如,我們可以使用邏輯回歸將電子郵件分類為垃圾郵件或非垃圾郵件。 在本模塊中,我們介紹分類的概念,邏輯回歸的損失函數(cost functon),以及邏輯回歸對多分類的應用。

我們還涉及正規化。 機器學習模型需要很好地推廣到模型在實踐中沒有看到的新例子。 我們將介紹正則化,這有助於防止模型過度擬合訓練數據。

Classification

分類問題其實和回歸問題相似,不同的是分類問題需要預測的是一些離散值而不是連續值。

如垃圾郵件分類,信用卡欺詐,腫瘤診斷等等。離散值可以是任意可數多個。

 

如果使用回歸分析處理分類問題,如上圖,當輸出大於0.5時規定輸出為1,小於0.5時輸出為0,那么預測結果根據數據分布的不同會有很大誤差。如那條藍色的擬合直線。

而且預測值h(x)可以大於1或者小於0,這樣回歸方法將不好處理。

綜上,我們引入 邏輯回歸 使0<=h(x)<=1.

Hypothesis Representation

我們新引入的函數g(z)稱為"Sigmoid Function,"或 "Logistic Function",圖像如上圖。

邏輯函數g(z)可以將可以將任意的輸入值限制在[0,1]之間的輸出值。

此時,hθ(x)的值表示輸出結果為1時的概率。例如hθ(x) = 0.7表示輸出為1的概率為0.7。同時表示,輸出為0的概率為0.3

 兩個概率有如下關系:

Decision Boundary

為了得到離散的分類值y = {0,1},我們做如下處理:

當hθ(x)>=0.5時,輸出1;當hθ(x)<0.5時,輸出0.

 

當z>=0時,g(z)>=0.5;當z<0時,g(z)<0.5。

當輸入變成theta*X時,有

所以,我們最終得到:

這是我們想要的結果。

關於決策邊界‘decision boundary’是將數據很好划分的一條分界線。

有如上圖的數據分布,現在假設theta=[-3,1,1]T,帶入到hθ(x)中,

假設現在要預測‘y=1’,使帶入的結果-3+x1+x2 >0(之前的條件,z>=0),解除直線x1+x2=3便是數據集的分類邊界。

另外一個例子可以看看:

這里決策邊界都是一條直線,而邏輯回歸的決策邊界其實可以是任何形狀的,如下面:

Cost Function and Gradient Descent

我們不能在邏輯回歸中使用和線性回歸相同的cost function,因為其輸出會是波動的,出現很多局部最小值,即它將不是‘凸函數’。

所以邏輯回歸的損失函數定義如下:

我們得到上面的 J(θ) vs hθ(x)的圖像,

hθ(x) = 0時,Cost=0;y=0 && hθ(x)->1時,cost->∞。

現在的損失函數就是‘凸函數’了,這樣我們就可以使用梯度下降算法來求解參數了。損失函數表達如下:

 

因為y={0,1},可以將J(theta)做如下簡化:

 

然后就可以最小化J(theta),求得參數theta。

使用梯度下降:

 可以發現,這里的梯度下降迭代的式子和之前的線性回歸在形式上是一樣的,但是請注意,這里也就是在形式上相似而已,因為h(x)的表示都不同,上圖中的1號框是線性回歸的h(x),2號框是邏輯回歸的h(x)表示的邏輯函數。

Advanced Optimization

這里講的是關於Octive中使用高級優化的知識,這里僅僅附上兩張ppt,詳細的知識請去Coursera了解。

 

1 function [jVal, gradient] = costFunction(theta)
2   jVal = [...code to compute J(theta)...];
3   gradient = [...code to compute derivative of J(theta)...];
4 end
1 options = optimset('GradObj', 'on', 'MaxIter', 100);
2 initialTheta = zeros(2,1);
3    [optTheta, functionVal, exitFlag] = fminunc(@costFunction, initialTheta, options);

 

這部分聯系在本周的編程聯系上有涉及到。

Multiclass Classification: One-vs-all

現將邏輯回歸應用到多元分類 y = {0,1...n}中。

上面所講是一個三類型分類問題,基本思想是將n類的多元分類划分成n+1個二元分類問題,選擇一個類為Positive,那么剩下的所有數據自動划分在對立的negative里。

在這里一共會有三個h(x),分別對應3個不同類型的假設。

總結:

使用邏輯回歸做多元分類,就是為每個類建立一個分類器h(x),給出一個相應i類的y=i的概率。

如果要為新的輸入值做預測,那么就選擇n個分類器h(x)中有最大概率的那一個類作為預測值。

 

The Problem of Overfitting

下面是對同一個數據集采用的三種不同的擬合假設。

1. y = θ0+θ1x;

2. y=θ0+θ1x+θ2x^2;

3. 

第一幅圖顯示的是 欠擬合(underfitting) 或者 高偏差(high bias),指的是對數據趨勢的擬合效果很差,當使用過於簡單的擬合函數或使用過少的特征進行預測,會導致欠擬合;

第三幅圖顯示的是 過擬合(overfitting) 或者 高方差(high variance),指的是對數據擬合很好,但是泛化能力(generalize)很差,也就是對新數據的預測能力很差,原因是使用了過於復雜的擬合函數。

上面是關於邏輯回歸的過擬合問題示例。

這里講到有兩種方法用於解決 過擬合 問題。

 1)減少數據特征的數量

  • 手動選擇保留哪些特征;
  • 使用模型選擇算法(后面的課程會涉及到);

2)正則化(Regularization

  • 保留所有的特征,減小參數theta的值;
  • 當我們擁有很多不太有用的特征時,正則化會起到很好的作用;

Cost Function for Solving Overfitting

 如果我們的假設函數有過擬合的問題,我們可以通過增加它們的成本cost,來減小我們的函數中的一些項的權重。

也就是說我們給某些theta值一個很大的懲罰項。如下面的例子,在theta3和theta4前面乘以1000的懲罰項,使theta3和theta4趨於0,以減小3次項和4次項對整個函數的影響,我們要使過擬合的函數接近於二次函數的圖像。

我們也可以‘懲罰’函數的每一項,使用下面的公式:

 

 藍色的圖像是過擬合的圖像,紅色的項是正則化后的圖像,顯然后者對數據的擬合更好。懲罰項的參數lambda成為‘正則化參數’(regularization parameter)。

使用懲罰項,我們可以平滑函數曲線以減小過擬合。但如果lambda過大,會使theta->0,使數據 欠擬合,如下圖。

相反,如果lambda過小,甚至直接為0,會導致 過擬合的情況。

Regularized Linear Regression

將正則化應用到線性回歸中,下面是我們需要優化的 J(theta):

使用梯度下降算法:

和之前的相比,正則化后的算法只是在 求theta時加了 一項λ/m×theta(藍框中的項),可以證明這是上面正則化后的J(theta)的求偏導的結果,從j=1開始。

注意,這里不需要懲罰theta0,所以把theta0的更新單列出來。

同樣,正則化也可以在Normal Equation中使用,有以下公式。

相比之前,我們只是添加了lambda*L這一項,其中矩陣L的形式如上所示。

回想,當m(example)<=n(feature)時,XT×X是不可逆的,但是添加lambda*L這一項后整體便是可逆的了。

Regularized Logistic Regression

我們同樣可以將正則化應用到邏輯回歸中,解決過擬合的問題。

通過在損失函數加上藍色方塊中的懲罰項,便得到了正則化使用的J(theta),然后將其應用到梯度下降中:

這里同樣不需要懲罰theta0。

同樣可以使用Octave提供的最優化方法實現正則化。

這樣我們就解決了線性回歸和邏輯回歸中的過度擬合問題,小伙伴們趕緊去實現一下吧。

 


免責聲明!

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



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