邏輯迴歸(LR)*

1. LR的直觀表述

1.1 直觀表述

  今天我們來深入瞭解一個工業界應用最多,雖然思想簡單但也遮擋不住它NB光芒的綻放的一個分類預測模型,它就是LR模型。LR模型可以被認爲就是一個被Sigmoid函數(logistic方程)所歸一化後的線性迴歸模型!爲啥這麼說呢?我們來看一下它的假設函數的樣子:

    

首先來解釋一下的表示的是啥?它表示的就是將因變量預測成1(陽性)的概率,具體來說它所要表達的是在給定x條件下事件y發生的條件概率,而是該條件概率的參數。看到這個公式可能一臉懵逼,那我們將它分解一下:

    

很容易看出將(1)代入到(2)中是不是就得到了LR模型的假設函數啦。(1)式就是我們介紹的線性迴歸的假設函數,那(2)式就是我們的Sigmoid函數啦。什麼?爲什麼會用Sigmoid函數?因爲它引入了非線性映射,將線性迴歸值域映射到0-1之間,有助於直觀的做出預測類型的判斷:大於等於0.5表示陽性,小於0.5表示陰性。

其實,從本質來說:在分類情況下,經過學習後的LR分類器其實就是一組權值,當有測試樣本輸入時,這組權值與測試數據按照加權得到

  

這裏的就是每個測試樣本的n個特徵值。之後在按照Sigmoid函數的形式求出,從而去判斷每個測試樣本所屬的類別。

由此看見,LR模型學習最關鍵的問題就是研究如何求解這組權值!

1.2 決策邊界

  經過上面的講解,我們應該對LR要做什麼,有個一個大體上的把握。接下來,我們在深入一下,介紹一下決策邊界(Decision Boundary)的概念,這將會有助於我們能更好的理解LR的假設函數究竟是在計算什麼。

在上節我們瞭解到邏輯迴歸的假設函數可以表示爲

,其中

在LR模型中我們知道:當假設函數,即,此時我們預測成正類;反之預測爲負類。由圖來看,我們可以得到更加清晰的認識。下圖爲Sigmoid函數,也是LR的外層函數。我們看到當時,此時(即內層函數),然而此時也正是將y預測爲1的時候;同理,我們可以得出內層函數時,我們將其預測成0(即負類)。

   

於是我們得到了這樣的關係式:

      

這一步應該明白吧,不明白再回去看一看,它對於我們後面的理解非常重要!下面我們再舉一個例子,假設我們有許多樣本,並在圖中表示出來了,並且假設我們已經通過某種方法求出了LR模型的參數(如下圖)。

    

根據上面得到的關係式,我們可以得到:

    

我們再圖像上畫出得到:

          

這時,直線上方所有樣本都是正樣本y=1,直線下方所有樣本都是負樣本y=0。因此我們可以把這條直線成爲決策邊界。

同理,對於非線性可分的情況,我們只需要引入多項式特徵就可以很好的去做分類預測,如下圖:

    

值得注意的一點,決策邊界並不是訓練集的屬性,而是假設本身和參數的屬性。因爲訓練集不可以定義決策邊界,它只負責擬合參數;而只有參數確定了,決策邊界才得以確定。

  LR迴歸給我的直觀感受就是 它利用Sigmoid的一些性質,使得線性迴歸(多項式迴歸)從擬合數據神奇的轉變成了擬合數據的邊界,使其更加有助於分類!就一個感觸:NB!

2. 權值求解

2.1 代價函數(似然函數)

  前面我們介紹線性迴歸模型時,給出了線性迴歸的代價函數的形式(誤差平方和函數),具體形式如下:

        

這裏我們想到邏輯迴歸也可以視爲一個廣義的線性模型,那麼線性模型中應用最廣泛的代價函數-誤差平方和函數,可不可以應用到邏輯迴歸呢?首先告訴你答案:是不可以的! 那麼爲什麼呢? 這是因爲LR的假設函數的外層函數是Sigmoid函數,Sigmoid函數是一個複雜的非線性函數,這就使得我們將邏輯迴歸的假設函數帶入 (1)式時,我們得到的是一個非凸函數,如下圖:

        

