【機器學習】Logistic Regression 的前世今生(理論篇)


Logistic Regression 的前世今生(理論篇)


本博客僅為作者記錄筆記之用,不免有非常多細節不正確之處。

還望各位看官能夠見諒,歡迎批評指正。

博客雖水,然亦博主之苦勞也。

如需轉載,請附上本文鏈接,不甚感激!
http://blog.csdn.net/cyh_24/article/details/50359055


寫這篇博客的動力是源於看到了以下這篇微博:

此處輸入圖片的描寫敘述

我在看到這篇微博的時候大為觸動,由於,如果是rickjin來面試我。我想我會死的非常慘,由於他問的問題我基本都回答不上來。

所以,痛定思痛,我決定今后對一些算法的理解不能僅僅是停留在表面。而應該至少往前推一步,嘗試看得更遠一些。
對於學習機器學習的人來說,Logistic Regression能夠說是一個入門的算法,算法本身不復雜,只是也正是由於這個原因。非常多人往往忽略了這個算法的一些內在精髓。

這篇博客里。我打算就rickjin問的一些問題,進行總結:

1. LR原理
2. LR的求解數學推導
3. LR的正則化
4. 為什么LR能比線性回歸好?
5. LR與MaxEnt的關系
6. 並行化的LR


邏輯回歸模型

盡管邏輯回歸 姓 回歸,只是事實上它的真實身份是二分類器。介紹完了姓。我們來介紹一下它的名字,邏輯斯蒂。這個名字來源於邏輯斯蒂分布:

邏輯斯蒂分布

設X是連續隨機變量,X服從邏輯斯蒂分布是指X具有下列的分布函數密度函數

F(x)=P(Xx)=11+e(xμ)/γ
f(x)=F(Xx)=e(xμ)/γγ(1+e(xμ)/γ)2
上式中。 μ 表示 位置參數 γ>0 形狀參數。

有沒有發現 F(x) 是啥?有圖你就知道真相了:

此處輸入圖片的描寫敘述

有沒有發現右邊非常熟悉?沒錯。就是sigmoid 曲線。僅僅只是,這個曲線是以點( μ , 12 ) 為中心對稱。

從圖中能夠看出。曲線在中心附近增長速度較快,而形狀參數 γ 值越小。曲線在中心附近增長越快,請自行腦補一下。


二項邏輯回歸模型

之前說到,邏輯回歸是一種二分類模型,由條件概率分布 P(Y|X) 表示,形式就是參數化的邏輯斯蒂分布

這里的自變量 X 取值為實數。而因變量 Y 為0或者1。二項LR的條件概率例如以下:

P(Y=1|x)==ewx1+ewx
P(Y=0|x)==11+ewx
一個事件的 幾率(odds):指該事件發生與不發生的概率比值,若事件發生概率為 p 。那么事件發生的 幾率就是
odds=p1p
那么該事件的 對數幾率(log odds或者logit)就是:
logit(p)=logp1p
那么,對邏輯回歸而言, Y=1 對數幾率就是:
logP(Y=1|x)1P(Y=1|x)=wx

也就是說,輸出 Y=1 的對數幾率是由輸入 x 線性函數表示的模型。這就是 邏輯回歸模型。當 wx 的值越接近正無窮, P(Y=1|x) 概率值也就越接近1.

模型的數學形式確定后,剩下就是怎樣去求解模型中的參數。在統計學中。常用極大似然預計法來求解,即找到一組參數。使得在這組參數下,我們的數據的似然度(概率)最大。

設:

P(Y=1|x)=π(x),P(Y=0|x)=1π(x)

似然函數:

L(w)=[π(xi)]yi[1π(xi)]1yi

對數似然函數:

lnL(w)=[yilnπ(xi)+(1yi)ln(1π(xi))]
=[yilnπ(xi)1π(xi)+ln(1π(xi))]
=[yi(wxi)ln(1+ewxi)]

如今要求 w 使得 L(w) 最大。有的人可能會有疑問:

