【機器學習】邏輯斯蒂迴歸原理推導與求解

1.概念

邏輯斯蒂迴歸又稱爲“對數機率迴歸”,雖然名字有迴歸,但是實際上卻是一種經典的分類方法,其主要思想是:根據現有數據對分類邊界線(Decision Boundary)建立迴歸公式,以此進行分類。

2.特點

1. 優點:計算代價不高,具有可解釋性,易於實現。不僅可以預測出類別,而且可以得到近似概率預測,對許多需要利用概率輔助決策的任務很有用。

2. 缺點:容易欠擬合,分類精度可能不高。

3. 適用數據類型:數值型和標稱型數據。

3.邏輯斯蒂分佈

 邏輯斯蒂分佈的分佈函數和密度函數如下:

                                             F ( x ) = P ( X \leq x ) = \frac { 1 } { 1 + e ^ { - ( x - \mu ) / \gamma } }

                                             f ( x ) = F ^ { \prime } ( x ) = \frac { e ^ { - ( x - \mu ) / \gamma } } { \gamma \left( 1 + e ^ { - ( x - \mu ) / \gamma ) ^ { 2 } } \right. }

其中,\mu是位置參數,\ gamma> 0爲形狀參數。

邏輯斯蒂分佈在不同的\畝\伽瑪的情況下,其概率密度函數p\left( {x;\mu ,\lambda } \right)的圖形:

480像素,Logisticpdfunction.svg.png,45.2kB

邏輯斯蒂分佈在不同的\畝\伽瑪的情況下,其概率分佈函數P \ left({x;  \ mu,\ lambda} \ right)的圖形: 

480像素,Logistic_cdf.svg.png,49.9kB

邏輯斯蒂分佈函數的圖形是一條S形曲線(sigmoid curve),該曲線以點\ left({\ mu,\ frac {1} {2}} \ right)爲中心對稱,即滿足:

                                             F \ left({ -  x + \ mu} \ right) -  \ frac {1} {2} =  -  F \ left({x + \ mu} \ right)+ \ frac {1} {2}

曲線在中心附近增長速度較快,在兩端增長速度較慢。形狀參數\伽瑪的值越小,曲線在中心附近增長得越快。

\mu=0s = 1時,邏輯斯蒂概率分佈函數就是我們邏輯斯蒂迴歸函數y = \ frac {1} {{1 + {e ^ { -  z}}}}

4.邏輯斯蒂迴歸模型

對於分類問題,我們想要一個函數能夠通過所有的輸入預測出類別。