這樣的函數擁有多個局部極小值,這就會使得我們在使用梯度下降法求解函數最小值時,所得到的結果並非總是全局最小,而有更大的可能得到的是局部最小值。這樣解釋應該理解了吧。

  雖然前面的解釋否定了我們猜想,但是也給我們指明瞭思路,那就是我們現在要做的就是爲LR找到一個凸的代價函數! 在邏輯迴歸中,我們最常用的損失函數爲對數損失函數,對數損失函數可以爲LR提供一個凸的代價函數,有利於使用梯度下降對參數求解。爲什麼對數函數可以做到這點呢? 我們先看一下對數函數的圖像:

    

藍色的曲線表示的是對數函數的圖像,紅色的曲線表示的是負對數的圖像,該圖像在0-1區間上有一個很好的性質,如圖粉紅色曲線部分。在0-1區間上當z=1時,函數值爲0,而z=0時,函數值爲無窮大。這就可以和代價函數聯繫起來,在預測分類中當算法預測正確其代價函數應該爲0;當預測錯誤,我們就應該用一個很大代價(無窮大)來懲罰我們的學習算法,使其不要輕易預測錯誤。這個函數很符合我們選擇代價函數的要求,因此可以試着將其應用於LR中。對數損失在LR中表現形式如下:

  

對於懲罰函數Cost的這兩種情況:

    

給我們的直觀感受就是:當實際標籤和預測結果相同時,即y和同時爲1或0,此時代價最小爲0; 當實際標籤和預測標籤恰好相反時,也就是恰好給出了錯誤的答案,此時懲罰最大爲正無窮。現在應該可以感受到對數損失之於LR的好了。

  爲了可以更加方便的進行後面的參數估計求解,我們可以把Cost表示在一行:

  

這與我們之前給出的兩行表示的形式是等價的。因此,我們的代價函數最終形式爲:

  

該函數是一個凸函數,這也達到了我們的要求。這也是LR代價函數最終形式。

 2.2 似然函數的求解-梯度下降

   前面我們得到了LR代價函數的表示形式,接下來要做的就是使用梯度下降估計參數值或參數組合。

  梯度下降算法我們之前介紹過了:

   

  通過求導,我們得到:

    

咋一看,LR的梯度下降算法和線性迴歸算法的形式一樣呀! 沒錯,表現形式就是一樣,但是由於假設函數的不同,註定了它們就是不同的算法。代價函數的求導過程是怎麼樣的呢?--- 請翻到第4部分 【代價函數的求導過程】!

3. LR模型優缺點分析

優點:

  1.  實現簡單,廣泛應用於工業界。

  2.  輸出結果並不是一個離散值或確切的類型,而是一個與每個輸入樣本相關的概率列表,這樣我們可以任意設定閾值,從而得到我們想要的分類輸入。

  3.  LR對數據中的小噪音的魯棒性很好,並且輕微的多重共線性不會對其結果產生特別的影響。嚴重的多重共線性可以使用LR+l2正則來解決。

缺點:

  1.  當樣本量很大時,LR的性能並不是很好。

  2.  不能很好的處理大量的多類特徵和變量。

  3.  容易欠擬合

  4.  傳統的LR只能處理二分類,在此基礎上衍生的Softmax才能處理多分類。

  5.  對於非線性特徵,需要進行轉換。

 

總結: 知道了LR有什麼優缺點了,那麼我們什麼情況下,最應該選擇LR模型作爲我們的分類預測算法呢?

應用條件有:

  1.  當你需要一個概率的框架時

  2.  當你希望以後可以將更多的訓練數據快速整合到模型中去時

滿足這兩點應用條件,那就選擇LR吧。

4. 代價函數的求導過程

Sigmoid函數的求導過程:

 

  

故,sigmoid函數的導數

   

損失函數梯度求解過程:

    

故,參數更新公式爲:

      

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