Coursera公开课笔记: 斯坦福大学机器学习第六课“逻辑回归(Logistic Regression)”
Coursera公開課筆記: 斯坦福大學機器學習第六課“邏輯回歸(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(分類)
分類問題舉例:
以上問題可以稱之為二分類問題,可以用如下形式定義:
其中0稱之為負例,1稱之為正例。
對于多分類問題,可以如下定義因變量y:
y∈{0,1,2,3,…,n}
如果分類器用的是回歸模型,并且已經訓練好了一個模型,可以設置一個閾值:
- 如果hθ(x)≥0.5,則預測y=1,既y屬于正例;
- 如果hθ(x)<0.5,則預測y=0,既y屬于負例;
如果是線性回歸模型,對于腫瘤這個二分類問題,圖形表示如下:
但是對于二分類問題來說,線性回歸模型的Hypothesis輸出值hθ(x)可以大于1也可以小于0。
這個時候我們引出邏輯回歸,邏輯回歸的Hypothesis輸出介于0與1之間,既:
0≤hθ(x)≤1
注: 以下引自李航博士《統計學習方法》1.8節關于分類問題的一點描述:
分類是監督學習的一個核心問題,在監督學習中,當輸出變量Y取有限個離散值時,預測問題便成為分類問題。這時,輸入變量X可以是離散的,也可以是連續的。監督學習從數據中學習一個分類模型或分類決策函數,稱為分類器(classifier)。分類器對新的輸入進行輸出的預測(prediction),稱為分類(classification).
2) Hypothesis Representation
邏輯回歸模型:
上一節談到,我們需要將Hypothesis的輸出界定在0和1之間,既:
0≤hθ(x)≤1
但是線性回歸無法做到,這里我們引入一個函數g, 令邏輯回歸的Hypothesis表示為:
hθ(x)=g(θTx)
這里g稱為Sigmoid function或者Logistic function, 具體表達式為:
g(z)=11+e?z
Sigmoid 函數在有個很漂亮的“S”形,如下圖所示(引自維基百科):
綜合上述兩式,我們得到邏輯回歸模型的數學表達式:
hθ(x)=11+e?θTx
其中θ是參數。
Hypothesis輸出的直觀解釋:
hθ(x) = 對于給定的輸入x,y=1時估計的概率
例如,對于腫瘤(惡性/良性),如果輸入變量(特征)是腫瘤的大小:
這里Hypothesis表示的是”病人的腫瘤有70%的可能是惡性的“。
較正式的說法可以如下表示:
給定輸入x,參數化的θ(參數空間), y=1時的概率。
數學上可以如下表示:
hθ(x)=P(y=1|x;θ)
對于因變量y=0或1這樣的二分類問題:
P(y=0|x;θ)+P(y=1|x;θ)=1
P(y=0|x;θ)=1–P(y=1|x;θ)
3) Decision boundary(決策邊界)
如上節所述,邏輯回歸模型可以如下表示:
假設給定的閾值是0.5,當hθ(x)≥0.5時, y = 1;
當hθ(x)<0.5時,y = 0;
再次回顧sigmoid function的圖形,也就是g(z)的圖形:
當g(z)≥0.5時, z≥0;
對于hθ(x)=g(θTx)≥0.5, 則θTx≥0, 此時意味著預估y=1;
反之,當預測y = 0時,θTx<0;
我們可以認為θTx = 0是一個決策邊界,當它大于0或小于0時,邏輯回歸模型分別預測不同的分類結果。例如,
hθ(x)=g(θ0+θ1x1+θ2x2)
θ0,θ1,θ2分別取-3, 1, 1,
則當?3+x1+x2≥0時, y = 1; 則x1+x2?=3是一個決策邊界,圖形表示如下:
上述只是一個線性的決策邊界,當hθ(x)更復雜的時候,我們可以得到非線性的決策邊界,例如:
這里當x21+x22≥1時,y=1,決策邊界是一個圓形,如下圖所示:
更復雜的例子,請參考官方PPT,這里就不再舉例了。
4) Cost function(代價函數,成本函數)
邏輯回歸概覽:
邏輯回歸是一種有監督的學習方法,因此有訓練集:
對于這m個訓練樣本來說,每個樣本都包含n+1個特征:
其中x∈Rn+1, x0=1,y∈{0,1}.
Hypothesis可表示為:
hθ(x)=11+e?θTx
與線性回歸相似,我們的問題是如何選擇合適的參數θ?
Cost Function:
線性回歸的Cost? Function定義為:
J(θ)=1m∑i=1m12(hθ(x(i))–y(i))2
這里可以把12(hθ(x(i))–y(i))2簡寫為Cost(hθ(x(i),y),更簡化的表達式為:
Cost(hθ(x),y)=12(hθ(x)–y)2
如果和線性回歸相似,這里取 hθ(x)=11+e?θTx,會存在一個問題,也就是邏輯回歸的Cost Function是“非凸”的,如下圖所示:
我們知道,線性回歸的Cost Function是凸函數,具有碗狀的形狀,而凸函數具有良好的性質:對于凸函數來說局部最小值點即為全局最小值點,因此只要能求得這類函數的一個最小值點,該點一定為全局最小值點。
因此,上述的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):
L(Y,f(X))={1,0,Y≠f(X)Y=f(X)
(2) 平方損失函數(quadratic loss function)
L(Y,f(X))=(Y–f(X))2
(3) 絕對損失函數(absolute loss function)
L(Y,f(X))=|Y–f(X)|
(4) 對數損失函數(logarithmic loss function) 或對數似然損失函數(log-likelihood loss function)
L(Y,P(Y|X))=?logP(Y|X)
損失函數越小,模型就越好。
邏輯回歸的Cost Function:
基于上節的描述和補充,這里我們選擇對數似然損失函數作為邏輯回歸的Cost Function:
直觀的來解釋這個Cost Function,首先看當y=1的情況:
直觀來看, 如果y = 1, hθ(x)=1,則Cost = 0,也就是預測的值和真實的值完全相等的時候Cost =0;
但是,當hθ(x)→0時, Cost→∞
直觀來看,由于預測的結果南轅北轍:
如果hθ(x)=0, 也就是預測P(y=1|x;θ)=0,也就是y=1的概率是0,但是實際上y = 1
因此對于這個學習算法給予一個很大的Cost的懲罰。
同理對于y=0的情況也適用:
5) Simplified cost function and gradient descent(簡化版代價函數及梯度下降算法)
邏輯回歸的Cost Function可以表示為:
由于y 只能等于0或1,所以可以將邏輯回歸中的Cost function的兩個公式合并,具體推導如下:
故邏輯回歸的Cost function可簡化為:
對于這個公式,這里稍微補充一點,注意中括號中的公式正是對邏輯回歸進行最大似然估計中的最大似然函數,對于最大似然函數求最大值,從而得到參數(\theta\)的估計值。反過來,這里為了求一個合適的參數,需要最小化Cost function,也就是:
minθJ(θ)
而對于新的變量x來說,就是根據hθ(x)的公式輸出結果:
與線性回歸相似,這里我們采用梯度下降算法來學習參數θ,對于J(θ):
目標是最小化J(θ),則梯度下降算法的如下:
對J(θ)求導后,梯度下降算法如下:
注意,這個算法和線性回歸里的梯度下降算法幾乎是一致的,除了hθ(x)的表示不同。
6) Advanced optimization(其他優化算法)
優化算法:
給定參數θ,我們可以寫成代碼來計算:
優化算法除了梯度下降算法外,還包括:
- 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): 沒有生病,著涼,流感
天氣:晴天,多云,雨,雪
二類分類問題如下圖所示:
多類分類問題如下所示:
One-vs-all(one-vs-rest):
對于多類分類問題,可以將其看做成二類分類問題:保留其中的一類,剩下的作為另一類。例如,對于下面這個例子:
可以分別計算其中一類相對于其他類的概率:
總結-One-vs-all方法框架:
對于每一個類 i 訓練一個邏輯回歸模型的分類器h(i)θ(x),并且預測 y = i時的概率;
對于一個新的輸入變量x, 分別對每一個類進行預測,取概率最大的那個類作為分類結果:
參考資料:
第六課“邏輯回歸”的課件資料下載鏈接,視頻可以在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
出處:http://www.52nlp.cn/coursera%E5%85%AC%E5%BC%80%E8%AF%BE%E7%AC%94%E8%AE%B0-%E6%96%AF%E5%9D%A6%E7%A6%8F%E5%A4%A7%E5%AD%A6%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%AC%AC%E5%85%AD%E8%AF%BE%E9%80%BB%E8%BE%91%E5%9B%9E
總結
以上是生活随笔為你收集整理的Coursera公开课笔记: 斯坦福大学机器学习第六课“逻辑回归(Logistic Regression)”的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Octave相关学习资源整理出
- 下一篇: 斯坦福大学机器学习第八课“神经网络的表示