支援向量機主要分類三類:線性可分支援向量機(資料線性可分時),線性支援向量機(資料近似線性可分),非線性支援向量機(資料線性不可分)。這裡先考慮最簡單的情況,即當資料線性可分時。
對於2分類的邏輯回歸而言,假設特徵數為2,那麼我們訓練模型的過程通過梯度下降不斷更新引數迫近全域性最優解,擬合出一條直線作為決策邊界,使得以這個決策邊界劃分出來的分類結果誤差最低。
當特徵數量超過2,這個時候我們用來分割不同類別的「線」就成為了乙個面,簡稱超平面(hyperplane),超即是多維的意思(二維就是一條線,三維就是乙個面,多維就是超平面)。劃分超平面可用如下線性方程表示:
w tx
+b=0
w^x+b=0
wtx+b=
0其中w=(
w1,w
2,..
.,wd
)tw=(w_1,w_2,...,w_d)^t
w=(w1
,w2
,...
,wd
)t是法向量,b
bb是位移。(向量一般用列向量表示)
如果我們要用一條直線來將下面這張圖中的兩種類別(「+」和「-」)分開,可看到可分離的直線是有多條的,如下圖所示:
直觀上我們應該選紅色的這條線,感覺它是「最能」分開這兩種類的。因為如果選擇黑色的線,那麼可能存在一些點剛好越過黑色的線,導致被錯誤分類,但是紅線的容錯率會更好,也就不容易出錯。
例如下面這種情況,如果我選擇綠色的線,如果新來乙個需要**的樣本(藍色的點)本來屬於「+」,但是卻會被分到「-」這一類,但是紅線就不會,即紅線所產生的分類結果是最魯棒的,對未見示例的泛化能力最強。
紅色的這條決策邊界就是通過間隔最大化求得的,並且是唯一。在了解間隔最大化之前先了解一下函式間隔和幾何間隔的概念。
一般來說,乙個點距離超平面的遠近可以表示分類**的確信程度。例如圖中a、b、c三個點,都在超平面的正類一側,但是點a距離超平面較遠,就比較確信**是正確的,而c距離超平面較近,所以**c為正類就不那麼確信。
(1)函式間隔:對於給定訓練集和超平面(w,b),定義超平面(w,b)關於樣本點(xi
,yi)
(x_i,y_i)
(xi,y
i)的函式間隔為:
r i^
=yi(
wtxi
+b)\hat=y_i(w^tx_i+b)
ri^=
yi(
wtxi
+b)
定義超平面(w,
b)(w,b)
(w,b
)關於訓練集的函式間隔為超平面關於訓練集中所有樣本點的函式間隔的最小值:
r ^=
min(
i=1,
..,n
)ri^
\hat=min_\hat
r^=min
(i=1
,..,
n)r
i^
可以看到當w,b
w,bw,
b成比例變化時,超平面沒有改變但是函式間隔變了,因此可以對w,b
w,bw,
b做相應的約束,就得到了幾何間隔。
(2)幾何間隔:對於給定訓練集和超平面(w,b),定義超平面(w,b)關於樣本點(xi
,yi)
(x_i,y_i)
(xi,y
i)的集合間隔為:
r i=
yi(w
txi+
b)∣∣
w∣∣=\frac
ri=∣∣
w∣∣y
i(w
txi
+b)
定義超平面(w,
b)(w,b)
(w,b
)關於訓練集的函式間隔為超平面關於訓練集中所有樣本點的幾何間隔的最小值:
r =m
in(i
=1,.
.,n)
ri=min_r_i
r=min(
i=1,
..,n
)ri
這裡的幾何間隔就是點到平面的距離公式,因為y為1或-1,且當前資料集線性可分,所以和∣wt
xi+b
∣∣∣w
∣∣\fracx_i+b|}
∣∣w∣∣∣
wtxi
+b∣
是等價的。
因為當w,b
w,bw,
b成比例變化時,函式間隔也會成比例變化,而幾何間隔是不變的,所以要考慮幾何間隔最大化,即我們要求解間隔最大化的超平面的問題就變成了求解如下帶約束的優化問題:
max_\quad r\\s.t. \quad\frac\geq r, i=1,2,..,n\end
}
r=∣∣w∣
∣r^
,所以上面的優化問題可以寫成如下形式:
max_\quad \frac}\\s.t. \quad\geq \hat, i=1,2,..,n\end
λr^(λ
>
0\lambda>0
λ>
0),雖然改變了函式間隔但是不等式約束依然滿足,並且超平面也沒有變,所以r
^\hat
r^的取值並不影響目標函式的優化,因此為了方便計算可以令r^=
1\hat=1
r^=1
,並且由於最大化r^∣
∣w∣∣
\frac}
∣∣w∣∣r
^和最小化∣∣w
∣∣22
\frac
2∣∣w∣∣
2是等價的,所以優化問題可以寫成如下形式:
max_\quad \frac\\s.t. \quad\geq 1, i=1,2,..,n\end
{maxw,
b2∣
∣w∣∣
2s.
t.yi
(wt
xi+
b)≥1
,i=1
,2,.
.,n
並且使得上面等式成立的點也被稱為支援向量(support vector)
對SVM支援向量機(1)
支援向量機 英語 support vector machine,常簡稱為svm,又名支援向量網路 是在分類與回歸分析中分析資料的監督式學習模型與相關的學習演算法。給定一組訓練例項,每個訓練例項被標記為屬於兩個類別中的乙個或另乙個,svm訓練演算法建立乙個將新的例項分配給兩個類別之一的模型,使其成為非...
支援向量機(SVM)
簡介 術語 支援向量機 svm 是乙個類分類器,正式的定義是乙個能夠將不同類樣本在樣本空間分隔的超平面。換句話說,給定一些標記 label 好的訓練樣本 監督式學習 svm演算法輸出乙個最優化的分隔超平面。首先我們假定有乙個未知的欲分類的集合,可以進行分割,但是我們不知道分割的函式 超平面,也叫真實...
支援向量機SVM
支援向量機svm support vector machine 是機器學習領域的乙個有監督的學習模型。一 簡介 支援向量機建立在統計學習理論的基礎之上。統計學習理論 statistical learning theory簡稱slt 是一種處理小樣本的統計理論 為研究有限樣本情況下的統計模式識別和更廣...