【Coursera公開課筆記】 斯坦福大學機器學習第六課“邏輯迴歸(Logistic Regression)”

轉載自:斯坦福大學機器學習第六課“邏輯迴歸(Logistic Regression)”

斯坦福大學機器學習第六課"邏輯迴歸“學習筆記,本次課程主要包括7部分:

1) Classification(分類)

2) Hypothesis Representation

3) Decision boundary(決策邊界)

4) Cost function(代價函數,成本函數)

5) Simplified cost function and gradient descent(簡化版代價函數及梯度下降算法)

6) Advanced optimization(其他優化算法)

7) Multi-class classification: One-vs-all(多類分類問題)

以下是每一部分的詳細解讀。

 

1) Classification(分類)

分類問題舉例:

  1. 郵件:垃圾郵件/非垃圾郵件?
  2. 在線交易:是否欺詐(是/否)?
  3. 腫瘤:惡性/良性?

以上問題可以稱之爲二分類問題,可以用如下形式定義:

二分類問題-我愛公開課-52opencourse.com

其中0稱之爲負例,1稱之爲正例。

對於多分類問題,可以如下定義因變量y:

如果分類器用的是迴歸模型,並且已經訓練好了一個模型,可以設置一個閾值:

  • 如果,則預測y=1,既y屬於正例;
  • 如果,則預測y=0,既y屬於負例;

如果是線性迴歸模型,對於腫瘤這個二分類問題,圖形表示如下:

線性迴歸二分類問題-我愛公開課-52opencourse.com

但是對於二分類問題來說,線性迴歸模型的Hypothesis輸出值可以大於1也可以小於0。

這個時候我們引出邏輯迴歸,邏輯迴歸的Hypothesis輸出介於0與1之間,既:

注: 以下引自李航博士《統計學習方法》1.8節關於分類問題的一點描述:

分類是監督學習的一個核心問題,在監督學習中,當輸出變量Y取有限個離散值時,預測問題便成爲分類問題。這時,輸入變量X可以是離散的,也可以是連續的。監督學習從數據中學習一個分類模型或分類決策函數,稱爲分類器(classifier)。分類器對新的輸入進行輸出的預測(prediction),稱爲分類(classification).

2) Hypothesis Representation

邏輯迴歸模型:

上一節談到,我們需要將Hypothesis的輸出界定在0和1之間,既:

但是線性迴歸無法做到,這裏我們引入一個函數g, 令邏輯迴歸的Hypothesis表示爲:

       

這裏g稱爲Sigmoid function或者Logistic function, 具體表達式爲:

            

Sigmoid 函數在有個很漂亮的“S"形,如下圖所示(引自維基百科):

Sigmoid function-我愛公開課-52opencourse.com

綜合上述兩式,我們得到邏輯迴歸模型的數學表達式:

     

其中是參數。


Hypothesis輸出的直觀解釋:

 = 對於給定的輸入x,y=1時估計的概率

例如,對於腫瘤(惡性/良性),如果輸入變量(特徵)是腫瘤的大小:

腫瘤分類例子-我愛公開課-52opencourse.com

這裏Hypothesis表示的是”病人的腫瘤有70%的可能是惡性的“。

較正式的說法可以如下表示:

給定輸入x,參數化的(參數空間), y=1時的概率。

數學上可以如下表示:

對於因變量y=0或1這樣的二分類問題:

 

3) Decision boundary(決策邊界)

如上節所述,邏輯迴歸模型可以如下表示:

邏輯迴歸模型表達式-我愛公開課-52opencourse.com

假設給定的閾值是0.5,當時, y = 1;

時,y = 0;

再次回顧sigmoid function的圖形,也就是g(z)的圖形:

sigomoid function g(x) -我愛公開課-52opencourse.com

時, ;

對於, 則, 此時意味着預估y=1;

反之,當預測y = 0時,;

我們可以認爲 = 0是一個決策邊界,當它大於0或小於0時,邏輯迴歸模型分別預測不同的分類結果。例如,

分別取-3, 1, 1,

則當時, y = 1; 則是一個決策邊界,圖形表示如下:

