細品 - 邏輯回歸(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函數的導數

  

損失函數梯度求解過程:

    

故,參數更新公式為:

      

 


免責聲明!

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



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