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具有下列的分布函數和密度函數:
有沒有發現

有沒有發現右邊非常熟悉?沒錯。就是sigmoid 曲線。僅僅只是,這個曲線是以點(
從圖中能夠看出。曲線在中心附近增長速度較快,而形狀參數
二項邏輯回歸模型
之前說到,邏輯回歸是一種二分類模型,由條件概率分布
這里的自變量
也就是說,輸出
Y=1 的對數幾率是由輸入x 的線性函數表示的模型。這就是 邏輯回歸模型。當w⋅x 的值越接近正無窮,P(Y=1|x) 概率值也就越接近1.
模型的數學形式確定后,剩下就是怎樣去求解模型中的參數。在統計學中。常用極大似然預計法來求解,即找到一組參數。使得在這組參數下,我們的數據的似然度(概率)最大。
設:
似然函數:
對數似然函數:
如今要求
在機器學習領域,我們更常常遇到的是損失函數的概念。其衡量的是模型預測錯誤的程度。常用的損失函數有0-1損失,log損失,hinge損失等。
一般是最小化損失函數,這里為啥求極大似然預計?
實際上。對數似然損失在單個數據點上的定義為:
如果取整個數據集上的平均對數似然損失,我們恰好能夠得到:
即在邏輯回歸模型中,我們最大化似然函數和最小化對數似然損失函數實際上是等價的。
接下來就是對
[先跑個題],講到求極值的方法,突然想到有幾個可視化的gif圖。能夠非常直觀地體現各種算法的優劣。好東西當然要分享了。
Imgur 網友通過可視化方法,對照了SGD, momentum, Nesterov, AdaGrad, AdaDelta,
RMSProp等優化算法在Long Valley, Beale’s Function及Saddle Point情況下的性質。
Long Valley:

Beale’s Function:

Saddle Point:

以后會專門寫一篇來講求極值的方法。這是題外話了。我們還是繼續回歸邏輯吧,哈哈。
以下介紹使用梯度下降法來求解邏輯回歸問題。
使用梯度下降法(Gradient Descent)求解邏輯回歸
算法(梯度下降法求解邏輯回歸)
輸入:目標函數:
輸出:
過程:
(1) 取初始值
(2) 計算
(3) 計算梯度
若
否則,令
(4) 令
當
(5) 否則,令
邏輯回歸的正則化
當模型的參數過多時。非常easy遇到過擬合的問題。而正則化是結構風險最小化的一種實現方式,通過在經驗風險上加一個正則化項,來懲處過大的參數來防止過擬合。
正則化是符合奧卡姆剃刀(Occam’s razor)原理的:在全部可能選擇的模型中。能夠非常好地解釋已知數據而且十分簡單的才是最好的模型。
我們來看一下underfitting,fitting跟overfitting的情況:

顯然,最右這張圖overfitting了,原因可能是能影響結果的參數太多了。
典型的做法在優化目標中增加正則項,通過懲處過大的參數來防止過擬合:
p=1或者2。表示
L1 范數:是指向量中各個元素絕對值之和。也有個美稱叫“稀疏規則算子”(Lasso regularization)。那么。參數稀疏 有什么優點呢?
一個關鍵原因在於它能實現 特征的自己主動選擇。
一般來說,大部分特征
在最小化目標函數的時候考慮到這些額外的特征
L2 范數:它有兩個美稱。在回歸里面,有人把有它的回歸叫“嶺回歸”(Ridge Regression),有人也叫它“權值衰減”(weight decay)。
它的強大之處就是它能 解決過擬合 問題。我們讓
咦,你為啥說越小的參數表示的模型越簡單呢? 事實上我也不知道,我也是猜,可能是由於參數小。對結果的影響就小了吧。
為了更直觀看出兩者的差別,我再放一張圖:

為了簡單,上圖僅僅考慮了
一句話總結就是:
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的關系?
邏輯回歸跟最大熵模型究竟有啥差別呢?
簡單粗暴 的回答是:邏輯回歸跟最大熵模型沒有本質差別。邏輯回歸是最大熵相應類別為二類時的特殊情況。也就是當邏輯回歸類別擴展到多類別時。就是最大熵模型。
以下來具體地介紹一下:
在進行以下推導之前,先上幾個數學符號定義:
π(x)u 表示,輸入時x , 輸出的y=u 的概率;A(u,v) 是一個指示函數,若u=v 。則A(u,v)=1 。否則A(u,v)=0 - 我們的目標,就是從訓練數據中,學習得到一個模型。使得
π(x)u 最大化,也就是輸入x ,預測結果是y 的概率最大,也就是使得π(x)y 最大。
回想邏輯回歸
標准的邏輯回歸是二類模型,有:
我們用一個更加泛化的形式來表達
回到我們的目標:令
對
令偏導等於0,能夠得到:
使用
回想最大熵模型
想要證明邏輯回歸跟最大熵模型是等價的,那么。僅僅要能夠證明它們的
利用信息論的僅僅是,我們能夠得到
如今,我們有了目標:
我們的拉格朗日式子能夠寫成例如以下:
對
令偏導=0,得到:
由於有約束條件:
因此。能夠得到
把
有沒有發現這就是邏輯回歸中。提到的那個泛化的式子,這就證明了邏輯回歸是最大熵模型的一個特殊樣例(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
