【機器學習演算法推導】支援向量機
線性可分
在二維平面中,正樣本和負樣本可以由一條直線完全隔開。假設存在直線 使得平面上 處完全是正樣本, 完全是負樣本,那麼這條直線就是一個超平面,它將樣本完全分開,並且這樣的樣本被稱為線性可分。
超平面
超平面是推廣到n維空間後的概念,在一維空間下,超平面就是一個點;在二維空間下,超平面就是一條直線;在三維平面下,超平面就是一個平面;…推廣到n維情況,則統稱為超平面
支援向量機
在二維平面上,對於一組線性可分的資料,往往可以找到很多條直線作為超平面。支援向量機可以在這若干條直線中,找出最合適的一條直線作為決策邊界。如何判斷直線足夠合適呢?對於一個決策邊界,我們希望他能夠具有較好的泛化能力。假如正樣本均勻分佈在y=0的直線上,負樣本均勻分佈在存在於y=9的直線上。假設我們取y=1,y=5,y=8作為超平面,從直覺上來講,y=1,y=8兩條直線都離一組樣本過近,離另外一組樣本過遠,因此這兩條直線都不合適。而y=5作為y=0和y=9的垂線,對於正樣本和負樣本都留有一定的餘地,這使得模型的泛化能力變強。當出現一些噪聲,比如y=2上出現了正樣本,y=7上出現了負樣本的情況,y=5都能夠將其歸為正確的分類。當然,並不是所有的樣本都如我們期望的那樣線性可分。
總的來說,支援向量機(support vector machines)可以分為以下三種:
- 當訓練樣本線性可分時,通過硬間隔最大化,學習一個線性可分SVM。
- 當訓練樣本近似線性可分時,通過軟間隔最大化,學習一個線性SVM。
- 當訓練樣本線性不可分時,通過核技巧和軟間隔最大化,學習一個非線性支援向量機。
演算法推導
幾何間隔
在超平面確定的情況下,
表示點到超平面的距離,而函式最終預測輸出的y(1和-1)與
符號一致,因此可用
來表示分類預測的準確程度。定義所有樣本點最小的
作為函式間隔,
根據高中的知識,我們知道點到直線的距離公式為
,點到平面的距離公式為
,如果用向量表示,設
,
,那麼這個距離正是
。
支援向量
滿足
的樣本點稱之為支援向量。對於其他不是支援向量的點,顯然有
。
令
和
表示兩個正負支援向量,滿足
,推出
。對於一正一負兩個支援向量的間隔等於兩個支援向量的差在
上的投影,即