邏輯迴歸 Logistic Regression

邏輯迴歸也被稱爲對數機率迴歸,是一種分類算法,用條件概率分佈的形式表示 P ( Y | X ) ,這裏隨機變量 X 取值爲 n 維實數向量。

例如 x = ( x 1 , x 2 , , x n ) Y 取值爲 0 1

邏輯迴歸模型
邏輯迴歸的模型定義如下:

P ( Y = 1 | x ) = e x p ( w · x + b ) 1 + e x p ( w · x + b )
P ( y = 0 | x ) = 1 1 + e x p ( w · x + b )
假設有一個二分類問題,輸出爲 y = { 0 , 1 } ,而線性迴歸模型產生的預測值爲 z = w x + b 是實數值,我們希望有一個理想的階躍函數來幫我們實現z值到0/1值的轉化.

我們可以很自然的想到如下函數:

ϕ ( z ) = { 0 if z<0 0.5 if z=0 1 if z>0
但是由於該函數在定義域內不連續,而我們需要一個單調可微的函數來供我們使用,於是便找到了Sigmoid函數:
ϕ ( z ) = 1 1 + e z

這裏寫圖片描述

由於Sigmoid函數的取值範圍爲 [ 0 , 1 ] ,我們就可以將其視爲類1的後驗概率估計 P ( y = 1 | x ) 。說白了,就是如果有了一個測試點 x ,那麼就可以用Sigmoid 函數算出來的結果來當做該點x屬於類別1的概率大小。

於是,非常自然地,我們把Sigmoid函數計算得到的值大於等於0.5的歸爲類別1,小於0.5的歸爲類別0:

y ^ = { 1 if  ϕ ( z )  0 0 otherwise

邏輯迴歸的損失函數
邏輯迴歸模型的損失函數(誤差平方和)定義如下:

J ( w ) = i 1 2 ( ϕ ( z ( i ) ) y ( i ) ) 2
其中:
z ( i ) = w T x ( i ) + b i ,表示第 i 個樣本點;
y ( i ) 表示第 i 個樣本的真實值;
ϕ ( z ( i ) ) 表示第 i 個樣本的預測值。

這時,如果我們將 ϕ ( z ) = 1 1 + e z 帶入的話,會發現這是一個非凸函數,這就意味着代價函數(代價即預測值和實際值之間的差距)有着許多的局部最小值,這非常不利於我們求解。

左:非凸函數;右:凸函數
這裏寫圖片描述

因此我們需要換一個思路去解決問題,我們注意到,在邏輯迴歸的分類任務中,分類結果非0即1,所以我們有:

P ( y = 1 | x ; w ) = ϕ ( z )
P ( y = 0 | x ; w ) = 1 ϕ ( z )
其中:
ϕ ( z ) = ϕ ( w T x + b )
P ( y = 1 | x ; w ) 表示給定 w ,那麼 x y = 1 的概率大小。

於是上式可以整合爲:

P ( y | x ; w ) = ϕ ( z ) y ( 1 ϕ ( z ) ) 1 y

邏輯迴歸模型參數估計
求解 P ( y | x ; w ) = ϕ ( z ) y ( 1 ϕ ( z ) ) 1 y 中的參數 w 可以用極大似然估計(最大可能性估計)的方法:
L ( w ) = i = 1 n P ( y ( i ) | x ( i ) ; w ) = i = 1 n ( ϕ ( z ( i ) ) ) y ( i ) ( 1 ϕ ( z ( i ) ) ) 1 y ( i )
等式兩邊做對數變換可得
l ( w ) = ln L ( w ) = i = 1 n y ( i ) ln ( ϕ ( z ( i ) ) ) + ( 1 y ( i ) ) ln ( 1 ϕ ( z ( i ) ) )
我們現在就得到了代價函數 l ( w ) ,爲了方便使用梯度下降法求解代價函數,我們取代價函數的相反數,然後將代價函數定義爲原代價函數的相反數:
J ( w ) = l ( w ) = i = 1 n [ y ( i ) ln ( ϕ ( z ( i ) ) ) + ( 1 y ( i ) ) ln ( 1 ϕ ( z ( i ) ) ) ]

邏輯迴歸的模型求解
由於Sigmoid函數的自身性質,其對參數求偏導後:

ϕ ( z ) = 1 1 + e z
ϕ ( z ) = d ϕ ( z ) d z = ϕ ( z ) ( 1 ϕ ( z ) )

偏導數推導過程:
這裏寫圖片描述

接下來使用梯度下降法求解迴歸模型:

w := w + w
其中
w := w + w
相關文章
相關標籤/搜索