Logistic Regression理論總結

簡述:

1. LR 本質上是對正例負例的對數概率線性迴歸,由於對數概率叫作logit,作的操做是線性迴歸,因此該模型叫作Logistic Regression。
2. LR 的輸出能夠看作是一種可能性,輸出越大則爲正例的可能性越大,可是這個機率不是正例的機率,是正例負例的對數概率。
3. LR的label並不必定要是0和1,也能夠是-1和1,或者其餘,只是一個標識,標識負例和正例。
4. Linear Regression和Logistic Regression的區別: 這主要是因爲線性迴歸在整個實數域內敏感度一致,而分類範圍,須要在[0,1]以內。而邏輯迴歸就是一種減少預測範圍,將預測值限定爲[0,1]間的一種迴歸模型,其迴歸方程與迴歸曲線以下圖所示。邏輯曲線在z=0時,十分敏感,在z>>0或z<<0處,都不敏感,將預測值限定爲(0,1)。
5. 模型很是簡單。應用到線上時,prediction的計算很是容易作。在O(1)的時間複雜度以內就可以給出模型的預測值,這對於線上數據暴風雨般襲來的時候很是有用。
6. 模型可解釋性強。對於LR模型,每一個特徵xi的參數wi就是該特徵的權重,wi越大,則特徵權重越大;越小,則特徵權重越小。所以LR的模型每每很是直觀,並且容易debug,並且也容易手動修改。
7. 模型的輸出平滑。因爲Logistic function的做用,LR的輸出值是(0,1)之間的連續值,更重要的是,這個值能從某種角度上表示樣本x是正例的可能性, 輸出值越接近1,則樣本是正例的可能性就越大,輸出值越接近0,樣本是負例的可能性就越大。
 

詳細理解Logistic Regression:

1. 從最大似然估計 (MLE)來理解:(以正負label爲1,0來舉例)

直覺上,一個線性模型的輸出值 y 越大,這個事件 P(Y=1|x) 發生的機率就越大。 另外一方面,咱們能夠用事件的概率(odds)來表示事件發生與不發生的比值,假設發生的機率是 p ,那麼發生的概率(odds)是 p/(1-p) , odds 的值域是 0 到正無窮,概率越大,發生的可能性越大。將咱們的直覺與概率聯繫起來的就是下面這個(log odds)或者是 logit 函數:

 進而能夠求出機率 p 關於 w 點乘 x 的表示:
 這就是傳說中的 sigmoid function 了,以 w 點乘 x 爲自變量,函數圖像以下:
 
Logsitic regression 輸出的是分到每一類的機率,參數估計的方法天然就是最大似然估計 (MLE) 咯。對於訓練樣原本說,假設每一個樣本是獨立的,輸出(標籤)爲 y = {0, 1},樣本的似然函數就是將全部訓練樣本 label 對應的輸出節點上的機率相乘, 令 p = P(Y=1|x) ,若是 y = 1, 機率就是 p, 若是 y = 0, 機率就是 1 - p , 將這兩種狀況合二爲一,獲得似然函數:

 

下面就是求極值,邏輯迴歸學習中一般採用的方法是梯度降低法 和 牛頓法
 

2. 從最小化損失函數來理解:(以正負label爲1,-1來舉例)

LR 的基本假設是數據類別間是由一個線性的 decision boundary 隔開的,換句話說

 

再結合git

 

能夠解得:算法

 

在 training data 上進行 maximum log-likelihood 參數估計是函數

 

這個 binary 的狀況所具備的特殊形式還能夠從另外一個角度來解釋:先拋開 LR,直接考慮 Empirical Risk Minimization (ERM) 的訓練規則,也就是最小化分類器在訓練數據上的 error:學習

 

可是這是個離散的目標函數優化很是困難,因此咱們尋求函數的一個 upper bound,而後去最小化優化

 

當取(該函數一般稱做 log loss)時 (若是要嚴格地做爲一個 upper bound,咱們須要使用以 2 爲底的對數。不過因爲只是對 loss function 作一個常數縮放,對優化結果並無什麼影響,因此方便起見咱們實際使用天然對數。),即獲得同上述同樣的式子,也就是 LR 的目標函數,而且咱們接下來會看到,這個 ERM 的 upper bound 是易於優化的。順便提一句,經過選擇其餘的 upper bound,咱們會導出其餘一些常見的算法,例如 Hinge Loss 對應 SVM、exp-loss 對應 Boosting。注意到 log loss 是 convex 的,有時候咱們還會加上一個 regularizer:spa

 

此時目標函數是 strongly convex 的。接下來咱們考慮用 gradient descent 來對目標函數進行優化。首先其 Gradient 是debug

 

 
PS:下圖中是各個損失函數,有最原始的0-1損失函數,以及用來在實際狀況中做爲其upper bound的替代損失函數,如 log loss,hinge loss,exp loss。
相關文章
相關標籤/搜索