標籤:

機器學習演算法系列--logistic回歸

一、Logistic Regression的理解

角度一:輸入變數X服從logistic分布的模型

LOGISTIC分布

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

可以看到μ影響的是中心對稱點的位置, gamma 越小中心點附近增長的速度越快。而常常在深度學習中用到的非線性變換sigmoid函數是邏輯斯蒂分布的γ=1,μ=0的特殊形式。

二項logistic回歸模型

邏輯回歸是為了解決分類問題,根據一些已知的訓練集訓練好模型,再對新的數據進行預測屬於哪個類。

由條件概率分布P(Y|X) 表示,形式就是參數化的邏輯斯蒂分布。這裡的自變數X取值為實數,而因變數Y為0或者1。二項LR的條件概率如下:

P(Y=1|x)=frac{e^{w.x+b}}{1+e^{w.x+b}}

P(Y=0|x)=frac{1}{1+e^{w.x+b}}

  • 對於給定的輸入實例x,按照上式可求得對應的條件概率,比較兩個條件概率的大小,將實例劃分到較大的一類.
  • 有時為了方便,將偏置擴充到權值向量中,此時模型表示如下

P(Y=1|x)=frac{e^{w.x}}{1+e^{w.x}}

P(Y=0|x)=frac{1}{1+e^{w.x}}

角度二:LR模型將線性分類函數轉換為(條件)概率

一個事件的幾率(odds):指該事件發生與不發生的概率比值,若事件發生概率為p,那麼事件發生的幾率就是

odds = frac{p}{1-p}

那麼該事件的對數幾率(log odds或者logit function)就是:

logit(P(Y=1|x))=log(frac{p}{1-p})=log(frac{P(Y=1|x)}{1-P(Y=1|x)})=w.x

從而可以得到一種對邏輯回歸的定義,輸出Y=1的對數幾率是由輸入x的線性函數表示的模型,即邏輯斯蒂回歸模型(李航.《統計機器學習》)所以說Logistic Regression屬於對數線性模型)。

因此,針對對輸入$x$進行分類的線性函數,通過LR模型可以將其轉換為(條件)概率:

P(Y=1|x)=frac{e^{w.x}}{1+e^{w.x}}

