机器学习中的数学基础(4.1):支持向量机Support Vector Machine(SVM)
SVM可以說是一個很經(jīng)典的二分類問題,屬于有監(jiān)督學習算法的一種。看過那么多的博客知乎解釋SVM我一定要自己總結(jié)一篇,加深一下自己的理解。
帶著問題去讀文章會發(fā)現(xiàn),柳暗花明又一村,瞬間李敏浩出現(xiàn)在眼前的感覺
(1)分界線(決策面)------線性分類
(2)支持向量-------如何找?
(3)分類間隔-------為什么需要最大化間隔,以及如何最大化分類間隔(軟間隔、硬間隔等)
(4)拉格朗日乘子法和KKT條件----什么是拉格朗日乘子法和KKT條件,用處是干嘛?(PS:解決凸問題,凸優(yōu)化的)
(5)對偶問題的求解
(6)序列最小最優(yōu)化(sequential minimal optimization)SMO算法
SMO(Sequential Minimal Optimization)是針對求解SVM問題的Lagrange對偶問題,一個二次規(guī)劃式,開發(fā)的高效算法。傳統(tǒng)的二次規(guī)劃算法的計算開銷正比于訓練集的規(guī)模,而SMO基于問題本身的特性(KKT條件約束)對這個特殊的二次規(guī)劃問題的求解過程進行優(yōu)化。對偶問題中我們最后求解的變量只有Lagrange乘子向量,這個算法的基本思想就是每次都只選取一對,固定向量其他維度的元素的值,然后進行優(yōu)化,直至收斂。
(7)核函數(shù)------什么是核函數(shù),為什么要用到核函數(shù)?
(8)SVM與LR(Logistic Regression)的區(qū)別
--------------機器學習中提到的向量沒做特殊說明都是指列向量----------
SVM要解決的問題可以用一個經(jīng)典的二分類問題加以描述,如下圖所示紅色和藍色的二維數(shù)據(jù)點顯然是可以被一條直線分開的,在模式識別領域稱為線性可分問題。然而將兩類數(shù)據(jù)點分開的直線顯然不止一條。圖1(b)和(c)分別給出了A、B兩種不同的分類方案,其中黑色實線為分界線,術語稱為“決策面”。(---解答了(1)問題---)每個決策面對應了一個線性分類器。雖然在目前的數(shù)據(jù)上看,這兩個分類器的分類結(jié)果是一樣的,但如果考慮潛在的其他數(shù)據(jù),則兩者的分類性能是有差別的。
SVM算法認為圖1中的分類器A在性能上優(yōu)于分類器B,其依據(jù)是A的分類間隔比B要大。這里涉及到第一個SVM獨有的概念“分類間隔”。在保證決策面方向不變且不會出現(xiàn)錯分樣本的情況下移動決策面,會在原來的決策面兩側(cè)找到兩個極限位置(越過該位置就會產(chǎn)生錯分現(xiàn)象),如虛線所示。虛線的位置由決策面的方向和距離原決策面最近的幾個樣本的位置決定。而這兩條平行虛線正中間的分界線就是在保持當前決策面方向不變的前提下的最優(yōu)決策面。兩條虛線之間的垂直距離就是這個最優(yōu)決策面對應的分類間隔。顯然每一個可能把數(shù)據(jù)集正確分開的方向都有一個最優(yōu)決策面(有些方向無論如何移動決策面的位置也不可能將兩類樣本完全分開),而不同方向的最優(yōu)決策面的分類間隔通常是不同的,那個具有“最大間隔”的決策面就是SVM要尋找的最優(yōu)解。而這個真正的最優(yōu)解對應的兩側(cè)虛線所穿過的樣本點,就是SVM中的支持樣本點,稱為“支持向量”。對于圖1中的數(shù)據(jù),A決策面就是SVM尋找的最優(yōu)解,而相應的三個位于虛線上的樣本點在坐標系中對應的向量就叫做支持向量(---解答了(2)問題)。
從表面上看,我們優(yōu)化的對象似乎是這個決策面的方向和位置。但實際上最優(yōu)決策面的方向和位置完全取決于選擇哪些樣本作為支持向量。而在經(jīng)過漫長的公式推導后,你最終會發(fā)現(xiàn),其實與線性決策面的方向和位置直接相關的參數(shù)都會被約減掉,最終結(jié)果只取決于樣本點的選擇結(jié)果。
到這里,我們明確了SVM算法要解決的是一個最優(yōu)分類器的設計問題。既然叫作最優(yōu)分類器,其本質(zhì)必然是個最優(yōu)化問題。所以,接下來我們要討論的就是如何把SVM變成用數(shù)學語言描述的最優(yōu)化問題模型,這就是我們在第二部分要講的“線性SVM算法的數(shù)學建模”。
*關于“決策面”,為什么叫決策面,而不是決策線?好吧,在圖1里,樣本是二維空間中的點,也就是數(shù)據(jù)的維度是2,因此1維的直線可以分開它們。但是在更加一般的情況下,樣本點的維度是n,則將它們分開的決策面的維度就是n-1維的超平面(可以想象一下3維空間中的點集被平面分開),所以叫“決策面”更加具有普適性,或者你可以認為直線是決策面的一個特例。
---------------------線性SVM的算法建模---------------------
一個最優(yōu)化問題通常有兩個最基本的因素:1)目標函數(shù),也就是你希望什么東西的什么指標達到最好;2)優(yōu)化對象,你期望通過改變哪些因素來使你的目標函數(shù)達到最優(yōu)。在線性SVM算法中,目標函數(shù)顯然就是那個“分類間隔”,而優(yōu)化對象則是決策面。所以要對SVM問題進行數(shù)學建模,首先要對上述兩個對象(“分類間隔”和“決策面”)進行數(shù)學描述。按照一般的思維習慣,我們先描述決策面。
------決策面方程
? ? ? ? ??請你暫時不要糾結(jié)于n維空間中的n-1維超平面這種超出正常人想象力的情景。我們就老老實實地看看二維空間中的一根直線,我們從初中就開始學習的直線方程形式很簡單。
-------分類“間隔”的計算模型
? ? ? ? ?間隔的大小實際上就是支持向量對應的樣本點到?jīng)Q策面的距離的二倍,如上圖所示:
所以分類間隔計算似乎相當簡單,無非就是點到直線的距離公式(點到線的距離公式推導如左下圖)
?? -----------> ? ? ??
故根據(jù)上述推導公式可以得出上圖右邊的距離公式6。
這里是向量的模,表示在空間中向量的長度,就是支持向量樣本點的坐標。就是決策面方程的參數(shù)。而追求W的最大化也就是尋找d的最大化。看起來我們已經(jīng)找到了目標函數(shù)的數(shù)學形式。
優(yōu)化的數(shù)據(jù)集是線性可分的前提下得到的最大化d,稱為硬間隔(hard margin)最大化。(即d表示硬間隔)
如果數(shù)據(jù)集 X線性不可分,不存在滿足約束條件的樣本,會導致優(yōu)化問題沒有可行解;為使SVM適用于線性不可分的數(shù)據(jù)集,需要對目標函數(shù)和約束條件進行修改,最終得到的優(yōu)化問題,稱為軟間隔(soft margin)最大化。
參照博客:https://zhuanlan.zhihu.com/p/60743894
--------------------以上至此我們只是明白了如何求解分界線的一個過程,下邊才是添加約束條件優(yōu)化的過程
1)并不是所有的方向都存在能夠?qū)崿F(xiàn)100%正確分類的決策面,我們?nèi)绾闻袛嘁粭l直線是否能夠?qū)⑺械臉颖军c都正確分類?
2)即便找到了正確的決策面方向,還要注意決策面的位置應該在間隔區(qū)域的中軸線上,所以用來確定決策面位置的截距也不能自由的優(yōu)化,而是受到?jīng)Q策面方向和樣本點分布的約束。
3)即便取到了合適的方向和截距,公式(6)里面的x不是隨隨便便的一個樣本點,而是支持向量對應的樣本點。對于一個給定的決策面,我們該如何找到對應的支持向量?
以上三條的本質(zhì)是“約束條件”,也就是說我們要優(yōu)化的變量的取值范圍受到了限制和約束。事實上約束條件一直是最優(yōu)化問題里最讓人頭疼的東西。但既然我們已經(jīng)論證了這些約束條件確實存在,就不得不用數(shù)學語言對他們進行描述。盡管上面看起來是3條約束,但SVM算法通過一些巧妙的小技巧,將這三條約束條件融合在了一個不等式里面。
那么這兩個不等式再分別乘以他們的標簽會怎么樣?是不是可以統(tǒng)一為了(這也是為什么SVM在使用之前為什么要把兩類標簽設置為+1,-1,而不是0,1等等之類的了)
這里m是樣本點的總個數(shù),公式(2.14)描述的是一個典型的不等式約束條件下的二次型函數(shù)優(yōu)化問題,同時也是支持向量機的基本數(shù)學模型。
在求取有約束條件的優(yōu)化問題時,拉格朗日乘子法(Lagrange Multiplier)和KKT條件是非常重要的兩個求取方法,對于等式約束的優(yōu)化問題,可以應用拉格朗日乘子法去求取最優(yōu)解;如果含有不等式約束可以應用KKT條件去求取。當然這兩個方法求的的結(jié)果只是必要條件,只有當是凸函數(shù)的情況下,才能保證是充分必要條件。KKT條件是拉格朗日乘子法的泛化,
-----------------------------接下來是如何利用最優(yōu)化技術求解公式(2.14)描述的問題--------------
-----------拉格朗日乘子法
? ? ? ? ??首先來了解拉格朗日乘子法,為什么需要拉格朗日乘子法呢?記住,有需要拉格朗日乘子法的地方,必然是一個組合優(yōu)化問題。拉格朗日乘子法,是尋找多元函數(shù)在一組約束(可以是等式約束也可以是不等式約束)下的極值的方法。通過引入拉格朗日乘子,將d個變量與k的約束條件的有約束優(yōu)化問題轉(zhuǎn)化為d+k個變量的無約束優(yōu)化問題。那么帶約束的優(yōu)化問題很好說,就比如說下面這個:
在無約束優(yōu)化問題中,如果一個函數(shù)是凸函數(shù),那么總能通過求偏導等于0的方法求得函數(shù)的全局極小值點。如果不是凸函數(shù),可能會陷入局部極小值點
約束條件分為等式約束和不等式約束。
構造拉格朗日函數(shù)其實就是:目標函數(shù)+λ倍的約束條件,然后對變量及λ求偏導,這樣就能求出極值。(這只是一種構造方式,這種方式本身是沒有意義的,但它可以使求條件極值的步驟變得相對簡單方便一些,所以大家傾向于使用構造拉格朗日函數(shù)這種方式來求條件極值);拉格朗日函數(shù)用來求解等式約束的最優(yōu)化問題;廣義拉格朗日函數(shù)用來求解不等式約束的最優(yōu)化問題。拉格朗日對偶:將最小化問題怎么變成了最大化問題。
拉格朗日乘子法:就是將約束條件整合到目標函數(shù)里面去。KKT(Karush–Kuhn–Tucker conditions)條件:如果約束條件是不等式的話,需要用到KKT去解決。
首先定義原始目標函數(shù),拉格朗日乘子法的基本思想是把約束條件轉(zhuǎn)化為新的目標函數(shù)的一部分,從而使有約束優(yōu)化問題變成我們習慣的無約束優(yōu)化問題。那么該如何去改造原來的目標函數(shù)使得新的目標函數(shù)的最優(yōu)解恰好就在可行解區(qū)域中呢?這需要我們?nèi)シ治隹尚薪鈪^(qū)域中最優(yōu)解的特點。
我們觀察上圖中的紅色虛線(可行解空間)和藍色虛線(目標函數(shù)的等值線),發(fā)現(xiàn)這個被約束的最優(yōu)解恰好在二者相切的位置。此處先引入一個梯度(梯度可以直觀的認為是函數(shù)的變化量,可以描述為包含變化方向和變化幅度的一個向量)。
(1)在相遇點處即在等式約束條件下的優(yōu)化問題的最優(yōu)解即上圖中的A點,原始目標函數(shù)的梯度向量必然與約束條件的切線方向垂直。
(2)函數(shù)的梯度方向也必然與函數(shù)自身等值線切線方向垂直。
與推論1 的論證基本相同,如果的梯度方向不垂直于該點等值線的切線方向,就會在等值線上有變化,這條線也就不能稱之為等值線了。
根據(jù)(1)和(2),函數(shù)的梯度方向在點同時垂直于約束條件和自身的等值線的切線方向,也就是說函數(shù)的等值線與約束條件曲線在點具有相同(或相反)的法方向,所以他們在該點也必然相切。
到此我們可以將目標函數(shù)和約束條件視為兩個具有平等地位的函數(shù),可以得到如下推論:
---構造拉格朗日函數(shù)
我們按照本節(jié)初提到的思想,構造一個拉格朗日函數(shù),將有約束優(yōu)化問題轉(zhuǎn)為無約束優(yōu)化問題。拉格朗日函數(shù)具體形式如下:
? ? ? ? ? ? ? ? ? ?
新的拉格朗日目標函數(shù)有兩個自變量下,根據(jù)我們熟悉的求解無約束優(yōu)化問題的思路,將公式(3.3)分別對求導,令結(jié)果等于零,就可以建立兩個方程。同學們可以自己試一下,很容易就能發(fā)現(xiàn)這兩個由導數(shù)等于0構造出來的方程正好就是公式(3.1)和(3.2)。說明新構造的拉格朗日目標函數(shù)的優(yōu)化問題完全等價于原來的等式約束條件下的優(yōu)化問題。如下是構造過程:
這就是為什么構造拉格朗日目標函數(shù)可以實現(xiàn)等式約束條件下目標優(yōu)化問題的求解。
-----那么問題來了?哈哈;如果約束條件是不等式怎么辦?這個時候就要用到神秘的KKT條件了......(KKT條件是一個線性規(guī)劃問題能有最優(yōu)解的充分和必要條件。)
-------------------------------KKT條件--------------(約束條件為不等式,應用KKT條件去求取最優(yōu)解)
對于不等式約束條件的情況,如下圖所示,最優(yōu)解所在的位置有兩種可能,或者在邊界曲線上或者在可行解區(qū)域內(nèi)部滿足不等式的地方。
第一種情況:最優(yōu)解在邊界上,就相當于約束條件就是。參考圖4,注意此時目標函數(shù)的最優(yōu)解在可行解區(qū)域外面,所以函數(shù)在最優(yōu)解附近的變化趨勢是“在可行解區(qū)域內(nèi)側(cè)較大而在區(qū)域外側(cè)較小”,與之對應的是函數(shù)在可行解區(qū)域內(nèi)小于0,在區(qū)域外大于零,所以在最優(yōu)解附近的變化趨勢是內(nèi)部較小而外部較大。這意味著目標函數(shù)的梯度方向與約束條件函數(shù)的梯度方向相反。因此根據(jù)公式(3.1),可以推斷出參數(shù)。
? ? ? ? ? ? ? ? ? ? ? ? ?? 不等式約束條件下最優(yōu)解位置分布的兩種情況
第二種情況:如果在區(qū)域內(nèi),則相當于約束條件沒有起作用,因此公式(3.3)的拉格朗日函數(shù)中的參數(shù)。整合這兩種情況,可以寫出一個約束條件的統(tǒng)一表達,如公式(3.4)所示。
下面對上式解釋:
KKT條件的第一式:原來的約束條件
KKT條件的第二式:lambda>=0就是上面說的兩個力方向相反,即梯度的方向相反
KKT條件的第三式:若最優(yōu)點在約束平面內(nèi)部,則lambda=0,約束條件無用
若最優(yōu)點在約束平面的邊界,g(x)=0
其中第一個式子是約束條件本身。第二個式子是對拉格朗日乘子的描述。第三個式子是第一種情況和第二種情況的整合:在第一種情況里,;在第二種情況下,。所以無論哪一種情況都有。公式(3.4)就稱為Karush-Kuhn-Tucker條件,簡稱KKT條件。
推導除了KKT條件,感覺有點奇怪。因為本來問題的約束條件就是一個,怎么這個KKT條件又多弄出來兩條,這不是讓問題變得更復雜了嗎?這里我們要適當?shù)慕忉屢幌?#xff1a;
1)KKT條件是對最優(yōu)解的約束,而原始問題中的約束條件是對可行解的約束。
2)KKT條件的推導對于后面馬上要介紹的拉格朗日對偶問題的推導很重要。
---可以將KKT條件推廣到多約束條件下(同時含有等式約束和不等式約束):
h(x) 是等式約束。g(x)是不等式約束。m,n表示約束的數(shù)量。
-----------------拉格朗日對偶--------------
按照前面等式約束條件下的優(yōu)化問題的求解思路,構造拉格朗日方程的目的是將約束條件放到目標函數(shù)中,從而將有約束優(yōu)化問題轉(zhuǎn)換為無約束優(yōu)化問題。我們?nèi)匀槐羞@一思路去解決不等式約束條件下的優(yōu)化問題,那么如何針對不等式約束條件下的優(yōu)化問題構建拉格朗日函數(shù)呢?
因為我們要求解的是最小化問題,所以一個直觀的想法是如果我能夠構造一個函數(shù),使得該函數(shù)在可行解區(qū)域內(nèi)與原目標函數(shù)完全一致,而在可行解區(qū)域外的數(shù)值非常大,甚至是無窮大,那么這個沒有約束條件的新目標函數(shù)的優(yōu)化問題就與原來有約束條件的原始目標函數(shù)的優(yōu)化是等價的問題。
拉格朗日對偶問題其實就是沿著這一思路往下走的過程中,為了方便求解而使用的一種技巧。于是在這里出現(xiàn)了三個問題:1)有約束的原始目標函數(shù)優(yōu)化問題;2)新構造的拉格朗日目標函數(shù)優(yōu)化問題;3)拉格朗日對偶函數(shù)的優(yōu)化問題。我們希望的是這三個問題具有完全相同的最優(yōu)解,而在數(shù)學技巧上通常第三個問題——拉格朗日對偶優(yōu)化問題——最好解決。所以拉格朗日對偶不是必須的,只是一條捷徑。
1)原始目標函數(shù)(有約束條件)
為了接下來的討論,更具有一般性,我們把等式約束條件也放進來,進而有約束的原始目標函數(shù)優(yōu)化問題重新給出統(tǒng)一的描述:
公式(3.5)表示m個等式約束條件和n個不等式約束條件下的目標函數(shù)的最小化問題。
新構造的目標函數(shù)(沒有約束條件)
此時我們回想最初構造新目標函數(shù)的初衷,就是為了建立一個在可行解區(qū)域內(nèi)與原目標函數(shù)相同,在可行解區(qū)域外函數(shù)值趨近于無窮大的新函數(shù)。看看公式(3.11)We did it。
現(xiàn)在約束條件已經(jīng)沒了,接下來我們就可以求解公式(3.12)的問題
這個問題的解就等價于有約束條件下的原始目標函數(shù)最小化問題(公式3.5)的解。
-----對偶問題--
啥是對偶?
對于原問題(1)我們通常用拉格朗日對偶的方式來求解。啥是對偶?對偶說白了就是實質(zhì)相同但從不同角度提出不同提法的一對問題。有時候原問題 (Primal Problem) 不太好解,但是對偶問題 (Dual Problem) 卻很好解,我們就可以通過求解對偶問題來迂回地解答原問題。
在這里我們用的是拉格朗日對偶的方法來解決,既然我們說用對偶的方法的原因在于原問題不好解,那么這里也是如此嗎?
當然了。
首先我們來看看原問題有什么難的地方:
約束條件太多
很顯然約束越多,問題就越難解決,原問題中總共有 k+1個約束,相當麻煩
原問題凹凸性不明確
之前我們說過,“不假定原函數(shù) f的凹凸性”,這就意味著我們無法將凸優(yōu)化的方法應用在原問題中
那么它的拉格朗日對偶問題有什么優(yōu)點呢?(其實就是一個思想將復雜問題反向簡單化計算)
只有一個約束
拉格朗日對偶問題一定是凹的
這里先做一個感性的認識,細節(jié)方面接下來慢慢說。
對比公式(3.13)和(3.14),發(fā)現(xiàn)兩者之間存在一種對稱的美感。所以我們就把(3.14)稱作是(3.13)的對偶問題。現(xiàn)在我們可以解釋一下中的P是原始問題Primary的縮寫,中的D是對偶問題Dual的縮寫。如果我們能夠想辦法證明(3.14)和(3.13)存在相同的解,那我們就可以在對偶問題中選擇比較簡單的一個來求解。
4)對偶問題同解的證明 ?? 見:https://zhuanlan.zhihu.com/p/24638007
----------SVM與LR的比較-------------
LR的詳細介紹:https://blog.csdn.net/b285795298/article/details/88683987
相同點:
- LR和SVM都是分類算法
- LR和SVM都是監(jiān)督學習算法。
- LR和SVM都是判別模型。
- 如果不考慮核函數(shù),LR和SVM都是線性分類算法,也就是說他們的分類決策面都是線性的。
說明:LR也是可以用核函數(shù)的.但LR通常不采用核函數(shù)的方法.(計算量太大)
不同點:
1、LR采用log損失,SVM采用合頁(hinge)損失。
邏輯回歸的損失函數(shù): ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?支持向量機的目標函數(shù):
? ? ? ? ?
邏輯回歸方法基于概率理論,假設樣本為1的概率可以用sigmoid函數(shù)來表示,然后通過極大似然估計的方法估計出參數(shù)的值(基于統(tǒng)計的,其損失函數(shù)是人為設定的凸函數(shù)) 。支持向量機?基于幾何間隔最大化原理,認為存在最大幾何間隔的分類面為最優(yōu)分類面。
2、LR對異常值敏感,SVM對異常值不敏感(抗燥能力,SVM要強)
支持向量機只考慮局部的邊界線附近的點,而邏輯回歸考慮全局(遠離的點對邊界線的確定也起作用,雖然作用會相對小一些)。LR模型找到的那個超平面,是盡量讓所有點都遠離他,而SVM尋找的那個超平面,是只讓最靠近中間分割線的那些點盡量遠離,即只用到那些支持向量的樣本。
(1)支持向量機改變非支持向量樣本并不會引起決策面的變化: ?? (2)邏輯回歸中改變?nèi)魏螛颖径紩饹Q策面的變化:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
LR則受所有數(shù)據(jù)點的影響,如果數(shù)據(jù)不同類別strongly unbalance,一般需要先對數(shù)據(jù)做balancing。?(引自http://www.zhihu.com/question/26768865/answer/34078149)
3、計算復雜度不同。對于海量數(shù)據(jù),SVM的效率較低,LR效率比較高。 對于兩者在feature和樣本數(shù)量不同的情況下的效率問題,可以參考:https://blog.csdn.net/a244659184/article/details/81122521。該文章說明了:
當樣本較少,特征維數(shù)較低時,SVM和LR的運行時間均比較短,SVM較短一些。準確率的話,LR明顯比SVM要高。當樣本稍微增加些時,SVM運行時間開始增長,但是準確率趕超了LR。SVM時間雖長,但在接收范圍內(nèi)。當數(shù)據(jù)量增長到20000時,特征維數(shù)增長到200時,SVM的運行時間劇烈增加,遠遠超過了LR的運行時間。但是準確率卻和LR相差無幾。(這其中主要原因是大量非支持向量參與計算,造成SVM的二次規(guī)劃問題)
4、對非線性問題的處理方式不同,LR主要靠特征構造,必須組合交叉特征,特征離散化。SVM也可以這樣,還可以通過kernel(因為只有支持向量參與核計算,計算復雜度不高)。(由于可以利用核函數(shù),。SVM則可以通過對偶求解高效處理。LR則在特征空間維度很高時,表現(xiàn)較差。)
5、SVM的損失函數(shù)就自帶正則!!!(損失函數(shù)中的1/2||w||^2項),這就是為什么SVM是結(jié)構風險最小化算法的原因!!!而LR必須另外在損失函數(shù)上添加正則項!!!
關于正則化:
給定一個數(shù)據(jù)集,一旦完成Linear SVM的求解,所有數(shù)據(jù)點可以被歸成兩類
1)一類是落在對應分界平面外并被正確分類的點,比如落在正分界左側(cè)的正樣本或落在負分界右側(cè)的負樣本
2)第二類是落在gap里或被錯誤分類的點。
假設一個數(shù)據(jù)集已經(jīng)被Linear SVM求解,那么往這個數(shù)據(jù)集里面增加或者刪除更多的一類點并不會改變重新求解的Linear SVM平面。這就是它區(qū)分與LR的特點,下面我們在看看LR。
值得一提的是求解LR模型過程中,每一個數(shù)據(jù)點對分類平面都是有影響的,它的影響力遠離它到分類平面的距離指數(shù)遞減。換句話說,LR的解是受數(shù)據(jù)本身分布影響的。在實際應用中,如果數(shù)據(jù)維度很高,LR模型都會配合參數(shù)的L1 regularization。
要說有什么本質(zhì)區(qū)別,那就是兩個模型對數(shù)據(jù)和參數(shù)的敏感程度不同,Linear SVM比較依賴penalty的系數(shù)和數(shù)據(jù)表達空間的測度,而(帶正則項的)LR比較依賴對參數(shù)做L1 regularization的系數(shù)。但是由于他們或多或少都是線性分類器,所以實際上對低維度數(shù)據(jù)overfitting的能力都比較有限,相比之下對高維度數(shù)據(jù),LR的表現(xiàn)會更加穩(wěn)定,為什么呢?
因為Linear SVM在計算margin有多“寬”的時候是依賴數(shù)據(jù)表達上的距離測度(可以理解為度量標準,即在什么樣的標準上計算gap的大小)的,換句話說如果這個測度不好(badly scaled,這種情況在高維數(shù)據(jù)尤為顯著),所求得的所謂Large margin就沒有意義了,這個問題即使換用kernel trick(比如用Gaussian kernel)也無法完全避免。所以使用Linear SVM之前一般都需要先對數(shù)據(jù)做normalization,(這里的normalization是對數(shù)據(jù)的歸一化,注意區(qū)分之前的LR在類別不平衡的時候做的balancing)而求解LR(without regularization)時則不需要或者結(jié)果不敏感。
同時會有:feature scaling會使得gradient descent的收斂更好。
如果不歸一化,各維特征的跨度差距很大,目標函數(shù)就會是“扁”的:
? ? ? ? ? ? ? ? ? ? ? ? ?
(圖中橢圓表示目標函數(shù)的等高線,兩個坐標軸代表兩個特征)
這樣feature scaling之后,在進行梯度下降的時候,梯度的方向就會偏離最小值的方向,走很多彎路。
如果歸一化了,那么目標函數(shù)就“圓”了:如上圖。每一步梯度的方向都基本指向最小值,可以大踏步地前進。(引自https://www.zhihu.com/question/37129350
-------核函數(shù)--------
另搞一篇吧,覺得這個再也到不了頭了
?
?
總結(jié)
以上是生活随笔為你收集整理的机器学习中的数学基础(4.1):支持向量机Support Vector Machine(SVM)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习中的数学基础:(2)矩阵的奇异值
- 下一篇: PCL:点云数据基于法线的边界提取(从最