support vector machine(svm),即支撐向量機,是一種用於二分類的有監督的學習模型,分為硬邊界的svm和軟邊界的svm。
硬邊界svm是用乙個超平面,將空間中兩種不同標記的點分隔開來,使得相同標記的點都被分到同一邊,且讓離超平面最近的點到超平面的距離盡可能遠。如下圖所示。
顯然,該超平面位置只與最近的這些點有關,點在座標中可以用向量表示,這些向量就叫做支撐這個超平面的支撐向量,這也是支撐向量機名字的由來。用數學表示為
min θ
12∑j
=1nθ
j2s.
t.θt
x(i)
≥1if
y(i)
=1,θ
tx(i
)≤−1
ify(
i)=0.
\min_\theta\frac\sum_^n\theta_j^2\qquad \\ s.t. \quad \theta^tx^\geq 1 \quad if \quad y^=1,\\ \qquad\theta^tx^\leq -1 \quad if\quad y^=0.
θmin2
1j=
1∑n
θj2
s.t.
θtx(
i)≥1
ify(
i)=1
,θtx
(i)≤
−1if
y(i)
=0.從公式來看,約束條件是點跟向量θ
\theta
θ的內積,兩個向量內積的數學含義是乙個向量到另外乙個向量的投影長度乘以另乙個向量的長度。如果將θ
\theta
θ理解為超平面的法向量,約束條件左邊θtx
(i)\theta^tx^
θtx(i)
就是點到超平面的距離乘以法向量的長度,當所有約束條件被滿足時,法向量長度必須大於等於所有點到超平面距離的倒數,其最小值為離超平面距離最近的點的距離的倒數。約束條件的成立保證了超平面將兩邊的點隔開。目標函式則是最小化法向量長度的平方,即最小化法向量長度,即最大化與超平面最近的點到超平面的距離。目標函式保證了最大化最近點到超平面的距離。
在上式中,預設點的最後一維都為1,θ
\theta
θ第一維為截距b
bb,這裡來考慮一下b
bb的作用。舉乙個兩維度的例子,假設這裡去掉點的第二維常數1,點的分布如下入左邊所示。將θtx
(i)\theta^tx^
θtx(i)
理解為點到超平面的距離要求超平面必須經過原點,在一維座標中這樣的超平面也只有原點本身,顯然這時候svm找不到滿足約束的超平面。接著,我們將第二維度加上,這時候情況就不同了,經過原點的直線都可以作為超平面,svm求出的超平面如下圖右邊所示。因此,截距b
bb其實是起到了公升維的作用。當然,如果這裡將任意紅藍兩點互換,即使是二維也svm也得不到滿足約束的超平面,這時候就需要使用軟邊界了。
軟邊界的svm求解的問題為
min θ
12∣∣
θ∣∣+
c∑i=
1mξi
s.t.
θtx(
i)≥1
−ξii
fy(i
)=1,
θtx(
i)≤−
1+ξi
ify(
i)=0.
\min_\theta\frac||\theta||+c\sum_^m\xi_i\qquad \\ s.t. \quad \theta^tx^\geq 1 - \xi_i \quad if \quad y^=1,\\ \qquad\theta^tx^\leq -1+\xi_i \quad if\quad y^=0.
θmin2
1∣∣
θ∣∣+
ci=1
∑mξ
is.
t.θt
x(i)
≥1−ξ
iif
y(i)
=1,θ
tx(i
)≤−1
+ξi
ify(
i)=0
.可以看出這裡對約束條件有所放鬆,只要ξ
i\xi_i
ξi足夠大約束條件就一定可以被滿足,因此軟邊界svm不存在約束條件不能被滿足的情況。在硬約束svm理解的基礎上,不難理解軟約束svm。這裡如果以法向量的長度作為一單位距離,那麼軟約束svm就是希望將兩類點分別分到兩邊,且以法向量長度規定了margin的大小,越過這個margin的點將有相應的懲罰ξ
i\xi_i
ξi。目標函式則是對法向量長度以及越過規定線的點的懲罰,注意給定乙個超平面時法向量的長度和ξ
i\xi_i
ξi是負相關的。
SVM中的軟間隔最大化與硬間隔最大化
參考文獻 1.硬間隔最大化 對於以上的kkt條件可以看出,對於任意的訓練樣本總有ai 0或者yif xi 1 0即yif xi 1 1 當ai 0時,代入最終的模型可得 f x b,樣本對模型沒有貢獻 2 當ai 0時,則必有yif xi 1,注意這個表示式,代表的是所對應的樣本剛好位於最大間隔邊界...
視窗的最大化
原來的 15.13 判斷視窗的最大化 最小化狀態並進行控制 mfc中的cwnd類提供了下面兩個函式用於判斷視窗的最大化 最小化狀態,其子類繼承了這些函式 iszoomed 判斷視窗是否處於最大化狀態。isiconic 判斷視窗是否處於最小化狀態。可以使用cwnd showwindow函式設定視窗的顯...
ACM Yougth的最大化
時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述yougth現在有n個物品的重量和價值分別是wi和vi,你能幫他從中選出k個物品使得單位重量的價值最大嗎?輸入有多組測試資料 每組測試資料第一行有兩個數n和k,接下來一行有n個數wi和vi。1 k n 10000 1 wi,vi ...