
支持向量機(jī)即 Support Vector Machine,簡(jiǎn)稱 SVM 。我最開(kāi)始聽(tīng)說(shuō)這頭機(jī)器的名號(hào)的時(shí)候,一種神秘感就油然而生,似乎把 Support 這么一個(gè)具體的動(dòng)作和 Vector 這么一個(gè)抽象的概念拼到一起,然后再做成一個(gè) Machine ,一聽(tīng)就很玄了!
不過(guò)后來(lái)我才知道,原來(lái) SVM 它并不是一頭機(jī)器,而是一種算法,或者,確切地說(shuō),是一類(lèi)算法,當(dāng)然,這樣摳字眼的話就沒(méi)完沒(méi)了了,比如,我說(shuō) SVM 實(shí)際上是一個(gè)分類(lèi)器 (Classifier) ,但是其實(shí)也是有用 SVM 來(lái)做回歸 (Regression) 的。所以,這種字眼就先不管了,還是從分類(lèi)器說(shuō)起吧。
SVM 一直被認(rèn)為是效果最好的現(xiàn)成可用的分類(lèi)算法之一(其實(shí)有很多人都相信,“之一”是可以去掉的)。這里“現(xiàn)成可用”其實(shí)是很重要的,因?yàn)橐恢币詠?lái)學(xué)術(shù)界和工業(yè)界甚至只是學(xué)術(shù)界里做理論的和做應(yīng)用的之間,都有一種“鴻溝”,有些很 fancy 或者很復(fù)雜的算法,在抽象出來(lái)的模型里很完美,然而在實(shí)際問(wèn)題上卻顯得很脆弱,效果很差甚至完全 fail 。而 SVM 則正好是一個(gè)特例——在兩邊都混得開(kāi)。
好了,由于 SVM 的故事本身就很長(zhǎng),所以廢話就先只說(shuō)這么多了,直接入題吧。當(dāng)然,說(shuō)是入貼,但是也不能一上來(lái)就是 SVM ,而是必須要從線性分類(lèi)器開(kāi)始講。這里我們考慮的是一個(gè)兩類(lèi)的分類(lèi)問(wèn)題,數(shù)據(jù)點(diǎn)用



一個(gè)超平面,在二維空間中的例子就是一條直線。我們希望的是,通過(guò)這個(gè)超平面可以把兩類(lèi)數(shù)據(jù)分隔開(kāi)來(lái),比如,在超平面一邊的數(shù)據(jù)點(diǎn)所對(duì)應(yīng)的

如圖所示,兩種顏色的點(diǎn)分別代表兩個(gè)類(lèi)別,紅顏色的線表示一個(gè)可行的超平面。在進(jìn)行分類(lèi)的時(shí)候,我們將數(shù)據(jù)點(diǎn)
從幾何直觀上來(lái)說(shuō),由于超平面是用于分隔兩類(lèi)數(shù)據(jù)的,越接近超平面的點(diǎn)越“難”分隔,因?yàn)槿绻矫嫔晕⑥D(zhuǎn)動(dòng)一下,它們就有可能跑到另一邊去。反之,如果是距離超平面很遠(yuǎn)的點(diǎn),例如圖中的右上角或者左下角的點(diǎn),則很容易分辯出其類(lèi)別。




















又由于









不過(guò),這里的








顯然,functional margin 和 geometrical margin 相差一個(gè)
不過(guò)這里我們有兩個(gè) margin 可以選,不過(guò) functional margin 明顯是不太適合用來(lái)最大化的一個(gè)量,因?yàn)樵?hyper plane 固定以后,我們可以等比例地縮放



當(dāng)然,還需要滿足一些條件,根據(jù) margin 的定義,我們有













其中










通過(guò)求解這個(gè)問(wèn)題,我們就可以找到一個(gè) margin 最大的 classifier ,如下圖所示,中間的紅色線條是 Optimal Hyper Plane ,另外兩條線到紅線的距離都是等于

到此為止,算是完成了 Maximum Margin Classifier 的介紹,通過(guò)最大化 margin ,我們使得該分類(lèi)器對(duì)數(shù)據(jù)進(jìn)行分類(lèi)時(shí)具有了最大的 confidence (實(shí)際上,根據(jù)我們說(shuō)給的一個(gè)數(shù)據(jù)集的 margin 的定義,準(zhǔn)確的說(shuō),應(yīng)該是“對(duì)最不 confidence 的數(shù)據(jù)具有了最大的 confidence”——雖然有點(diǎn)拗口)。不過(guò),到現(xiàn)在似乎還沒(méi)有一點(diǎn)點(diǎn) Support Vector Machine 的影子。很遺憾的是,這個(gè)要等到下一次再說(shuō)了,不過(guò)可以先小小地劇透一下,如上圖所示,我們可以看到 hyper plane 兩邊的那個(gè) gap 分別對(duì)應(yīng)的兩條平行的線(在高維空間中也應(yīng)該是兩個(gè) hyper plane)上有一些點(diǎn),顯然兩個(gè) hyper plane 上都會(huì)有點(diǎn)存在,否則我們就可以進(jìn)一步擴(kuò)大 gap ,也就是增大
ps: 本文開(kāi)頭那張照片來(lái)源于這里。Allaboutinquiry 同學(xué)留言揭露典故真相啦:

關(guān)于這個(gè)同學(xué)舉牌子的典故我知道,我也是CMU的。這是在2009年在Pittsburgh舉行的G20峰會(huì)現(xiàn)場(chǎng)外面。很多反對(duì)G20的,支持G20的都來(lái)湊熱鬧。我們這位同學(xué)也來(lái)了,魚(yú)目混珠的高舉Support Vector Machine的牌子。很多老美就暈了,你說(shuō)你支持加強(qiáng)控制二氧化碳排放我懂,你支持的的這個(gè)Vector Machine是個(gè)什么東西???然后這個(gè)同學(xué)搞笑的目的就達(dá)到了。