在機器學習領域,我們更常常遇到的是損失函數的概念。其衡量的是模型預測錯誤的程度。常用的損失函數有0-1損失,log損失,hinge損失等。

一般是最小化損失函數,這里為啥求極大似然預計?

實際上。對數似然損失在單個數據點上的定義為:

ylnp(y|x)(1y)ln[1p(y|x)]=[yilnπ(xi)+(1yi)ln(1π(xi))]

如果取整個數據集上的平均對數似然損失,我們恰好能夠得到:

J(w)=1NlnL(w)

即在邏輯回歸模型中,我們最大化似然函數最小化對數似然損失函數實際上是等價的。

接下來就是對 L(w) 求極大值(也可覺得是求 J(w) 的最小值)。得到 w 的預計值。邏輯回歸學習中通常採用的方法是梯度下降法牛頓法

[先跑個題],講到求極值的方法,突然想到有幾個可視化的gif圖。能夠非常直觀地體現各種算法的優劣。好東西當然要分享了。

Imgur 網友通過可視化方法,對照了SGD, momentum, Nesterov, AdaGrad, AdaDelta,
RMSProp等優化算法在Long Valley, Beale’s Function及Saddle Point情況下的性質。

Long Valley:
此處輸入圖片的描寫敘述

Beale’s Function:

此處輸入圖片的描寫敘述

Saddle Point:

此處輸入圖片的描寫敘述

以后會專門寫一篇來講求極值的方法。這是題外話了。我們還是繼續回歸邏輯吧,哈哈。


以下介紹使用梯度下降法來求解邏輯回歸問題。


使用梯度下降法(Gradient Descent)求解邏輯回歸

算法(梯度下降法求解邏輯回歸)
輸入:目標函數: J(w) (對數似然損失函數),梯度函數: g(w)=J(w) 。 計算精度 ϵ
輸出 J(w) 的極小值點 w
過程
(1) 取初始值 w0Rn , 令 k=0
(2) 計算 J(wk)

J(wk)=1NlnL(wk)lnL(wk)
=[yi(wkxi)ln(1+ewkxi)]

(3) 計算梯度 gk=g(wk)=J(w)

g(wk)=[xiyixiewkxi1+ewkxi]

=[xiyiπ(xi)]

||gk||<ϵ 。停止迭代,令

w=wk

否則,令 pk=g(wk) 。求 λk ,使得

J(wk+λkpk)=min(J(wk+λpk))

(4) wk+1=wk+λkpk 。計算 J(wk+1)
||J(wk+1)J(wk)||<ϵ ||wk+1wk||<ϵ ,停止迭代,令

w=wk+1

(5) 否則,令 k=k+1 ,轉(3).

邏輯回歸的正則化

當模型的參數過多時。非常easy遇到過擬合的問題。而正則化是結構風險最小化的一種實現方式,通過在經驗風險上加一個正則化項,來懲處過大的參數來防止過擬合。

正則化是符合奧卡姆剃刀(Occam’s razor)原理的:在全部可能選擇的模型中。能夠非常好地解釋已知數據而且十分簡單的才是最好的模型。

我們來看一下underfitting,fitting跟overfitting的情況:

此處輸入圖片的描寫敘述

顯然,最右這張圖overfitting了,原因可能是能影響結果的參數太多了。

典型的做法在優化目標中增加正則項,通過懲處過大的參數來防止過擬合:

J(w)=>J(w)+λ||w||p

p=1或者2。表示 L1 范數和 L2 范數。這兩者還是有不同效果的。

L1 范數:是指向量中各個元素絕對值之和。也有個美稱叫“稀疏規則算子”(Lasso regularization)。

那么。參數稀疏 有什么優點呢?

一個關鍵原因在於它能實現 特征的自己主動選擇

一般來說,大部分特征 xi 和輸出 yi 之間並沒有多大關系。

