支持向量机是一种二类分类模型。基本模型是定义在特征空间上的间隔最大的线性分类器。支持向量机还包括核技巧, 这使它称为实质上的非线性分类器。支持向量机学习策略是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。支持向量机的学习算法是求解凸二次规划的最优化算法。
支持向量机包括:线性可分支持向量机,线性支持向量机,非线性支持向量机。
- 输入空间:欧式空间或离散集合
特征空间:欧式空间或希尔伯特空间
线性可分支持向量机、线性支持向量机:假设这两个空间的元素一一对应,并将输入空间中的输入映射为特征空间中的特征向量;
非线性支持向量机:利用一个从输入空间到特征空间的非线性映射将输入映射为特征向量;
支持向量机的学习是在特征空间进行的。
一.线性可分支持向量机与硬间隔最大化
1.1 线性可分支持向量机
假设特征空间上的训练数据集:
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
N
,
y
N
)
}
T=\left \{ (x_{1},y_{1}),(x_{2},y_{2}),...,(x_{N},y_{N}) \right \}
T={(x1,y1),(x2,y2),...,(xN,yN)}
其中,
x
i
ϵ
χ
=
R
n
x_{i}\epsilon \chi =R^{n}
xiϵχ=Rn,
y
i
ϵ
Y
=
{
+
1
,
−
1
}
y_{i}\epsilon Y =\left \{ +1,-1 \right \}
yiϵY={+1,−1},i=1,2,3,…,N,x为特征向量,y为x的类标记,y=+1时x为正例,y=-1时x为负例。
学习的目标是在特征空间中找到一个超平面,将样本分到不同的类别。
线性可分支持向量机:给定线性可分训练数据集,通过 间隔最大化或等价地求解相应的凸二次规划问题学习得 到的分离超平面为:
w
∗
x
+
b
∗
=
0
w^{*}x+b^{*} = 0
w∗x+b∗=0
对应的决策函数:
f
(
x
)
=
s
i
g
n
(
w
∗
x
+
b
∗
)
f(x)=sign(w^{*}x+b^{*})
f(x)=sign(w∗x+b∗)
线性可分支持向量机对应着将两类数据正确划分并且间隔最大的直线,如下:
1.2 函数间隔和几何间隔
一般来说,一个点间隔分离超平面的距离可以表示分类预测的确信程度。在超平面
w
x
+
b
=
0
wx+b=0
wx+b=0确定的情况下,
∣
w
x
+
b
∣
\left | wx+b\right |
∣wx+b∣能够相对地表示点到超平面距离的远近。
w
x
+
b
=
0
wx+b=0
wx+b=0与
y
y
y符号的一致性能表示分类是否准确。所以
y
(
w
x
+
b
)
y(wx+b)
y(wx+b)能够表示分类的正确性和确信度,这就是函数间隔的概念。
超平面
(
w
,
b
)
(w,b)
(w,b)关于样本
(
x
i
,
y
i
)
(x_{i},y_{i})
(xi,yi)的函数间隔:
γ
^
i
=
y
i
(
w
x
i
+
b
)
\hat{\gamma}_{i}=y_{i}(wx_{i}+b)
γ^i=yi(wxi+b)
样本间的函数间隔:
γ
^
=
m
i
n
i
=
1
,
2
,
3
,
.
.
.
N
γ
^
i
\hat{\gamma}=\underset{i=1,2,3,...N}{min}\hat{\gamma}_{i}
γ^=i=1,2,3,...Nminγ^i
函数间隔表示分类的正确性和确信度,但当w和b成比例变化时,超平面
w
x
+
b
=
0
wx+b=0
wx+b=0不会有变化,函数间隔却会变化,于是引入几何间隔。即:
超平面和样本的几何间隔:
γ
i
=
y
i
(
w
∥
w
∥
x
i
+
b
∥
w
∥
)
=
γ
^
i
∥
w
∥
\gamma_{i}=y_{i}(\frac{w}{\left \| w \right \|}x_{i}+\frac{b}{\left \| w \right \|})=\frac{\hat{\gamma}_{i}}{\left \| w \right \|}
γi=yi(∥w∥wxi+∥w∥b)=∥w∥γ^i
样本间的几何间隔:
γ
=
γ
^
∥
w
∥
\gamma=\frac{\hat{\gamma}}{\left \| w \right \|}
γ=∥w∥γ^
1.3 间隔最大化
最大间隔分类超平面(线性可分训练数据集的最大间隔分离超平面是存在且唯一的):
得到线性可分支持向量机学习的最优化问题:
算法流程如下图:
1.4 支持向量和间隔边界
在线性可分情况下,训练数据集的样本点中与分离超平面距离最近的样本点的实例称为支持向量。
支持向量是使约束条件式等号成立的点,即:
y
i
(
w
x
i
+
b
)
−
1
=
0
y_{i}(wx_{i}+b)-1=0
yi(wxi+b)−1=0
对于正例点(y=+1):
H
1
:
w
x
+
b
=
1
H_{1}:wx+b=1
H1:wx+b=1
对于负例点:
H
2
:
w
x
+
b
=
−
1
H_{2}:wx+b=-1
H2:wx+b=−1
如图在
H
1
,
H
2
H_{1},H_{2}
H1,H2上的点就是支持向量。
1.5 对偶形式
应用拉格朗日对偶性,通过求解对偶问题来获得原始问题的最优解,这就是对偶算法。优点有二:1.对偶问题往往更容易求解;2.自然引入核函数,进而推广到非线性分类问题。
二.线性支持向量机与软间隔最大化
面对线性不可分训练集,线性可分支持向量机就无法工作了。于是就引入了线性支持向量机来对线性不可分数据进行分类,两者区别就是将硬间隔最大化修改为软间隔最大化。
所谓的软间隔,是相对于硬间隔说的,我们可以认为线性可分SVM的学习方法属于硬间隔最大化。
线性SVM对训练集里面的每个样本
(
x
i
,
y
i
)
(x_{i},y_{i})
(xi,yi)引入了一个松弛变量
ξ
i
≥
0
ξ_{i}≥0
ξi≥0,使函数间隔加上松弛变量大于等于1,也就是说:
y
i
(
w
∙
x
i
+
b
)
≥
1
−
ξ
i
y_i(w\bullet x_i +b) \geq 1- \xi_i
yi(w∙xi+b)≥1−ξi
对比硬间隔最大化,可以看到样本到超平面的函数距离的要求放松了,之前是一定要大于等于1,现在只需要加上一个大于等于0的松弛变量能大于等于1就可以了。对于每个松弛变量
ξ
i
ξ_{i}
ξi,支付一个代价
ξ
i
ξ_{i}
ξi,这个就得到了软间隔最大化的SVM学习条件如下:
m
i
n
    
