SVM存在的意義
要了解SVM存在的意義仆救,首先從下面一個(gè)簡(jiǎn)單的二維數(shù)據(jù)集例子開始翠桦。
上面是一個(gè)線性可分的數(shù)據(jù)集。所謂線性可分蒋川,就是可以用一條直線將兩類數(shù)據(jù)點(diǎn)完全分開惶翻。在圖中苹支,我們用圈圈表示負(fù)類嗜历,用加號(hào)表示正類。假設(shè)現(xiàn)在要用一條直線將正類和負(fù)類完全分開吨铸,顯然會(huì)有無窮多個(gè)解行拢,有無限多條直線可以完全分開正類和負(fù)類。
下圖顯示了其中一條可以完全區(qū)分兩類的直線
圖中的Decision Boundary既是決策邊界诞吱,在決策邊界右邊的點(diǎn)被分類為正類舟奠,在決策邊界左邊的點(diǎn)被分類為負(fù)類。既然有無窮多的直線可以區(qū)分訓(xùn)練集的兩類房维,那么是否有一個(gè)標(biāo)準(zhǔn)能夠度量決策邊界的優(yōu)劣沼瘫,從而在無窮多個(gè)直線當(dāng)中選擇一個(gè)最好的作為決策邊緣,區(qū)分未知的點(diǎn)呢咙俩?答案是肯定的耿戚,這也是SVM存在的意義。SVM可以用來度量決策邊界的優(yōu)劣阿趁,下面我們將介紹SVM(支持向量機(jī))對(duì)決策邊界的度量規(guī)則膜蛔,從而選出SVM認(rèn)為的最好的決策邊界。
SVM規(guī)則
這里我們還是以剛剛的決策邊界為例子脖阵。在這幅圖里皂股,我們?cè)黾恿艘粭l與決策邊界垂直,與最近的數(shù)據(jù)點(diǎn)相連的線段命黔。這條線段的長(zhǎng)度呜呐,我們稱之為Margin。換句話說悍募,Margin就是所有數(shù)據(jù)點(diǎn)到?jīng)Q策邊界的最短距離蘑辑。
SVM規(guī)定,在決策邊界能夠完全正確劃分正負(fù)類的前提下搜立,Margin的值越大越好以躯。SVM算法目的就是要找出找出滿足這兩個(gè)條件的直線槐秧。因此SVM也稱為L(zhǎng)arge-Margin算法啄踊。
Margin值越大越好的原因
下面我們用另一個(gè)Margin值比較小的決策邊界作為例子,對(duì)比說明Margin值較大的好處刁标。
假設(shè)現(xiàn)在用此決策邊界預(yù)測(cè)圖中綠色點(diǎn)的類別颠通,很明顯該點(diǎn)位于決策邊界的左邊,該點(diǎn)應(yīng)該被分為負(fù)類膀懈。但是顿锰,在收集數(shù)據(jù)的時(shí)候,可能會(huì)存在誤差。假設(shè)在數(shù)據(jù)收集的時(shí)候硼控,某一誤差使得綠色的點(diǎn)從原來的位置移動(dòng)到了紅色點(diǎn)的位置刘陶,即x1特征由于誤差從0.2變成0.4。此時(shí)牢撼,紅色點(diǎn)落在了決策邊界的右邊匙隔,決策邊界判定這個(gè)點(diǎn)為正類,因此分類錯(cuò)誤熏版。
現(xiàn)在我們重新看回之前一個(gè)較大Margin的決策邊界例子纷责。
我們對(duì)同樣的情況進(jìn)行分析,即綠色點(diǎn)由于誤差撼短,使其位置從原來的位置移動(dòng)到了紅色點(diǎn)的位置再膳。這個(gè)時(shí)候,紅色點(diǎn)依然在決策邊界的左邊曲横,決策邊界判定這個(gè)點(diǎn)為負(fù)類點(diǎn)喂柒,此時(shí)對(duì)該點(diǎn)分類正確。
從上面兩個(gè)例子可以看出禾嫉,越大的Margin對(duì)誤差的容忍度就越好胳喷。這能一定程度減小過擬合的問題。所以SVM規(guī)定夭织,Margin值越大吭露,決策邊界越優(yōu),能夠容忍更大的測(cè)量誤差尊惰。
為什么要命名為支持向量機(jī)
很多人必定對(duì)支持向量機(jī)這個(gè)名字感到很疑惑讲竿。要知道支持向量機(jī)的命名緣由,首先要弄清楚什么是支持向量弄屡。下面我們還是以原來的例子說明這個(gè)問題题禀。
在坐標(biāo)里的每一個(gè)點(diǎn)都由多個(gè)維度組成,任何一個(gè)點(diǎn)都可以寫成多維向量的形式膀捷,維度的值是每個(gè)特征對(duì)應(yīng)的值迈嘹。因此每一個(gè)點(diǎn)也可以稱作是一個(gè)向量。圖中的虛線是兩條邊緣全庸,兩條邊緣得到的方式是讓兩條平行于決策邊界的線向兩側(cè)平行移動(dòng)秀仲,直到任意一條邊緣與圖中任意一個(gè)點(diǎn)有交集的時(shí)候,停止移動(dòng)壶笼。
在支持向量機(jī)算法中神僵,我們最終需要得到的是在能百分百區(qū)分正負(fù)類的前提下,得到一條擁有最大Margin的直線覆劈。Margin的值就是其中一條邊緣到?jīng)Q策邊界的距離保礼。
我們很容易看出沛励,Margin的大小僅僅和落在兩條虛線上的數(shù)據(jù)點(diǎn)有關(guān)系,直線之外的點(diǎn)不管怎么變化炮障,Margin的值都不會(huì)改變目派。這個(gè)算法僅僅需要落在兩條虛線上的點(diǎn)的支持,其它點(diǎn)(圖中虛化的點(diǎn))可以不存在胁赢。因此我們可以把落在虛線上的點(diǎn)稱為支持點(diǎn)址貌。前面我們提到,一個(gè)點(diǎn)也可以稱為一個(gè)向量徘键,因此练对,我們或許可以把落在虛線上的點(diǎn)稱為支持向量。
然而吹害,落在虛線上的點(diǎn)僅僅能稱作支持向量候選(Support Vector Candidate), 支持向量候選和支持向量的區(qū)別在后續(xù)的章節(jié)會(huì)有說明螟凭。SVM算法其實(shí)就是靠支持向量來計(jì)算最大Margin的一個(gè)算法,因此將其命名為支持向量機(jī)它呀。
總結(jié)
在這一章簡(jiǎn)單介紹了SVM的存在意義螺男。在后續(xù)的章節(jié)里,將會(huì)用幾何以及高等數(shù)學(xué)的知識(shí)纵穿,推理SVM的計(jì)算過程下隧,得到一個(gè)最佳的決策邊界。在本章節(jié)里谓媒,只是介紹了線性SVM淆院,所謂線性SVM就是用SVM解決線性可分的數(shù)據(jù)集問題。對(duì)于線性不分的情況句惯,SVM也會(huì)有相應(yīng)的方法解決土辩,在后續(xù)的章節(jié)里也會(huì)有詳細(xì)的推導(dǎo)。