LR與SVM的區別與聯繫

幾月前一次午餐時間,聽到同事之間的閑聊,LR和SVM只是損失函數不一樣而已,這讓我百思不得其解,這兩個貨怎麼會聯繫在一起???上周剛剛手推了SVM,趁這個機會也推一推LR,深刻體會以下「為什麼LR和SVM只是損失函數不一樣而已「。在我的潛意識裡,LR是最簡單的模型了,無非是普通的線性回歸模型加上一個損失函數。其實不然,LR的model、evaluate、optimization是什麼我真的都知道嗎?不知道。記得有一次校招去騰訊面試,面試官上來直接讓我推一下LR,當場就懵逼了,於是我的騰訊夢碎了T T。很多同學想必也是這樣,只會調用API跑跑模型,對於模型知其然而不知其所以然,就以為自己是機器學習大神了,Naive。


Logistic Regression(對數幾率回歸)

LR可表示為

y=frac{1}{1+e^{-(omega^{T}x+b)}}

可以通過極大似然法估計 omegab ,則似然函數可以寫成

l(omega,b)=sum_{i=1}^{m}{ln,p(y_{i}|x_{i};omega,b)}

在二分類的情況下,用示性函數來表示概率 p

ln[p(y_{i}|x_{i};omega,b)]=y_{i}ln[p(y_{i}=1|x_{i};omega,b)]+(1-y_{i})ln[1-p(y_{i}=0|x_{i};omega,b)]

從原始概率來看

p(y_{i}|x_{i};omega,b)=p(y_{i}=1|x_{i};omega,b)^{y_{i}}+(1-p(y_{i}=0|x_{i};omega,b))^{(1-y_{i})}

因此

begin{align} l(omega,b)&=sum_{i=1}^{m}{(y_{i}ln[p(y_{i}=1|x_{i};omega,b)]+(1-y_{i})ln[1-p(y_{i}=0|x_{i};omega,b)])} &=sum_{i=1}^{m}{(y_{i}ln(frac{p(y_{i}=1|x_{i};omega,b)}{1-p(y_{i}=1|x_{i};omega,b)})}+ln(1-frac{e^{omega^{T}x+b}}{1+e^{omega^{T}x+b}})) &=sum_{i=1}^{m}{(y_{i}(omega^{T}x+b)-ln(1+e^{omega^{T}x+b}))} end{align}

因此最大化 l(omega,b) 等價於最小化 -l(omega,b)=sum_{i=1}^{m}{(-y_{i}(omega^{T}x+b)+ln(1+e^{omega^{T}x+b}))} ,用牛頓迭代、梯度下降都可以求最優解。


一般線性模型

為什麼對數幾率函數長這樣 y=frac{1}{1+e^{-z}} 而不長成別的樣子,其實是有一套理論支撐的,這個理論便是一般線性模型。如果一個概率分布可以表示成

p(y;n)=b(y)exp(eta^{T}T(y)-alpha(eta))

那麼這個概率分布可以稱作是指數分布。伯努利分布,高斯分布,泊松分布,貝塔分布,狄特里特分布都屬於指數分布。在對數回歸時採用的是伯努利分布,伯努利分布的概率可以表示成

begin{align} p(y;phi)&=phi^{y}(1-phi)^{1-y} &=exp(ylogphi+(1-y)log(1-phi)) &=exp((log(frac{phi}{1-phi})y)+log(1-phi)) end{align}

eta=log(frac{phi}{1-phi}) 可得 phi=frac{1}{1+e^{eta}} ,這就是LR一般形式的由來。


LR與SVM的區別與聯繫

現在回過頭來理解「LR和SVM本質不同在於loss function的不同「這句話,也就不難了,LR的損失函數是Cross entropy loss,svm的損失函數是Hinge loss,兩個模型都屬於線性分類器,而且性能相當。區別在於

  • LR的解是受數據本身分布影響的,而SVM的解不受數據分布的影響;
  • LR的輸出具有自然的概率意義,而SVM的輸出不具有概率意義;
  • SVM依賴數據表達的距離測度,所以在建模前需要對數據標準化,LR則不需要;
  • SVM受懲罰係數C的影響較大,實驗中需要做Validation,LR則不需要;
  • LR適合於大樣本學習,SVM適合於小樣本學習。

換用其他的Loss函數的話,SVM就不再是SVM了。正是因為Hinge Loss的零區域對應的正是非支持向量的普通樣本,從而所有的普通樣本都不參與最終超平面的決定,這才是支持向量機最大的優勢所在,對訓練樣本數目的依賴大大減少,而且提高了訓練效率。


參考資料:

[小白式機器學習(一)] logistic regression(LR)對數幾率回歸 / 邏輯回歸 公式推導blog.csdn.net圖標周志華-機器學習pan.baidu.com

斯坦福大學公開課 :機器學習課程open.163.com圖標Linear SVM 和 LR 有什麼異同?www.zhihu.com圖標


推薦閱讀:

徐小賤民:FingercrossAI鏈接匯總zhuanlan.zhihu.com圖標
推薦閱讀:

我所理解的 SVM(支持向量機)- 1
BAT機器學習面試1000題系列(236-240)
【Matlab】安裝libsvm的問題與解決辦法
多標籤(multi-label)數據的學習問題,常用的分類器或者分類策略有哪些?
支持向量機中的函數距離和幾何距離怎麼理解?

TAG:机器学习 | Logistic回归 | SVM |