決策邊界-我愛公開課-52opencourse.com

上述只是一個線性的決策邊界,當更復雜的時候,我們可以得到非線性的決策邊界,例如:

非線性的決策邊界1-我愛公開課-52opencourse.com

這裏當時,y=1,決策邊界是一個圓形,如下圖所示:

非線性決策邊界2-我愛公開課-52opencourse.com

更復雜的例子,請參考官方PPT,這裏就不再舉例了。

 

4) Cost function(代價函數,成本函數)

邏輯迴歸概覽:

邏輯迴歸是一種有監督的學習方法,因此有訓練集:

訓練集-我愛公開課-52opencourse.com

對於這m個訓練樣本來說,每個樣本都包含n+1個特徵:

訓練樣本-我愛公開課-52opencourse.com

其中.

Hypothesis可表示爲:

  

與線性迴歸相似,我們的問題是如何選擇合適的參數?

 

Cost Function:

線性迴歸的Cost  Function定義爲:

這裏可以把簡寫爲,更簡化的表達式爲:

如果和線性迴歸相似,這裏取 ,會存在一個問題,也就是邏輯迴歸的Cost Function是“非凸”的,如下圖所示:

非凸函數-我愛公開課-52opencourse.com

我們知道,線性迴歸的Cost Function是凸函數,具有碗狀的形狀,而凸函數具有良好的性質:對於凸函數來說局部最小值點即爲全局最小值點,因此只要能求得這類函數的一個最小值點,該點一定爲全局最小值點。

凸函數-我愛公開課-52opencouse.com

因此,上述的Cost Function對於邏輯迴歸是不可行的,我們需要其他形式的Cost Function來保證邏輯迴歸的成本函數是凸函數。

這裏補充一段李航博士《統計學習方法》裏關於Cost Function或者損失函數(loss function)的說明,大家就可以理解Cost Function不限於一種方式,而是有多種方式可選,以下摘自書中的1.3.2小節:

監督學習問題是在假設空間F中選取模型f作爲決策函數,對於給定的輸入X,由f(X)給出相應的輸出Y,這個輸出的預測值f(X)與真實值Y可能一致也可能不一致,用一個損失函數(loss function)或代價函數(cost function)來度量預測錯誤的程度。損失函數是f(X)和Y的非負實值函數,記作L(Y, f(X)).

統計學習中常用的損失函數有以下幾種:

(1) 0-1損失函數(0-1 loss function):

(2) 平方損失函數(quadratic loss function)

(3) 絕對損失函數(absolute loss function)

(4) 對數損失函數(logarithmic loss function) 或對數似然損失函數(log-likelihood loss function)

損失函數越小,模型就越好。

邏輯迴歸的Cost Function:

基於上節的描述和補充,這裏我們選擇對數似然損失函數作爲邏輯迴歸的Cost Function:

邏輯迴歸之對數似然損失函數-我愛公開課-52opencourse.com

直觀的來解釋這個Cost Function,首先看當y=1的情況:

對數似然損失函數解釋1-我愛公開課-52opencouse.com

直觀來看, 如果y = 1, ,則Cost = 0,也就是預測的值和真實的值完全相等的時候Cost =0;

但是,當時, 

直觀來看,由於預測的結果南轅北轍:

如果, 也就是預測,也就是y=1的概率是0,但是實際上y = 1

因此對於這個學習算法給予一個很大的Cost的懲罰。

同理對於y=0的情況也適用:

對數似然損失函數解釋2-我愛公開課-52opencourse.com

 

5) Simplified cost function and gradient descent(簡化版代價函數及梯度下降算法)

邏輯迴歸的Cost Function可以表示爲:

邏輯迴歸代價函數-我愛公開課-52opencourse.com

由於y 只能等於0或1,所以可以將邏輯迴歸中的Cost function的兩個公式合併,具體推導如下:

邏輯迴歸代價函數推導-我愛公開課-52opencourse.com

故邏輯迴歸的Cost function可簡化爲:

邏輯迴歸代價函數簡化公式-我愛公開課-52opencourse.com

