回歸問題中,最簡單的模型是線性回歸。線性回歸假設數(shù)據(jù)集的樣本數(shù)據(jù)與輸出值
之間近似滿足一個線性關系。本文探討的邏輯回歸(logistics regression,LR)是在線性回歸的基礎上進行一點延伸,解決分類問題的模型。
這篇文章回答了以下問題:邏輯回歸的表達形式是什么?損失函數(shù)是什么?如何進行推導(梯度下降)來得到參數(shù)值?與SVM的區(qū)別在什么地方?
一、LR與線性回歸的聯(lián)系
一般的,線性回歸模型的表達式可以寫作:
但許多問題不一定是線性的,的值可能和實際的標記值有一定的關系。更一般的,作為對線性回歸的推廣,廣義線性模型的一般表達式為:
其中,是單調可微函數(shù)。邏輯回歸模型就是廣義線性模型的一種。
對于分類任務,原先用于線性回歸的表達式得到的結果是一個連續(xù)的實值,那怎樣轉換為分類任務呢?最簡單的方法是設定一個閾值,超過這個閾值視為正例,小于這個閾值視為負例。這種做法可以看做引入了一個“單位階躍函數(shù)”。這種方法有個明顯的缺點,那就是引入閾值或引入階躍函數(shù)是不可導的,數(shù)學性質很差。第二個方法對前面方法進行了改進,使用sigmoid函數(shù)代替閾值法,眾所周知sigmoid函數(shù)取值范圍為(0,1)且當x=0時變化較大。sigmoid函數(shù)表達式寫作:
將sigmoid與線性回歸函數(shù)結合,即為邏輯回歸。簡言之,邏輯回歸=線性回歸+sigmoid。因此,邏輯回歸的表達式為:
對上式進行變化可得:
如果把視為
為正例的可能性,那么
就是
為負例的可能性。二者的比值的實際意義是
作為正例的“相對可能性”,稱為“對數(shù)幾率”。所以邏輯回歸的本質其實是利用線性回歸去逼近真實標記的對數(shù)幾率。邏輯回歸對樣本數(shù)據(jù)的假設是服從伯努利分布。
二、損失函數(shù)推導
下面我們一步步進行推導求參數(shù)。按前面的思路,把y視為正例,即,
。這里引入變量
,目的是使得
,方便討論??梢越獾茫?/p>
要求出參數(shù),采用對數(shù)最大似然方法,令
,損失函數(shù)寫作:
結合的定義,推導得:
三、參數(shù)更新公式推導
接下來,要去求。問題變成了求以對數(shù)似然函數(shù)最大化為目標的優(yōu)化問題,采用梯度下降(上升)或擬牛頓法解決。關于梯度下降(上升)方法,這里是求最大值,對應的是梯度上升,一般常見的是梯度下降法使損失函數(shù)最小化,所以我們在這里加一個負號,要求的梯度可以寫作:
我們把損失函數(shù)的初始寫法帶入,推導:
由于是一個sigmoid函數(shù),所以它的導數(shù)
。接著推導:
整理一下,也就是:
所以參數(shù)更新公式為:
這就是梯度下降法求參數(shù)的更新公式。
四、LR與SVM的區(qū)別
(待更新)