Q:支持向量機(jī)是什么鬼轰胁?
支持向量機(jī)不是一臺(tái)“機(jī)”,而是一個(gè)算法如绸。一般來(lái)說(shuō)認(rèn)為這是一個(gè)分類(lèi)算法嘱朽,而且分類(lèi)效果極佳。
以基本的二分類(lèi)任務(wù)為例怔接。給定一堆訓(xùn)練數(shù)據(jù),假設(shè)每個(gè)樣本只有兩個(gè)屬性稀轨。我們?cè)噲D在坐標(biāo)系中找出一條線(xiàn)扼脐,把不同類(lèi)的樣本分開(kāi)來(lái)。從圖中可以看出,有多條直線(xiàn)可以把兩類(lèi)樣本分開(kāi)瓦侮。但是從直覺(jué)上就可以察覺(jué)艰赞,在兩類(lèi)點(diǎn)中間的那條線(xiàn)(加粗那條),是最合適的肚吏。因?yàn)檫@條線(xiàn)離兩類(lèi)樣本的距離都適中方妖,因此最能適應(yīng)新樣本,也就是說(shuō)泛化能力最強(qiáng)罚攀。
圖中有很多樣本党觅,但真正決定這條線(xiàn)的位置和方向的,只有兩個(gè)點(diǎn)斋泄,那就是每個(gè)類(lèi)的點(diǎn)中離直線(xiàn)最近的點(diǎn)杯瞻。因?yàn)樗鼈兇砹烁髯运诘念?lèi)的邊界,只有它們的變化會(huì)引起線(xiàn)的位置變化炫掐,所以說(shuō)這兩個(gè)點(diǎn)支持著這條線(xiàn)魁莉。這些樣本在坐標(biāo)系中表現(xiàn)為點(diǎn),用代數(shù)表示就是向量(每個(gè)分量是對(duì)應(yīng)的屬性值)募胃。這就是“支持向量機(jī)”算法名稱(chēng)的又來(lái)旗唁。
Q:怎樣找出支持向量機(jī)用來(lái)分類(lèi)的那根線(xiàn)?
支持向量機(jī)在樣本屬性只有兩個(gè)的時(shí)候的任務(wù)是找一條線(xiàn)痹束,在屬性有三個(gè)的時(shí)候就是找一個(gè)平面逆皮。在樣本屬性有三個(gè)以上的時(shí)候找的是“超平面”散罕。線(xiàn)臼氨、平面,都是超平面的特例恭理,所以他們都可以用一個(gè)方程來(lái)表示:
這個(gè)方程就是我們要找的超平面的代數(shù)表示抹蚀。其參數(shù)w和b就是我們要確定的參數(shù)剿牺,也就是我們要學(xué)習(xí)的目標(biāo)。這個(gè)超平面也可以認(rèn)為是使得分類(lèi)函數(shù)f(x)=0的點(diǎn)集:
支持向量機(jī)的分類(lèi)方式略有別于logistic回歸——logistic回歸是把樣本值代入分類(lèi)函數(shù)后得出一個(gè)0到1之間的數(shù)环壤,根據(jù)這個(gè)數(shù)是否大于某個(gè)閥值(如0.5)來(lái)進(jìn)行分類(lèi)晒来。
支持向量機(jī)則是把樣本值代入分類(lèi)函數(shù)后得出一個(gè)實(shí)數(shù),根據(jù)這個(gè)數(shù)是否大于0來(lái)分類(lèi)郑现。而且在用訓(xùn)練數(shù)據(jù)訓(xùn)練過(guò)程中湃崩,會(huì)設(shè)置約束條件,讓所有樣本數(shù)據(jù)的計(jì)算值在 “>1” 和 “<-1” 之間接箫。也就是在兩個(gè)類(lèi)別之間留出一道間隙攒读。
由空間幾何理論可以知道,空間中一個(gè)點(diǎn)到超平面的距離是
因?yàn)榘褬颖局荡敕诸?lèi)函數(shù)后得出的計(jì)算值在 “>1” 和 “<-1” 之間辛友,所以超平面能正確分類(lèi)的前提(即約束條件)之一是
那么離超平面最近的兩個(gè)樣本薄扁,代入分類(lèi)函數(shù)后的計(jì)算值必然分別是1和-1剪返。所以?xún)蓚€(gè)類(lèi)之間的間隙就是這兩個(gè)點(diǎn)到超平面的舉例的和,也就是
要是的支持向量機(jī)效果最好邓梅,也就是說(shuō)最能適應(yīng)新樣本脱盲,那就意味著是的兩類(lèi)訓(xùn)練樣本之間的間隙最大化,所以我們的訓(xùn)練的具體目標(biāo)就是——
求得參數(shù)w和b使得兩類(lèi)樣本間的間隙最大日缨,同時(shí)還要讓各個(gè)樣本代入分類(lèi)函數(shù)后的計(jì)算值大于1(或小于-1)钱反。
這個(gè)最值問(wèn)題的求解過(guò)程相當(dāng)燒腦,用到對(duì)偶問(wèn)題思想匣距、拉格朗日乘子法面哥、KKT條件、SMO算法等墨礁,略過(guò)幢竹。
當(dāng)我們把訓(xùn)練數(shù)據(jù)一個(gè)個(gè)輸入支持向量機(jī),逐漸調(diào)整參數(shù)w和b恩静,最后得到了分類(lèi)函數(shù)焕毫。這就是支持向量機(jī)的基本形式。
Q:如果得到的訓(xùn)練數(shù)據(jù)在各個(gè)類(lèi)別的邊界處彼此混淆驶乾,不能用一個(gè)超平面劃分邑飒,怎么辦?
現(xiàn)實(shí)中確實(shí)存在線(xiàn)性不可分的數(shù)據(jù)集
但我們可以將樣本向量映射到一個(gè)高維空間级乐,在更高維度的空間中我們就能找到一個(gè)劃分各類(lèi)的超平面了疙咸。這中數(shù)據(jù)升維的手段被稱(chēng)為核方法,其映射函數(shù)被稱(chēng)為核函數(shù)风科。
當(dāng)樣本向量x映射后撒轮,超平面的方程也就變成了
而訓(xùn)練的具體目標(biāo)則變成了