聽了馮老師在七月在線上講的【純白版手推SVM】一節(jié)椎椰,感覺很順暢,沒有那么么多的數(shù)學(xué)名詞沾鳄,直接進(jìn)入本質(zhì)慨飘,不經(jīng)意間就得出了結(jié)果,也下定決心整理一下自己對(duì)SVM的認(rèn)識(shí)。下面是自己對(duì)SVM的t通俗理解瓤的!具體的理論數(shù)學(xué)推導(dǎo)休弃,可以參考支持向量機(jī)通俗導(dǎo)論(理解SVM的三層境界)這篇文章。
SVM和DeepLearning:SVM在解決中小規(guī)模樣本(相對(duì)少)圈膏、非線性(懲罰變量)塔猾、高維(核函數(shù))模式識(shí)別方面具有較大的優(yōu)勢(shì)。DP處理的對(duì)象主要為圖像和聲音稽坤,優(yōu)勢(shì)在于對(duì)原始特征的表示丈甸,但是神經(jīng)網(wǎng)絡(luò)相當(dāng)于一個(gè)黑匣子模型,如果在一些關(guān)鍵的應(yīng)用場(chǎng)合尿褪,出于風(fēng)險(xiǎn)的原因睦擂,用戶可能會(huì)拒絕,但是如果已經(jīng)提取到了較好對(duì)圖像進(jìn)行表示的特征茫多,SVM是有理論推導(dǎo)過程的祈匙,有較好的可解釋性。
SVM—線性可分
傳統(tǒng)的監(jiān)督學(xué)習(xí)天揖,比如說0-1分類:我們需要學(xué)習(xí)一個(gè)決策邊界g(x)夺欲,不同的分類器(比如說決策樹、神經(jīng)網(wǎng)絡(luò)今膊,邏輯回歸)會(huì)給出不同的分類邊界些阅。而這些都是在找一個(gè)“好的”的決策邊界。那么如何量化一個(gè)決策邊界好的程度呢斑唬?
首先看一下SVM的關(guān)鍵假設(shè):對(duì)于線性可分的情況下市埋,決策邊界有很多個(gè),SVM關(guān)鍵的問題是在這么多決策邊界中選一個(gè)最好的:決策邊界兩邊最近的樣本到?jīng)Q策邊界的間隔最大恕刘。這樣具有比較高的魯棒性(比如說有一個(gè)噪點(diǎn)的擾動(dòng)不會(huì)導(dǎo)致決策邊界的變動(dòng))缤谎。
如下圖,H就是決策邊界褐着,H1坷澡、H2是平行于H且過離H最近的兩類樣本的直線,我們將H1到H2之間的距離成為“街寬”含蓉,我們希望“街寬”越寬越好频敛。當(dāng)給定了樣本點(diǎn)后匙监,如何找出決策邊界使得間隔最大呢洋只?我們定義和決策邊界垂直的向量w云稚,現(xiàn)在有一個(gè)樣本向量u侠碧。決策規(guī)則(Decision Rule):如果這個(gè)u在w的投影大于一個(gè)值,就是正樣本驶冒,反之負(fù)樣本殊轴。(公式1)嚎杨,這是對(duì)于所有樣本而言。
在訓(xùn)練集中发侵,需要正樣本離街的距離大于等于1,反之亦然(最大間隔假設(shè))侈咕,伸縮W就可以讓間隔無限大,這里為了計(jì)算方便令距離大于等于1(公式2)器紧。
對(duì)于訓(xùn)練樣本,標(biāo)簽都是已知的楼眷,正樣本標(biāo)簽為1铲汪,負(fù)樣本標(biāo)簽為-1,現(xiàn)在做一個(gè)轉(zhuǎn)換罐柳,對(duì)公式2兩邊同時(shí)乘以標(biāo)簽yi,我們就可以將兩個(gè)式子合并為一個(gè)公式(公式3)掌腰,在訓(xùn)練集中所有樣本都需要滿足這個(gè)公式。
街寬就等于X+和X-的差在w上的投影(距離的定義是在單位向量上的投影)张吉,同時(shí)對(duì)于街邊的點(diǎn)要求Yi(wx+b)=1齿梁,對(duì)公式進(jìn)行整理可以得到我們的優(yōu)化目標(biāo)(公式4)。
我們的目標(biāo)是街寬最大肮蛹,同時(shí)在街邊的點(diǎn)滿足等號(hào)勺择。要求等于1,街邊的點(diǎn)也就是所謂的支持向量的候選集伦忠,因此我們的問題可以轉(zhuǎn)化為下式:求出了優(yōu)化的目標(biāo):t因此我們的優(yōu)化目標(biāo)就是:
這是帶約束的最小值問題省核,很自然我們想到了拉格朗日乘子法,我們可以寫出下面的表達(dá)式昆码,分別對(duì)w和b求偏導(dǎo)气忠,令其等于0,可以看到w是街邊x的線性組合赋咽。這里只需要等式約束旧噪。
再將對(duì)w和b求偏導(dǎo)的結(jié)果帶入L中,可以看到L只取決于訓(xùn)練樣本中兩個(gè)向量之間兩兩的點(diǎn)乘脓匿。其中alpha是拉格朗日乘子淘钟,如果我們求得了alpha,我們就知道了w.
上式中朗格朗日乘子只有很少的一部分部位0亦镶,不等于0的乘子所對(duì)應(yīng)的樣本點(diǎn)就叫做支持向量日月,也就是在街邊的那些點(diǎn)。通過對(duì)凸優(yōu)化問題(KKT缤骨、SMO)的求解就可以求得alpha了爱咬,w也就求出了,b也很容易求得绊起。這時(shí)決策邊界g(x)也就知道了精拟,我們就可以對(duì)待分類的樣本進(jìn)行分類了。
SVM—線性不可分—核函數(shù)
對(duì)于線性可分的情況下,根據(jù)上述公式的推導(dǎo)蜂绎,只需要求得待分類樣本與所有訓(xùn)練樣本的內(nèi)積栅表,但是只有支持向量的朗格朗日乘子是不等于零的,因此只需要就算待分類樣本與支持向量的內(nèi)積即可师枣。
上面都是對(duì)于線性可分的情況怪瓶,那么如果樣本時(shí)線性不可分呢?那就將樣本向高維空間轉(zhuǎn)化践美,使其線性可分(網(wǎng)上有很多關(guān)于這方面的例子)洗贰,那么關(guān)鍵就來了,如何將低維空間的小轉(zhuǎn)化為高維空間的y呢陨倡?我們需要找到這個(gè)映射敛滋,但是這個(gè)映射并沒有系統(tǒng)的方法,但是我們關(guān)系的事高維空間里樣本的內(nèi)積的值兴革,并不是如何映射绎晃!核函數(shù)的基本作用就是接受兩個(gè)低維空間的響亮,能夠計(jì)算出經(jīng)過某個(gè)變換后在高維空間里兩個(gè)向量的內(nèi)積值杂曲,因此這里我們可以借助核函數(shù)實(shí)現(xiàn)低維到高維的映射庶艾。
SVM—線性不可分—松弛變量
當(dāng)我們使用了核函數(shù)后向高維空間映射后,問題仍然線性不可分擎勘,那么我們就需要松弛變量時(shí)的問題可分落竹。