也就是說,輸出Y=1的對數幾率是由輸入x的線性函數表示的模型,這就是 邏輯回歸模型。當 w?x的值越接近正無窮,P(Y=1|x) 概率值也就越接近1.這樣的模型是邏輯斯蒂回歸模型(李航.《統計機器學習》

邏輯回歸的思路是,先擬合決策邊界(這裡的決策邊界不局限於線性,還可以是多項式),再建立這個邊界與分類的概率聯繫,從而得到了二分類情況下的概率。

角度三:廣義線性模型在分類問題上的推廣

根據廣義線性模型的思想,可以通過尋找一個聯繫函數來將分類任務的真實標記與線性回歸模型的預測值聯繫起來,最直接的想法是單位階躍函數,即

但是單位階躍函數不連續,所以我們希望找到一個替代函數來在一定程度上近似單位階躍函數,並希望該函數單調可微,於是就引入了對數幾率函數(sigmoid函數)

g(z)=y=frac{1}{1+e^{-z}} (1)

它是一個可導函數,定義域為(?∞,+∞)(?∞,+∞),值域為[0, 1],其導數為:g′(z)=g(z)(1?g(z))

說明一下,表達式(1)等價於使用線性回歸模型的預測結果直接去逼近真實標記的對數幾率,因此將其稱作「對數幾率回歸(logit regression)」。使用這種方法有以下幾大優點:

  • 直接對樣本進行建模,無需對樣本進行先驗假設;
  • 其結果不僅可以預測出「label」,還可以得到近似的概率預測值;
  • sigmoid函數的數學性質良好,它是任意階可導的凸函數,因此許多的優化方法都可使用

將對數幾率函數帶入廣義線性模型則有

y=frac{1}{1+e^{-(w*x+b)}}

其變形形式為

lnfrac{y}{1-y}=w.x+b

幾率 frac{y}{1-y} 反映了x作為正例的相對可能性。

二、logistic回歸的損失函數

基本思想:應用極大似然估計法估計模型參數,從而將問題轉化為以對數似然函數為目標函數的最優化問題,然後採用梯度下降法或者擬牛頓法進行求解

對數據集 T={ (x_1,y_2),(x_2,y_2)...(x_n,y_n) }, x_i in R^n , y_i in {0,1} ;

P(Y=1|x)=h(x)=frac{e^{w.x}}{1+e^{w.x}} (1)

P(Y=0|x)=1-h(x)=frac{1}{1+e^{w.x}} (2)

似然函數為 prod_{i=1}^{N}[h(x_i)]^{y_i}[1-h(x_i)]^{(1-y_i)} ,對數似然函數為

L(w) = sum_{I=1}^{N}{logP(y_i|x_i;w)}=sum_{i=1}^{N}{[y_ilogh(x_i)+(1-y_i)log(1-h(x_i))]}\ = sum_{i=1}^{N}[{y_ilogfrac{h(x_i)}{1-h(x_i)}+log(1-h(x_i))}]\ =sum_{i=1}^{N}[y_i(w.x_i)-log(1+exp(w.x_i))]

然後利用梯度下降法或擬牛頓法求解得到w的極大似然估計值

frac{delta h(x)}{delta w}=h(x).(1-h(x)).x

證明:

frac{delta h(x)}{delta w} = frac{x.e^{w.x}(1+e^{w.x})-e^{w.x}.x.e^{w.x}}{(1+e^{w.x})^2}\ =x.frac{e^{w.x}}{(1+e^{w.x})^2}\ =x.h(x).(1-h(x))

所以,

frac{delta l(w)}{delta w_i}=[y_i.frac{1}{h(x_i)}.frac{delta h(x)}{delta w_i}-(1-y_i).frac{1}{1-h(x_i)}.frac{delta h(x)}{delta w_i}]\ =y_i.x_i.(1-h(x_i))-(1-y_i).x_i.h(x_i)\ =(y_i-h(x_i)).x_i

所以, w_i:=w_i+alpha(y_i-h(x_i))x_i

最優化演算法並不限於梯度下降,還有:

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

上述優化演算法中,BFGS與L-BFGS均由擬牛頓法引申出來,與梯度下降演算法相比,其優點是:第一、不需要手動的選擇步長;第二、比梯度下降演算法快。但缺點是這些演算法更加複雜,實用性不如梯度下降。

三、sigmoid函數的由來

  1. 一種解釋是通過廣義線性模型,如將輸入y的對數幾率表示為輸入x的線性組合,即

logfrac{h(x)}{1-h(x)}=sum_{i=1}^{M}{w_i.x_i}\

=> frac{h(x)}{1-h(x)}=e^{sum_{i=1}^{M}{w_i.x_i}}=prod_{i=1}^{M}e^{w_i.x_i}

=> h(x)=frac{e^{sum_{}^{}{w_i.x_i}}}{1+e^{sum_{}^{}{w_i.x_i}}}

具體可參考

邏輯回歸(LR)?

www.jianshu.com圖標

2. 另一種推導則是由最大熵模型導出,詳細推導如下

http://olvs8x2q3.bkt.clouddn.com/最大熵.pdf?

olvs8x2q3.bkt.clouddn.com

3.指數分布族的推導

四、多項LR模型-多分類

在推導多分類的問題時,是假設 w_1^Tx+b_1 = frac{P(Y=1|x)}{P(Y=K|x)}、w_2^Tx+b_2 = frac{P(Y=2|x)}{P(Y=K|x)} ...等,再推導出 P(Y=k|x)=frac{1}{1+sum_{k=1}^{K-1}{e^{w^T_kx}}}、P(Y=K|x)=frac{e^{w^T_1x}}{1+sum_{k=1}^{K-1}{e^{w^T_kx}}} 等。

五、正則化

結構風險函數包括了經驗風險項和正則項,加入正則項相當於對參數加入了一個先驗分布,常用的有L1和L2正則,L1,L2正則化項對模型的參數向量進行「懲罰」,從而避免單純最小二乘問題的過擬合問題。正則化項本質上是一種先驗信息,整個最優化問題從貝葉斯觀點來看是一種貝葉斯最大後驗估計,其中正則化項對應後驗估計中的先驗信息,損失函數對應後驗估計中的似然函數,兩者的乘積即對應貝葉斯最大後驗估計的形式,如果將這個貝葉斯最大後驗估計的形式取對數,即進行極大似然估計,你就會發現問題立馬變成了損失函數+正則化項的最優化問題形式。

在邏輯回歸求解中,如果對樣本加上一個先驗的服從高斯分布的假設,那麼就取log後,式子經過化簡後就變成在經驗風險項後面加上一個正則項,此時損失函數變為。

J(w)=-frac{1}{m}[sum_{i=1}^{m}{y_ilogh(x_i)+(1-y_i)log(1-h(x_i))}]+frac{lambda}{2m}sum_{i=1}^{m}{(w_i)^2}

六、常見考點

1.LR中損失函數的意義是什麼?

在LR中,最大似然函數與最小化對數損失函數等價

證明如下:

極大似然估計 ln L(w) = sum_{i=1}^{N}{[y_ilnh(x_i)+(1-y_i)ln(1-h(x_i))]}

一般而言,對數似然函數在單個數據點的定義為

-yln p(y|x)-(1-y)ln[1-p(y|x)]=-[y_iln h(x_i)+(1-y_i)ln(1-h(x_i))]

此時取整個數據集上的平均對數似然損失就可以得到

J(w)=-frac{1}{N} lnL(w)

可見最大似然函數與最小化對數損失函數是等價的。

更多損失函數內容,參考

http://www.csuldw.com/2016/03/26/2016-03-26-loss-function/?

www.csuldw.com圖標

機器學習-損失函數

機器學習-損失函數?

www.csuldw.com圖標

2. LR與線性回歸的聯繫和區別

邏輯回歸和線性回歸首先都可看做廣義的線性回歸,其次經典線性模型的優化目標函數是最小二乘,而邏輯回歸則是似然函數,另外線性回歸在整個實數域範圍內進行預測,敏感度一致,而分類範圍,需要在[0,1]。邏輯回歸就是一種減小預測範圍,將預測值限定為[0,1]間的一種回歸模型,因而對於這類問題來說,邏輯回歸的魯棒性比線性回歸的要好。

3.LR與最大熵模型

邏輯回歸跟最大熵模型沒有本質區別。邏輯回歸是最大熵對應類別為二類時的特殊情況,也就是當邏輯回歸類別擴展到多類別時,就是最大熵模型。

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

4.LR與svm

相同點:

  1. 都是分類演算法
  2. 都是監督學習演算法
  3. 都是判別模型
  4. 都能通過核函數方法針對非線性情況分類
  5. 目標都是找一個分類超平面
  6. 都能減少離群點的影響

不同點:

  1. 損失函數不同,邏輯回歸是cross entropy loss,svm是hinge loss
  2. 邏輯回歸在優化參數時所有樣本點都參與了貢獻,svm則只取離分離超平面最近的支持向量樣本。這也是為什麼邏輯回歸不用核函數,它需要計算的樣本太多。並且由於邏輯回歸受所有樣本的影響,當樣本不均衡時需要平衡一下每一類的樣本個數。
  3. 邏輯回歸對概率建模,svm對分類超平面建模
  4. 邏輯回歸是處理經驗風險最小化,svm是結構風險最小化。這點體現在svm自帶L2正則化項,邏輯回歸併沒有
  5. 邏輯回歸通過非線性變換減弱分離平面較遠的點的影響,svm則只取支持向量從而消去較遠點的影響
  6. 邏輯回歸是統計方法,svm是幾何方法

5 LR與樸素貝葉斯

  • 相同點是,它們都能解決分類問題和都是監督學習演算法。此外,有意思的是,當假設樸素貝葉斯的條件概率P(X|Y=ck)P(X|Y=ck)服從高斯分布時Gaussian Naive Bayes,它計算出來的P(Y=1|X)P(Y=1|X)形式跟邏輯回歸是一樣的。
  • 不同的地方在於,邏輯回歸為判別模型求的是p(y|x)p(y|x),樸素貝葉斯為生成模型求的是p(x,y)p(x,y)。前者需要迭代優化,後者不需要。在數據量少的情況下後者比前者好,數據量足夠的情況下前者比後者好。由於樸素貝葉斯假設了條件概率P(X|Y=ck)P(X|Y=ck)是條件獨立的,也就是每個特徵權重是獨立的,如果數據不符合這個情況,樸素貝葉斯的分類表現就沒有邏輯回歸好。

6 LR與感知機

  • 相同點
    • 都是線性分類模型,原始模型都只能處理二分類問題
    • 模型的形式相似(都是在線性模型外通過聯繫函數映射到另外的空間,只不過感知機是符號函數,LR是sigmoid(或者說Logistic)函數)
    • 訓練方法都是使用梯度下降法
  • 不同點
    • LR輸出為僅是概率的值,而感知機輸出為1/-1

7. 多分類-softmax

如果y不是在[0,1]中取值,而是在K個類別中取值,這時問題就變為一個多分類問題。有兩種方式可以出處理該類問題:一種是我們對每個類別訓練一個二元分類器(One-vs-all),當K個類別不是互斥的時候,比如用戶會購買哪種品類,這種方法是合適的。如果K個類別是互斥的,即y=i的時候意味著y不能取其他的值,比如用戶的年齡段,這種情況下 Softmax 回歸更合適一些。Softmax 回歸是直接對邏輯回歸在多分類的推廣,相應的模型也可以叫做多元邏輯回歸(Multinomial Logistic Regression)。模型通過 softmax函數來對概率建模,具體形式如下:

七、LR優缺點

  • 優點
    • 實現簡單
    • 分類時計算量非常小,速度快,存儲資源低
  • 缺點
    • 容易欠擬合,一般準確度不太高
    • 原始的LR僅能處理二分類問題,且必須線性可分(衍生出的softmax可以用於多分類)

八、LR模型在工業界的應用

常見應用場景

  • 預估問題場景(如推薦、廣告系統中的點擊率預估,轉化率預估等)
  • 分類場景(如用戶畫像中的標籤預測,判斷內容是否具有商業價值,判斷點擊作弊等)

LR適用上述場景的原因

LR模型自身的特點具備了應用廣泛性

  • 模型易用:LR模型建模思路清晰,容易理解與掌握;
  • 概率結果:輸出結果可以用概率解釋(二項分布),天然的可用於結果預估問題上;
  • 強解釋性:特徵(向量)和標籤之間通過線性累加與Sigmoid函數建立關聯,參數的取值直接反應特徵的強弱,具有強解釋性;
  • 簡單易用:有大量的機器學習開源工具包含LR模型,如sklearn、spark-mllib等,使用起來比較方便,能快速的搭建起一個learning task pipeline;

面臨的問題

  • 學習的過擬合問題;
  • 學習的數據稀疏性問題;
  • 模型自身的學習效率(收斂速度,穩定性);
  • 訓練模型時數據、特徵的擴展性問題,即學習演算法可否在分散式環境下工作;
  • 如何結合實際應用場景(比如多資源位/多廣告位的點擊預估問題),給出相應的解決方案.

九、並行化

參考以下第六小節

【機器學習演算法系列之二】淺析Logistic Regression?

chenrudan.github.io圖標

參考

統計學習方法筆記(六)——Logistic Regression?

izhaoyi.top

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

blog.csdn.net圖標【機器學習演算法系列之二】淺析Logistic Regression?

chenrudan.github.io圖標邏輯回歸(LR)?

www.jianshu.com圖標http://olvs8x2q3.bkt.clouddn.com/最大熵.pdf?

olvs8x2q3.bkt.clouddn.com

Logistic Regression 模型簡介?

tech.meituan.com圖標
推薦閱讀:

為什麼我們需要傳統方法?
CS231n課程筆記(前言)
人性本惡,機器本善?
初探機器學習檢測 PHP Webshell
機器學習筆記005 | 更加接近現實情況的預測

TAG:機器學習 |