對於這個公式,這裏稍微補充一點,注意中括號中的公式正是對邏輯迴歸進行最大似然估計中的最大似然函數,對於最大似然函數求最大值,從而得到參數(\theta\)的估計值。反過來,這裏爲了求一個合適的參數,需要最小化Cost function,也就是:

而對於新的變量x來說,就是根據的公式輸出結果:

邏輯迴歸預估-我愛公開課-52opencourse.com

與線性迴歸相似,這裏我們採用梯度下降算法來學習參數,對於:

邏輯迴歸梯度下降算法之Cost function-我愛公開課-52opencouse.com

目標是最小化,則梯度下降算法的如下:

邏輯迴歸梯度下降算法-我愛公開課-52opencourse.com

求導後,梯度下降算法如下:

梯度下降算法-我愛公開課-52opencourse.com

注意,這個算法和線性迴歸裏的梯度下降算法幾乎是一致的,除了的表示不同。

 

6) Advanced optimization(其他優化算法)

優化算法:

給定參數,我們可以寫成代碼來計算:

邏輯迴歸優化算法-我愛公開課-52opencourse.com

優化算法除了梯度下降算法外,還包括:

  • Conjugate gradient method(共軛梯度法)
  • Quasi-Newton method(擬牛頓法)
  • BFGS method
  • L-BFGS(Limited-memory BFGS)

後二者由擬牛頓法引申出來,與梯度下降算法相比,這些算法的優點是:

第一,不需要手動的選擇步長;

第二,通常比梯度下降算法快;

但是缺點是更復雜-更復雜也是缺點嗎?其實也算不上,關於這些優化算法,推薦有興趣的同學看看52nlp上這個系列的文章:無約束最優化,作者是我的師兄,更深入的瞭解可以參考這篇文章中推薦的兩本書:

用於解無約束優化算法的Quasi-Newton Method中的LBFGS算法到這裏總算初步介紹完了,不過這裏筆者要承認的是這篇文檔省略了許多內容,包括算法收斂性的證明以及收斂速度證明等許多內容。因此讀者若希望對這一塊有一個更深入的認識可以參考以下兩本書:
1) Numerical Methods for Unconstrained Optimization and Nonlinear Equations(J.E. Dennis Jr. Robert B. Schnabel)
2) Numerical Optimization(Jorge Nocedal Stephen J. Wright)

7) Multi-class classification: One-vs-all(多類分類問題)

多類分類問題舉例:

電子郵件分類/標註: 工作郵件,朋友郵件,家庭郵件,愛好郵件

醫療圖表(medical diagrams): 沒有生病,着涼,流感

天氣:晴天,多雲,雨,雪

二類分類問題如下圖所示:

二類分類問題-我愛公開課-52opencourse.com

多類分類問題如下所示:

多類分類問題-我愛公開課-52opencourse.com

One-vs-all(one-vs-rest):

對於多類分類問題,可以將其看做成二類分類問題:保留其中的一類,剩下的作爲另一類。例如,對於下面這個例子:

多分類問題-one-vs-all-我愛公開課-52opencourse.com

可以分別計算其中一類相對於其他類的概率:

one-vs-rest-多分類問題-我愛公開課-52opencourse.com

總結-One-vs-all方法框架:

對於每一個類 i 訓練一個邏輯迴歸模型的分類器,並且預測 y = i時的概率;

對於一個新的輸入變量x, 分別對每一個類進行預測,取概率最大的那個類作爲分類結果:

多分類問題預測-我愛公開課-52opencourse.com

 

參考資料:

第六課“邏輯迴歸”的課件資料下載鏈接,視頻可以在Coursera機器學習課程上觀看或下載: https://class.coursera.org/ml
PPT   PDF

李航博士《統計學習方法

http://en.wikipedia.org/wiki/Sigmoid_function

http://en.wikipedia.org/wiki/Logistic_function

無約束最優化

http://en.wikipedia.org/wiki/Loss_function

http://en.wikipedia.org/wiki/Conjugate_gradient_method

http://en.wikipedia.org/wiki/Quasi-Newton_method

http://en.wikipedia.org/wiki/BFGS_method

http://en.wikipedia.org/wiki/Limited-memory_BFGS

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章