邏輯回歸(LR)的公式、損失函數(shù)、推導過程整理

回歸問題中,最簡單的模型是線性回歸。線性回歸假設數(shù)據(jù)集的樣本數(shù)據(jù)x_i=(x_{i1},x_{i2},...,x_{id})與輸出值y_i之間近似滿足一個線性關系。本文探討的邏輯回歸(logistics regression,LR)是在線性回歸的基礎上進行一點延伸,解決分類問題的模型。

這篇文章回答了以下問題:邏輯回歸的表達形式是什么?損失函數(shù)是什么?如何進行推導(梯度下降)來得到參數(shù)值?與SVM的區(qū)別在什么地方?

一、LR與線性回歸的聯(lián)系

一般的,線性回歸模型的表達式可以寫作:

y=\omega ^Tx+b\\

但許多問題不一定是線性的,\omega ^Tx+b的值可能和實際的標記值有一定的關系。更一般的,作為對線性回歸的推廣,廣義線性模型的一般表達式為:

y=g^{-1}(\omega ^Tx+b)\\

其中,g(·)是單調可微函數(shù)。邏輯回歸模型就是廣義線性模型的一種。

對于分類任務,原先用于線性回歸的表達式得到的結果是一個連續(xù)的實值,那怎樣轉換為分類任務呢?最簡單的方法是設定一個閾值,超過這個閾值視為正例,小于這個閾值視為負例。這種做法可以看做引入了一個“單位階躍函數(shù)”。這種方法有個明顯的缺點,那就是引入閾值或引入階躍函數(shù)是不可導的,數(shù)學性質很差。第二個方法對前面方法進行了改進,使用sigmoid函數(shù)代替閾值法,眾所周知sigmoid函數(shù)取值范圍為(0,1)且當x=0時變化較大。sigmoid函數(shù)表達式寫作:

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

將sigmoid與線性回歸函數(shù)結合,即為邏輯回歸。簡言之,邏輯回歸=線性回歸+sigmoid。因此,邏輯回歸的表達式為:

y=\frac{1}{1+e^{-(\omega ^Tx+b)} } \\

對上式進行變化可得:

ln \frac{y}{1-y} = \omega ^T x+b \\

如果把y視為x為正例的可能性,那么1-y就是x為負例的可能性。二者的比值的實際意義是x作為正例的“相對可能性”,稱為“對數(shù)幾率”。所以邏輯回歸的本質其實是利用線性回歸去逼近真實標記的對數(shù)幾率。邏輯回歸對樣本數(shù)據(jù)的假設是服從伯努利分布。

二、損失函數(shù)推導

下面我們一步步進行推導求參數(shù)。按前面的思路,把y視為正例,即y = p(y=1|x)1-y=p(y=0|x)。這里引入變量\beta =(\omega ;b), \hat{x} =(x,1),目的是使得\omega ^Tx+b=\beta \hat{x} ,方便討論??梢越獾茫?/p>

p(y=1|x)=\frac{e^{\omega ^Tx+b}}{1+e^{\omega ^Tx+b}}=\frac{e^{\beta \hat{x} }}{1+e^{\beta \hat{x}}} 
 \\p(y=0|x)=\frac{1}{1+e^{\omega ^Tx+b}}=\frac{1}{1+e^{\beta \hat{x}}}

要求出參數(shù)(\omega ,b),采用對數(shù)最大似然方法,令p_1=p(y=1|x),p_0=p(y=0|x),損失函數(shù)寫作:

l(\beta )=log\coprod\nolimits_{i=1}^m (p_1)^{y_1}(1-p_1)^{1-y_1}=\sum_{i=1}^m (y_1logp_1+(1-y_1)log(1-p_1))\\

結合p_i的定義,推導得:
l(\beta )=\sum_{i=1}^m y_i\beta \hat{x} -log(1+e^{\beta \hat{x} }) \\

三、參數(shù)更新公式推導

接下來,要去求(\omega ,b)= arg \max_{(\omega ,b)} l(\beta ) 。問題變成了求以對數(shù)似然函數(shù)最大化為目標的優(yōu)化問題,采用梯度下降(上升)或擬牛頓法解決。關于梯度下降(上升)方法,這里是求最大值,對應的是梯度上升,一般常見的是梯度下降法使損失函數(shù)最小化,所以我們在這里加一個負號,要求的梯度可以寫作:

J(\beta)=-\frac{1}{m}l(\beta) \\  \frac{\nabla}{\nabla \beta }J(\beta)=-\frac{1}{m}  \frac{\nabla}{\nabla \beta } l(\beta )\\

我們把損失函數(shù)的初始寫法帶入,推導:

-\frac{1}{m}  \frac{\nabla}{\nabla \beta } l(\beta )=-\frac{1}{m} \sum_{i=1}^m y_i \frac{1}{p_i} \frac{\nabla}{\nabla \beta }p_i-(1-y_i)\frac{1}{1-p_i} \frac{\nabla}{\nabla \beta } p_i\\

由于p_i=p(y=1|x)=\frac{1}{1+e^{-\beta \hat{x} }} =sig(\beta \hat{x} )是一個sigmoid函數(shù),所以它的導數(shù)sig(x){’}=sig(x)*(1-sig(x))。接著推導:

-\frac{1}{m}  \frac{\nabla}{\nabla \beta } l(\beta )=-\frac{1}{m}\sum_{i=1}^m ( y_i \frac{1}{sig(\beta \hat{x} )}-(1-y_i)\frac{1}{1-sig(\beta \hat{x} )} ) sig(\beta \hat{x})(1-sig(\beta \hat{x}))\frac{\nabla}{\nabla \beta }  (\beta \hat{x} )\\=-\frac{1}{m}\sum_{i=1}^m(y_i(1-sig(\beta \hat{x} ) )-(1-y_i)sig(\beta \hat{x} ))x\\ =\frac{1}{m}\sum_{i=1}^m (sig(\beta \hat{x} )-y_i)x \\=\frac{1}{m}\sum_{i=1}^m ( p_i-y_i)x

整理一下,也就是:

  \frac{\nabla}{\nabla \beta }J(\beta)=\frac{1}{m}\sum_{i=1}^m ( p_i-y_i)x \\

所以參數(shù)更新公式為:

\beta =\beta -\alpha *   \frac{\nabla}{\nabla \beta }J(\beta)\\

這就是梯度下降法求參數(shù)的更新公式。

四、LR與SVM的區(qū)別

(待更新)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容