數據點用X表示,是一個n維的向量,類別爲y,值爲-1、1表示兩個類別.
假設數據線性可分(在絕大部分時候數據並不是線性可分的,我們不能找到這樣一個超平面,但目前我們先從最簡單的情形講起),線性分類器就是要在n維的數據空間中找到一個超平面,其方程可以表示爲
我們希望這個超平面能夠將兩類數據分割開來。令
,則如果
時
位於超平面上,我們要求
時對應
,
時,對應
.
對於如下圖,我們的目標即找到合適的決策邊界將數據進行分隔,我們可以有很多的選擇,但是這些選擇之間存在優劣的差別。
在進行預測的時候,我們計算
的值,當其小於0的時候則類別爲-1.當其結果大於0的時候則判定其類別爲1,當
的時候則很難辦,分到哪類都不對。事實上,對於
的絕對值很小的時候都很難處理,因爲此時只要超平面有輕微的變動就會導致結果類別的變動,所以我們希望
的絕對值都很大,這樣我們就會更加確信它是屬於哪一類別。相較與綠色和紅色的決策邊界,黑色的決策邊界對於數據點具有更大的距離,
的絕對值更大。
直觀上講,黑色的決策邊界對於訓練樣本局部擾動性的「容忍性「更好,我們假設再添加一個樣本點,則紅色的決策邊界需要做出更多的調整。換言之黑色決策邊界具有更強的泛化能力,魯棒性更強。
如何找到這條線呢?
定義
爲
:
的長度即爲
的絕對值
定義
爲
:即點到直線的距離爲
顯然,兩者之間相差一個
的縮放因子。
我們將
作爲margin的度量。
我們可以知道,當數據線性可分的情況下,在間隔範圍內不存在任何數據,即滿足:
在滿足此條件的情況下,我們想要找到最大的margin,即:
根據中學知識,當超平面被固定之後,等比例縮放參數
和
表示的是同一個超平面,而
顯然可以看出
的大小可跟隨參數的縮放而變化(
不存在這個問題,它只跟隨超平面的變動而變動)。爲了確定超平面,我們可將
固定下來,此時爲了最大化
僅需最大化
,而這相當於最小化
,於是公式應該如下(設
=1,
只是爲了求解方便):
通過求解這個問題,我們就可以找到一個margin最大的分類器,如下圖所示:
到此爲止,Maximum Margin Classifier就講完了,通過最大化margin,我們使得該分類器對數據進行分類時具有了最大的confidence(事實上,根據margin的定義,準確來說,是對」對不confidence的數據具有了最大的confidence「)。如上圖所示,我們可以看到 超平面兩邊的那個 gap 分別對應的兩條平行的線(在高維空間中也應該是兩個超平面)上有一些點,顯然兩個超平面上都會有點存在,否則我們就可以進一步擴大 gap ,也就是增大
的值了。這些點呢,就叫做 support vector .
參考鏈接:
支持向量機(十分優秀)