【機器學習】Logistic Regression 學習筆記


 

邏輯回歸模型

雖然邏輯回歸姓 回歸,不過其實它的真實身份是二分類器。介紹完了姓,我們來介紹一下它的名字,邏輯斯蒂。這個名字來源於邏輯斯蒂分布:

邏輯斯蒂分布

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

上式中,μ 表示位置參數γ>0 為形狀參數。

 

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

此處輸入圖片的描述

有沒有發現右邊很熟悉?沒錯,就是sigmoid 曲線,這個曲線是以點( μ, 0.5) 為中心對稱。從圖中可以看出,曲線在中心附近增長速度較快,而形狀參數 γ 值越小,曲線在中心附近增長越快,請自行腦補一下。

 

 sigmoid曲線有幾個特性:

1.x趨向正無窮時F(x)趨近於1

2.x趨向負無窮時F(x)趨近於0

3.x在0處為0.5

它的這些特性,決定它非常適合用於當作基於概率的二項分類函數。類似的還有正態分布的分布函數,和它非常類似,如果選用正態分布,則是貝葉斯邏輯回歸(Bayesian logistic regression)。

  邏輯斯諦回歸的采用的是最大似然估計的思想。對於給定的訓練數據集T = {(x1, y1),(x2, y2),......(xn, yn)},我們找到它的似然函數(即它發生的概率),如果能使似然函數取得最大值,那么就是讓這個樣本發生的概率最大(這個概率是個聯合概率)。

我們看一下邏輯回歸的似然函數。

L(w)取得極大值,則需要yi為1時,P(Y = 1 | x)盡量的大,yi為0時,P(Y = 1 | x)盡量的小。

我們的概率函數P(Y = 1 | x)為

P (Y = 1 | x) 為sigmod函數(等價形式),為了使yi為1時,P(Y = 1 | x)盡量的大,yi為0時,P(Y = 1 | x)盡量的小。我們需要調整w⋅x,使得yi 為1時,w⋅x盡量取比較大的值,位於原點右側較遠的地方,yi為0時,w⋅x盡量位於原點左側較遠的地方,即它發生的概率盡量小。換句話說,我們調整w⋅x使得yi為1盡量發生,為0盡量不要發生。這個時候似然函數取得最大值

借用andrew ng老師的圖

        

 

我們要找到w⋅x = 0 這條曲線,使得樣本x盡量被分成兩部分,一類發生的概率盡量大,另一類概率盡量小。樣本點與w⋅x = 0 的距離,即誤差,服從邏輯斯諦分布。

二項邏輯回歸模型

一個事件的幾率(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).

邏輯回歸的正則化

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

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

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

此處輸入圖片的描述

顯然,最右這張圖overfitting了,原因可能是能影響結果的參數太多了。典型的做法在優化目標中加入正則項,通過懲罰過大的參數來防止過擬合: 

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

 

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

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

 

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

接下來我們思考一下為什么L1范式會產生稀疏性。

假設代價函數 L 與某個參數 x 的關系如圖所示:

則最優的 x 在綠點處,x 非零。

現在施加 L2 regularization,新的代價函數(L + Cx^2)如圖中藍線所示:

施加L2范式的實質是在原來函數曲線上上移一個拋物線的位移,雖然拋物線在0處取得最小值,但是拋物線在0處過於平緩。最優的 x 在黃點處,x 的絕對值減小了,但依然非零。

而如果施加 L1 regularization,則新的代價函數(L + C|x|)如圖中粉線所示:

施加L1范式的實質是在原來函數曲線上上移一個V形折線的位移,折線在0處取得最小值,只要系數C足夠大,就能夠使得代價函數在0處取得最小值。最優的 x 就變成了 0。這里利用的就是絕對值函數(L1)的尖峰。

兩種 regularization 能不能把最優的 x 變成 0,取決於原先的費用函數在 0 點處的導數。
如果本來導數不為 0,那么施加 L2 regularization 后導數依然不為 0,最優的 x 也不會變成 0。
而施加 L1 regularization 時,只要 regularization 項的系數 C 大於原先費用函數在 0 點處的導數的絕對值,x = 0 就會變成一個極小值點。

上面只分析了一個參數 x。事實上 L1 regularization 會使得許多參數的最優值變成 0,這樣模型就稀疏了。


免責聲明!

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



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