考慮較爲簡單的二分類情況,給定一個數據集D = \ left \ {{{left({x {} _ i,{y_i}} \ right)} \ right \} _ {i = 1} ^ m,其中R ^ d中的x {} _ i \, y {} _ i \ in \ left \ {{0,1} \ right \}

從線性迴歸模型產生的預測值z = {w ^ T} x + b,爲了分類,需要將ž轉換爲0/1值。此時可以採用單位階躍函數進行ž到0/1的映射:

                                             y = \left\{ \begin{array} { c c } { 0 , } & { z < 0 } \\ { 0.5 } & { z = 0 } \\ { 1 } & { z > 0 } \end{array} \right.

當預測值z>0時,將其判爲正例;當預測值z<0時,將其判爲負例。

但該函數不連續,爲了便於後續計算,我們希望得到一個連續可微的近似替代函數,因此我們選取了對數機率函數(logistic regression)作爲替代函數,對數機率函數是一種sigmoid函數:

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

這樣,就可以將任意輸入映射到\ left [{0,1} \ right]區間內,實現由值到概率的轉換。爲便於討論,使b = w _ { 0 } \cdot x _ { 0 },其中x _ { 0 } = 1,此時w就成爲了w = \left( w _ { 0 } , w _ { 1 } , \dots , w _ { d } \right)x就成爲了x _ { i } = \left( 1 , x _ { i 1 } , \dots , x _ { i d } \right)z = w ^ { T } x + b就成爲了z = {w^T}x,代入(1)中得到:

                                             y = \ frac {1} {{1 + {e ^ { -  {w ^ T} x}}}}          (2)

(2)可以變換爲:

                                             \ log \ frac {y} {{1  -  y}} = {w ^ T} x          (3)

若將ÿ視爲樣本X爲正例的可能性,則1-Y視爲樣本X爲反例的可能性。兩者的比值\ frac {y} {{1  -  y}}稱爲“機率(odds)”,一個事件的機率就是指該事件發生的概率與該事件不發生的概率的比值,反映了X作爲正例的相對可能性。對機率取對數得到對數機率\ log \ frac {y} {{1  -  y}}(log odds,亦稱logit)。即(2)實際上是用線性迴歸模型的預測結果去逼近真實標記的對數機率。

此時,若將(2)的中ÿ視爲類後驗概率p \ left({y = 1 \ left |  x \ right。} \ right)(就是說,對於樣本點的x,可以用S形函數的結果來當做該點屬於類別1的概率),則(3)可重寫爲:

                                             \ log \ frac {{p \ left({y = 1 \ left |  {X;  w} \ right。} \ right)}} {{p \ left({y = 0 \ left |  {X;  w} \對。} \ right)}} = {w ^ T} x          (4)

顯然可以得到我們希望學得的邏輯斯蒂模型:

                                             p \ left({y = 1 \ left |  {X;  w} \ right。} \ right)= \ frac {{\ exp \ left({{w ^ T} x} \ right)}} {{1 + \ exp \ left({{w ^ T} x} \對)}}          (5)

                                             p \ left({y = 0 \ left |  {X;  w} \ right。} \ right)= \ frac {1} {{1 + \ exp \ left({{w ^ T} x} \ right)}}          (6)

p \ left({y = 1 \ left |  {X;  w} \ right。} \ right)= \ pi \ left(x \ right),則p \ left({y = 0 \ left |  {X;  w} \ right。} \ right)= 1- \ pi \ left(x \ right)。將(5),(6)整合稱爲一般形式,得到在已知參數w和數據x_i的情況下,y_i爲預測值的條件概率:

         p \ left({{y_i} \ left |  {{X_I};  w} \ right。} \ right)= {\ left({\ frac {{\ exp \ left({{w ^ T} {x_i}} \ right)}} {{1 + \ exp \ left({{ w ^ T} {x_i}} \ right)}}} \ right)^ {{y_i}}} {\ left({\ frac {1} {{1 + \ exp \ left({{w ^ T} { x_i}} \ right)}}} \ right)^ {1  -  {y_i}}} = {\ left({\ pi \ left({{x_i}} \ right)} \ right)^ {{y_i}} } {\ left({1  -  \ pi \ left({{x_i}} \ right)} \ right)^ {1  -  {y_i}}}          (7)

將(7)連乘,得到已知參數w和數據x的情況下,y爲預測值的條件概率。這個條件概率在數值上等於likelihood(W | X,Y),也就是在已知現有數據的條件下,W是真正參數的概率。似然函數爲:

                           L \ left(w \ right)= \ prod \ limits_ {i = 1} ^ m {p \ left({{y_i} \ left |  {{X_I};  w} \ right。} \ right)=} \ prod \ limits_ {i = 1} ^ m {{{left({\ pi \ left({{x_i}} \ right)} \ right)} ^ {{y_i } {} left({1  -  \ pi \ left({{x_i}} \ right)} \ right)^ {1  -  {y_i}}}          (8)

由於乘法難解,通過取對數可以將乘法轉換爲加法,簡化計算。對數似然函數爲:

                           \ begin {array} {l} l \ left(w \ right)= \ log \ prod \ limits_ {i = 1} ^ m {{{\ left({\ pi \ left({{x_i}} \ right) }}}}} ^ {{y_i}}}} {\ left({1  -  \ pi \ left({{x_i}} \ right)} \ right)^ {1  -  {y_i}}} \\ = \ sum \ limits_ {i = 1} ^ m {\ left({{y_i} \ log \ pi \ left({{x_i}} \ right)+ \ left({1  -  {y_i}} \ right)\ log \ left({1  -  \ pi \ left({{x_i}} \ right)} \ right)} \ right)} \\ = \ sum \ limits_ {i = 1} ^ m {\ left({{y_i} \ log \ pi \ left({{x_i}} \ right)+ \ log \ left({1  -  \ pi \ left({{x_i}} \ right)} \ right) -  {y_i} \ log \ left({ 1  -  \ pi \ left({{x_i}} \ right)} \ right)} \ right)} \\ = \ sum \ limits_ {i = 1} ^ m {\ left({{y_i} \ log \ frac {{\ pi \ left({{x_i}} \ right)}} {{1  -  \ pi \ left({{x_i}} \ right)}} + \ log \ left({1  -  \ pi \ left( {{x_i}} \ right)} \ right)} \ right)} \\ = \ sum \ limits_ {i = 1} ^ m {\left({{y_i} {w ^ T} {x_i}  -  \ log \ left({1 + \ exp \ left({{w ^ T} {x_i}} \ right)} \ right)} \ right)} \ {端陣列}          (9)

似然函數表示樣本成爲真實的概率,似然函數越大越好,此時我們可以用梯度上升法求最大值,也可以引入一個負號轉換爲梯度下降法來求解。

代價函數爲:

                           J \ left(w \ right)=  -  \ sum \ limits_ {i = 1} ^ m {\ left({{y_i} {w ^ {T}} {x_i}  -  \ log \ left({1 + \ exp \ left({{w ^ T} {x_i}} \ right)} \ right)} \ right)}          (10)

5. 梯度下降法求參數

邏輯斯蒂迴歸學習中通常採用的方法是梯度下降法及擬牛頓法,下面介紹邏輯斯蒂迴歸中梯度下降法求參數。

求偏導:

                                    \ begin {array} {l} \ frac {{\ partial J \ left(w \ right)}} {{\ partial w_j}} =  -  \ sum \ limits_ {i = 1} ^ m {\ left({{ y_i} {x_ {ij}}  -  \ frac {{\ exp \ left({{w ^ T} {x_ {i}}} \ right)}} {{1 + \ exp \ left({{w ^ T } {x_ {i}}} \ right)}}} {x_ {ij}} \ right)} \\ {\ rm {=}}  -  \ sum \ limits_ {i = 1} ^ m {\ left({ {y_i}  -  \ pi \ left({{x_ {i}}} \ right)} \ right)} {x_ {ij}} \ end {array}          (11)

因此,在使用梯度下降法求解時,每次迭代地更新公式爲:

                                    {w_j}:{\ rm {=}} {{\ rm {w}} _ j}  -  \ alpha \ sum \ limits_ {i = 1} ^ m {\ left({{y_i} + \ pi \ left({ {x_ {i}}} \ right)} \ right)} {x_ {ij}}         (12)

參考文獻:

1.《機器學習》第三章對數機率迴歸——周志華

2.  邏輯迴歸(logistic regression)的本質 - 極大似然估計

3.  邏輯迴歸推導

4.  LR迴歸(Logistic迴歸)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章