1
2
∣
∣
w
∣
∣
2
2
+
C
∑
i
=
1
m
ξ
i
min\;\; \frac{1}{2}||w||_2^2 +C\sum\limits_{i=1}^{m}\xi_i
min21∣∣w∣∣22+Ci=1∑mξi
s
.
t
.
    
y
i
(
w
T
x
i
+
b
)
≥
1
−
ξ
i
    
(
i
=
1
,
2
,
.
.
.
m
)
s.t. \;\; y_i(w^Tx_i + b) \geq 1 - \xi_i \;\;(i =1,2,...m)
s.t.yi(wTxi+b)≥1−ξi(i=1,2,...m)
ξ
i
≥
0
    
(
i
=
1
,
2
,
.
.
.
m
)
\xi_i \geq 0 \;\;(i =1,2,...m)
ξi≥0(i=1,2,...m)此处,
C
>
0
C>0
C>0称为惩罚参数,一般由具体的应用问题决定, C越大,对误分类的惩罚越大,C越小,对误分类的惩罚越小。最小化目标函数是为了使
1
2
∣
∣
w
∣
∣
2
2
\frac{1}{2}||w||_2^2
21∣∣w∣∣22尽量小,误分类的点尽可能的少。C是协调两者关系的正则化惩罚系数。
三.非线性支持向量机与核函数
Written with StackEdit.