目標
在這一章中
- 我們將對SVM有一個直觀的了解
理論
線性可分數據
考慮下面的圖像,它具有兩種數據類型,紅色和藍色。在kNN中,對於測試數據,我們用來測量其與所有訓練樣本的距離,並以最小的距離作為樣本。測量所有距離都需要花費大量時間,並且需要大量內存來存儲所有訓練樣本。但是考慮到圖像中給出的數據,我們是否需要那么多?
考慮另一個想法。我們找到一條線\(f(x)=ax_1 + bx_2+c\),它將兩條數據都分為兩個區域。當我們得到一個新的test_data \(X\)時,只需將其替換為\(f(x)\)即可。如果\(f(X)> 0\),則屬於藍色組,否則屬於紅色組。我們可以將此行稱為“決策邊界”。它非常簡單且內存高效。可以將這些數據用直線(或高維超平面)一分為二的數據稱為線性可分離數據。
因此,在上圖中,你可以看到很多這樣的行都是可能的。我們會選哪一個?非常直觀地,我們可以說直線應該從所有點盡可能遠地經過。為什么?因為傳入的數據中可能會有噪音。此數據不應影響分類准確性。因此,走最遠的分離線將提供更大的抗干擾能力。因此,SVM要做的是找到到訓練樣本的最小距離最大的直線(或超平面)。請參閱下面圖像中穿過中心的粗線。
因此,要找到此決策邊界,你需要訓練數據。那么需要全部嗎?並不用。僅接近相反組的那些就足夠了。在我們的圖像中,它們是一個藍色填充的圓圈和兩個紅色填充的正方形。我們可以稱其為支撐向量,通過它們的線稱為支撐平面。它們足以找到我們的決策邊界。我們不必擔心所有數據。它有助於減少數據量。
接下來,找到了最能代表數據的前兩個超平面。例如,藍色數據由\(w^Tx+b_0>-1\)表示,紅色數據由\(wTx+b_0<-1\)表示,其中\(w\)是權重向量(\(w=[w_1,w_2,...,w_n]\)),\(x\)是特征向量(\(x =[x_1,x_2,...,x_n]\))。\(b_0\)是偏置。權重矢量確定決策邊界的方向,而偏置點確定其位置。現在,將決策邊界定義為這些超平面之間的中間,因此表示為\(w^Tx + b_0 = 0\)。從支持向量到決策邊界的最小距離由\(distance_{support vectors}=\frac{1}{\|w\|}\)給出。間隔是此距離的兩倍,因此我們需要最大化此間隔。也就是說,我們需要使用一些約束來最小化新函數\(L(w,b_0)\),這些約束可以表示如下:
其中\(t_i\)是每類的標簽,\(t_i\in[-1,1]\).
非線性可分數據
考慮一些不能用直線分成兩部分的數據。例如,考慮一維數據,其中'X'位於-3和+3,而'O'位於-1和+1。顯然,它不是線性可分離的。但是有解決這些問題的方法。如果我們可以使用函數\(f(x)=x^2\)映射此數據集,則在線性可分離的9處獲得'X',在1處獲得'O'。
否則,我們可以將此一維數據轉換為二維數據。我們可以使用\(f(x)=(x,x^2)\)函數來映射此數據。然后,'X'變成(-3,9)和(3,9),而'O'變成(-1,1)和(1,1)。這也是線性可分的。簡而言之,低維空間中的非線性可分離數據更有可能在高維空間中變為線性可分離。
通常,可以將d維空間中的點映射到某個D維空間\((D> d)\),以檢查線性可分離性的可能性。有一個想法可以通過在低維輸入(特征)空間中執行計算來幫助在高維(內核)空間中計算點積。我們可以用下面的例子來說明。
考慮二維空間中的兩個點,\(p=(p_1,p_2)\)和\(q=(q_1,q_2)\)。令\(ϕ\)為映射函數,它將二維點映射到三維空間,如下所示:
\begin{aligned} K(p,q) = \phi(p).\phi(q) &= \phi(p)^T \phi(q) \ &= (p_{1}2,p_{2}2,\sqrt{2} p_1 p_2).(q_{1}2,q_{2}2,\sqrt{2} q_1 q_2) \ &= p_1 q_1 + p_2 q_2 + 2 p_1 q_1 p_2 q_2 \ &= (p_1 q_1 + p_2 q_2)^2 \ \phi(p).\phi(q) &= (p.q)^2 \end{aligned}
如何選擇參數C?顯然,這個問題的答案取決於訓練數據的分布方式。盡管沒有一般性的答案,但考慮以下規則是很有用的:
- C的值越大,解決方案的分類錯誤越少,但寬度也越小。考慮到在這種情況下,進行錯誤分類錯誤是昂貴的。由於優化的目的是最小化參數,因此幾乎沒有誤分類的錯誤。
- C的值越小,解決方案的寬度就越大,分類誤差也越大。在這種情況下,最小化對總和項的考慮不多,因此它更多地集中在尋找具有大間隔的超平面上。
附加資源
- NPTEL notes on Statistical Pattern Recognition, Chapters 25-29.