机器学习算法–SVM
读书笔记
支持向量机(support vector machine)是监督学习中最有影响力的方法之一。类似于逻辑回归,这个模型也是基于线性函数
w
T
x
+
b
w^Tx+b
wTx+b的。不同于逻辑回归的是,支持向量机不输出概率,只输出类别。
f
(
x
)
=
s
i
g
n
(
w
T
x
+
b
)
f(x)=sign(w^Tx+b)
f(x)=sign(wTx+b)
当
w
T
x
+
b
w^Tx+b
wTx+b为正时,预测为正类,否则为负类。
支持向量机的主要思想是基于训练样本集
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)}, y_i\in{-1,1}
D=(x1,y1),(x2,y2),...,(xm,ym),yi∈−1,1在样本空间找到一个划分超平面,将不同类别的样本分开。这个超平面就是
w
T
x
+
b
=
0
w^Tx+b=0
wTx+b=0。对于不同的划分超平面而言,其效果也是不同的。很明显,在图中粗线条的超平面从鲁棒性以及防止过拟合的能力上要优于其余超平面。
求样本空间中的点到超平面的距离,公式如下:
d
=
∣
w
T
x
+
b
∣
∣
∣
w
∣
∣
d = \frac{|w^Tx+b|}{||w||}
d=∣∣w∣∣∣wTx+b∣
其中
∣
∣
w
∣
∣
||w||
∣∣w∣∣表示
L
2
范
数
L_2范数
L2范数。
假设超平面
(
w
,
b
)
(w, b)
(w,b)能够将训练样本正确分类,即对于
(
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
≤
0
,
y
i
=
−
1
\left\{\begin{matrix}w^Tx_i+b\ge+1, y_i=+1; \\ w^Tx_i+b\leq0, y_i=-1 \end{matrix}\right.
{wTxi+b≥+1,yi=+1;wTxi+b≤0,yi=−1
如图所示,距离超平面最近的这几个训练样本点使得上式成立,它们被称为“支持向量”(support vector),两个异类支持向量到超平面的距离之和为
γ
=
2
∣
∣
w
∣
∣
\gamma=\frac{2}{||w||}
γ=∣∣w∣∣2
它被称为“间隔”。
所以,我们的最优化问题为
max
w
,
b
2
∣
∣
w
∣
∣
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
.
.
.
,
m
\max_{w,b}\frac{2}{||w||} s.t.y_i(w^Tx_i+b)\ge1, i=1,2,...,m
w,bmax∣∣w∣∣2s.t.yi(wTxi+b)≥1,i=1,2,...,m
该最优化问题等价于:
min
w
,
b
1
2
∣
∣
w
∣
∣
2
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
.
.
.
,
m
\min_{w,b}\frac{1}{2}||w||^2 s.t. y_i(w^Tx_i+b)\ge1, i=1,2,...,m
w,bmin21∣∣w∣∣2s.t.yi(wTxi+b)≥1,i=1,2,...,m
上述内容就是支持向量机的基本理论。