在最小化目標函數的時候考慮到這些額外的特征 xi ,盡管能夠獲得更小的訓練誤差,但在預測新的樣本時。這些無用的信息反而會干擾了對正確 yi 的預測。稀疏規則化算子的引入就是為了完畢特征自己主動選擇的光榮使命,它會學習地去掉這些沒有信息的特征,也就是把這些特征相應的權重置為0。

L2 范數:它有兩個美稱。在回歸里面,有人把有它的回歸叫“嶺回歸”(Ridge Regression),有人也叫它“權值衰減”(weight decay)。

它的強大之處就是它能 解決過擬合 問題。我們讓 L2 范數的規則項 ||w||2 最小。能夠使得 w 的每一個元素都非常小。都接近於0,但與 L1 范數不同,它不會讓它等於0,而是接近於0。這里還是有非常大差別的。而越小的參數說明模型越簡單。越簡單的模型則越不easy產生過擬合現象。

,你為啥說越小的參數表示的模型越簡單呢? 事實上我也不知道,我也是猜,可能是由於參數小。對結果的影響就小了吧。

為了更直觀看出兩者的差別,我再放一張圖:

此處輸入圖片的描寫敘述

為了簡單,上圖僅僅考慮了 w 為二維 (w1,w2) 的情況。彩色等高線是 (w1,w2) ;而左邊黑色矩形 ||w||1<C 和右邊的圓形 ||w||2<C 是約束條件。相交的黑點就是最優解發生的地方。兩者的差別能夠從圖中看出來, L1 正則化(左圖)傾向於使參數變為0,因此能產生稀疏解。而 L2 使 w 接近0;

一句話總結就是: L1 會趨向於產生少量的特征,而其它的特征都是0,而 L2 會選擇很多其它的特征。這些特征都會接近於0。

為什么邏輯回歸比線性回歸要好?

盡管邏輯回歸能夠用於分類。只是其本質還是線性回歸。它僅在線性回歸的基礎上,在特征到結果的映射中增加了一層sigmoid函數(非線性)映射,即先把特征線性求和。然后使用sigmoid函數來預測。

然而,正是這個簡單的邏輯函數,使得邏輯回歸模型成為了機器學習領域一顆耀眼的明星。

此處輸入圖片的描寫敘述

以下我們來談談邏輯回歸與線性回歸的異同點吧。

如果隨Tumor Size變化。預測病人的腫瘤是惡性(malignant)還是良性(benign)的情況。給出8個數據例如以下(閾值為0.5):

![此處輸入圖片的描寫敘述][10]

圖1.a中,粉色線是預測模型,能夠看出,模型能夠全然把結果預測對了,可是圖1.b中藍色線卻預測的非常差。

這主要是由於線性回歸在整個實數域內敏感度一致,而分類范圍。須要在[0,1]之內。而邏輯回歸就是一種減小預測范圍,將預測值限定為[0,1]間的一種回歸模型,其回歸方程與回歸曲線例如以下圖所看到的。邏輯曲線在z=0時,十分敏感,在z>>0或z<<0處,都不敏感,將預測值限定為(0,1)。

邏輯回歸與最大熵模型MaxEnt的關系?

邏輯回歸跟最大熵模型究竟有啥差別呢?

簡單粗暴 的回答是:邏輯回歸跟最大熵模型沒有本質差別。邏輯回歸是最大熵相應類別為二類時的特殊情況。也就是當邏輯回歸類別擴展到多類別時。就是最大熵模型。

以下來具體地介紹一下:

在進行以下推導之前,先上幾個數學符號定義:

  1. π(x)u 表示,輸入時 x , 輸出的 y=u 的概率;
  2. A(u,v) 是一個指示函數,若 u=v 。則 A(u,v)=1 。否則 A(u,v)=0
  3. 我們的目標,就是從訓練數據中,學習得到一個模型。使得 π(x)u 最大化,也就是輸入 x ,預測結果是 y 的概率最大,也就是使得 π(x)y 最大。

回想邏輯回歸

