Support Vector Machine(SVM),即支撑向量机,是一种用于二分类的有监督的学习模型,分为硬边界的SVM和软边界的SVM。
硬边界SVM
硬边界SVM是用一个超平面,将空间中两种不同标记的点分隔开来,使得相同标记的点都被分到同一边,且让离超平面最近的点到超平面的距离尽可能远。如下图所示。
显然,该超平面位置只与最近的这些点有关,点在坐标中可以用向量表示,这些向量就叫做支撑这个超平面的支撑向量,这也是支撑向量机名字的由来。用数学表示为
min
θ
1
2
∑
j
=
1
n
θ
j
2
s
.
t
.
θ
T
x
(
i
)
≥
1
i
f
y
(
i
)
=
1
,
θ
T
x
(
i
)
≤
−
1
i
f
y
(
i
)
=
0.
\min_\theta\frac{1}{2}\sum_{j=1}^n\theta_j^2\qquad \\ s.t. \quad \theta^Tx^{(i)}\geq 1 \quad if \quad y^{(i)}=1,\\ \qquad\theta^Tx^{(i)}\leq -1 \quad if\quad y^{(i)}=0.
θmin21j=1∑nθj2s.t.θTx(i)≥1ify(i)=1,θTx(i)≤−1ify(i)=0.
从公式来看,约束条件是点跟向量
θ
\theta
θ的內积,两个向量內积的数学含义是一个向量到另外一个向量的投影长度乘以另一个向量的长度。如果将
θ
\theta
θ理解为超平面的法向量,约束条件左边
θ
T
x
(
i
)
\theta^Tx^{(i)}
θTx(i)就是点到超平面的距离乘以法向量的长度,当所有约束条件被满足时,法向量长度必须大于等于所有点到超平面距离的倒数,其最小值为离超平面距离最近的点的距离的倒数。约束条件的成立保证了超平面将两边的点隔开。目标函数则是最小化法向量长度的平方,即最小化法向量长度,即最大化与超平面最近的点到超平面的距离。目标函数保证了最大化最近点到超平面的距离。
在上式中,默认点的最后一维都为1,
θ
\theta
θ第一维为截距
b
b
b,这里来考虑一下
b
b
b的作用。举一个两维度的例子,假设这里去掉点的第二维常数1,点的分布如下入左边所示。将
θ
T
x
(
i
)
\theta^Tx^{(i)}
θTx(i)理解为点到超平面的距离要求超平面必须经过原点,在一维坐标中这样的超平面也只有原点本身,显然这时候SVM找不到满足约束的超平面。接着,我们将第二维度加上,这时候情况就不同了,经过原点的直线都可以作为超平面,SVM求出的超平面如下图右边所示。因此,截距
b
b
b其实是起到了升维的作用。当然,如果这里将任意红蓝两点互换,即使是二维也SVM也得不到满足约束的超平面,这时候就需要使用软边界了。
软边界SVM
软边界的SVM求解的问题为
min
θ
1
2
∣
∣
θ
∣
∣
+
C
∑
i
=
1
m
ξ
i
s
.
t
.
θ
T
x
(
i
)
≥
1
−
ξ
i
i
f
y
(
i
)
=
1
,
θ
T
x
(
i
)
≤
−
1
+
ξ
i
i
f
y
(
i
)
=
0.
\min_\theta\frac{1}{2}||\theta||+C\sum_{i=1}^m\xi_i\qquad \\ s.t. \quad \theta^Tx^{(i)}\geq 1 - \xi_i \quad if \quad y^{(i)}=1,\\ \qquad\theta^Tx^{(i)}\leq -1+\xi_i \quad if\quad y^{(i)}=0.
θmin21∣∣θ∣∣+Ci=1∑mξis.t.θTx(i)≥1−ξiify(i)=1,θTx(i)≤−1+ξiify(i)=0.
可以看出这里对约束条件有所放松,只要
ξ
i
\xi_i
ξi足够大约束条件就一定可以被满足,因此软边界SVM不存在约束条件不能被满足的情况。在硬约束SVM理解的基础上,不难理解软约束SVM。这里如果以法向量的长度作为一单位距离,那么软约束SVM就是希望将两类点分别分到两边,且以法向量长度规定了margin的大小,越过这个margin的点将有相应的惩罚
ξ
i
\xi_i
ξi。目标函数则是对法向量长度以及越过规定线的点的惩罚,注意给定一个超平面时法向量的长度和
ξ
i
\xi_i
ξi是负相关的。