欢迎访问我的博客首页。
支持向量机
在深度学习出现之前,相比于 knn、神经网络、决策树,SVM 是机器学习算法中处理复杂问题(如图像识别、人脸识别)效果最好的算法。
1. 间隔与支持向量
超平面是 n 维欧氏空间中余维度等于 1 的线性子空间。它是 2 维空间的直线、3 维空间的平面在 n 维空间的推广。
图
1
支
持
向
量
与
间
隔
图\ 1 \quad支持向量与间隔
图 1支持向量与间隔
支持向量机的基本功能是 2 分类,它的作用就是找到一个超平面,把 n 维空间中的正负样本点分开。n 维空间的超平面方程和点到超平面的距离公式如下:
w
T
x
+
b
=
0.
(1)
w^Tx + b = 0. \tag{1}
wTx+b=0.(1)
r
=
∣
w
T
x
+
b
∣
∣
∣
w
∣
∣
.
(2)
r = \frac{|w^Tx + b|}{||w||}. \tag{2}
r=∣∣w∣∣∣wTx+b∣.(2)
当 w 的维度为 1 时上面的两个方程分别是平面中的直线方程和二维点到直线的距离公式;当 w 的维度为 2 时上面的两个方程分别是空间中的平面方程和三维点到平面的距离公式。
用 1 表示正样本,-1 表示负样本,容量为 m 的训练样本可以表示为
D
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
m
,
y
m
)
}
,
y
i
∈
{
−
1
,
1
}
D = \{ (x_1, y_1), (x_2, y_2), ..., (x_m, y_m) \}, \quad y_i \in \{ -1, 1 \}
D={(x1,y1),(x2,y2),...,(xm,ym)},yi∈{−1,1}。如果超平面
(
w
,
b
)
(w, b)
(w,b) 能将训练样本 D 正确分类,则对于
(
x
i
,
y
i
)
∈
D
(x_i, y_i) \in D
(xi,yi)∈D,若
y
i
=
1
y_i = 1
yi=1 则
w
T
x
i
+
b
>
0
w^Tx_i + b > 0
wTxi+b>0,若
y
i
=
−
1
y_i = -1
yi=−1 则
w
T
x
i
+
b
<
0
w^Tx_i + b < 0
wTxi+b<0。我们为正负样本定两个边界:
{ w T x i + b ≥ + 1 , y i = + 1 ; w T x i + b ≤ − 1 , y i = − 1. (3) \begin{cases} w^T x_i + b \geq +1, \quad y_i = +1; \\ w^T x_i + b \leq -1, \quad y_i = -1. \tag{3} \end{cases} {wTxi+b≥+1,yi=+1;wTxi+b≤−1,yi=−1.(3)
距离超平面最近的几个正样本点和负样本点分别在这两个边界上,它们使公式 (3) 的等号成立,称为支持向量。这两个边界的距离
γ = 2 ∣ ∣ w ∣ ∣ . (4) \gamma = \frac{2}{||w||}. \tag{4} γ=∣∣w∣∣2.(4)
欲找到最大间隔的划分超平面,就要找到满足公式 (3) 的参数 w 和 b 使 γ \gamma γ 最大,即
max w , b 2 ∣ ∣ w ∣ ∣ s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . . , m . (5) {\underset {w, b}{\operatorname {max} }}\frac{2}{||w||} \quad s.t. \; y_i(w^T x_i + b) \geq 1, \quad i = 1, 2, ..., m. \tag{5} w,bmax∣∣w∣∣2s.t.yi(wTxi+b)≥1,i=1,2,...,m.(5)
上式等价于
min w , b 1 2 ∣ ∣ w ∣ ∣ 2 s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . . , m . (6) {\underset {w, b}{\operatorname {min} }}\frac{1}{2}||w||^2 \quad s.t. \; y_i(w^T x_i + b) \geq 1, \quad i = 1, 2, ..., m.\tag{6} w,bmin21∣∣w∣∣2s.t.yi(wTxi+b)≥1,i=1,2,...,m.(6)
这就是支持向量机的基本型。
2. 对偶问题
我们希望求解公式 (6) 来得到大间隔划分超平面所对应的模型
f ( x ) = w T x + b . (7) f(x) = w^T x + b. \tag{7} f(x)=wTx+b.(7)
公式 (6) 是一个凸二次规划问题,可以使用现成的优化计算包求解,下面介绍更高效的方法。对公式 (6) 使用拉格朗日乘子法可得到其对偶问题
L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 m α i ( 1 − y i ( w T x i + b ) ) , (8) L(w, b, \alpha) = \frac{1}{2}||w||^2 + \sum_{i = 1}^{m} \alpha_i (1 - y_i(w^T x_i + b)), \tag{8} L(w,b,α)=21∣∣w∣∣2+i=1∑mαi(1−yi(wTxi+b)),(8)
其中 α = ( α 1 ; α 2 ; . . . ; α m ) \alpha = (\alpha_1; \alpha_2; ...; \alpha_m) α=(α1;α2;...;αm)。