標准的邏輯回歸是二類模型,有:

P(Y=1|x)=π(x)1=ewx1+ewx
P(Y=0|x)=π(x)0=1π(x)1

我們用一個更加泛化的形式來表達 π() ,(僅僅是在這里,k=2):

π(x)v=ewvxku=1ewux

回到我們的目標:令 π(xi)yi 最大。能夠用極大似然預計的方法來求解。


L(w)=i=1nπ(xi)yi

lnL(w)=i=1nln(π(xi)yi)

lnL(w) 求偏導,得到:

δδwu,jlnL(w)=...=i=1,yi=unxiji=1nxijπ(xi)u

令偏導等於0,能夠得到:

i=1nxijπ(xi)u=i=1,yi=unxij,(forallu,j)

使用 A(u,yi) 這個函數,我們能夠重寫等式:

i=1nxijπ(xi)u=i=1nA(u,yi)xij,(forallu,j)

回想最大熵模型

想要證明邏輯回歸跟最大熵模型是等價的,那么。僅僅要能夠證明它們的 π() 是同樣。結論自然就出來了。如今,我們不知道最大熵模型的 π() ,可是我們知道以下的一些性質:

π(x)v0always

v=1kπ(x)v=1always

i=1nxijπ(xi)u=i=1nA(u,yi)xij,(forallu,j)

利用信息論的僅僅是,我們能夠得到 π() 。定義例如以下:

v=1ki=1nπ(xi)vlog[π(xi)v]

如今,我們有了目標 π() 最大,也有了上面的4個約束條件。求解約束最優化問題,能夠通過拉格朗日乘子,將約束最優化問題轉換為無約束最優化的對偶問題。

我們的拉格朗日式子能夠寫成例如以下:

L=j=1mv=1kwv,j(i=1nπ(xi)vxijA(v,yi)xij)

+v=1ki=1nβi(π(xi)v1)

v=1ki=1nπ(xi)vlog[π(xi)v]

L 求偏導。得到:

δδπ(xi)uL=wuxi+βilog[π(xi)u]1

令偏導=0,得到: wuxi+βilog[π(xi)u]1=0 ,從而得到:

π(xi)u=ewuxi+βi1

由於有約束條件: kv=1π(x)v=1 ,所以,

v=1kewvxi+βi1=1

因此。能夠得到

eβ=1/v=1kewvxi1

eβ 代入 π() ,而且簡化一下式子:

π(x)u=ewuxkv=1ewvx

有沒有發現這就是邏輯回歸中。提到的那個泛化的式子,這就證明了邏輯回歸是最大熵模型的一個特殊樣例(k=2)!

到此,邏輯回歸與最大熵模型的關系就解釋完畢了,總結一下:

邏輯回歸跟最大熵模型沒有本質差別。邏輯回歸是最大熵相應類別為二類時的特殊情況

指數簇分布的最大熵等價於其指數形式的最大似然

二項式分布的最大熵解等價於二項式指數形式(sigmoid)的最大似然;
多項式分布的最大熵等價於多項式分布指數形式(softmax)的最大似然。

如果分布求解最大熵,引入拉格朗日函數,求偏導數等於0。直接求出的就是sigmoid函數形式。還有非常多指數簇分布都有相應的最大似然解。而單個指數簇分布往往表達能力有限,這就須要引入了多個指數簇分布的混合模型,比方高斯混合,從而引出EM算法。

Logistic Regression的理論部分講的差點兒相同了。下一篇文章將介紹Logistic Regression的並行化 project問題。

敬請期待…

Please feel free to contact me if you have any questions.


參考文獻

[1]. 李航,《統計學習方法》 
[2]. John Mount. *"The equivalence of logistic regression and maximum entropy models"*
[3]. http://tech.meituan.com/intro_to_logistic_regression.html
[4]. http://blog.csdn.net/zouxy09/article/details/24971995
[5]. http://www.tuicool.com/articles/auQFju


免責聲明!

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



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