SVM简介
1、是一种二分类模型;
2、基本模型是:定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;
3、核技巧使得SVM成为实质上的非线性分类器;
4、学习策略:间隔最大化;
5、学习算法:求解凸二次规划的最优化算法;
6、三个模型(由简至繁所分的三类SVM模型):
(1)线性可分SVM,又称硬间隔 SVM,当训练数据线性可分时,通过硬间隔最大化学到的线性分类器;
(2)线性SVM,又称软间隔SVM,当训练数据近似线性可分时,通过软间隔最大化学到的线性分类器;
(3)非线性SVM,当训练数据不可分时,通过核技巧及软间隔最大化学到的非线性SVM.
7、核函数:当输入空间为欧氏空间或者离散集合,特征空间为希尔伯特空间,核函数表示将输入从输入空间映射到特征空间得到的特征向量之间的内积,使用核函数可以学习非线性支持向量机,等价于隐式地在高维的特征空间中学习线性支持向量机。
8、SMO,即序列最小最优化算法,是一种快速学习算法。
线性可分SVM和硬间隔最大化
问题的引入和感知机是一样的,只不过感知机利用误分类最小的策略,求得分离超平面,这时候的解有无穷多个,而线性可分SVM则利用间隔最大化求解最优分离超平面,此时的解是唯一的。
问题引入简单描述如下:
给定线性可分训练数据集(二分类问题,标签只有2类),通过间隔最大化(等价于求解相应的凸二次规划问题)学习得到分离超平面:
w
∗
⋅
x
+
b
∗
=
0
w^*\cdot x+b^*=0
w∗⋅x+b∗=0和相应的分类决策函数(即支持向量机):
f
(
x
)
=
s
i
g
n
(
w
∗
⋅
x
+
b
∗
)
f(x)=sign(w^*\cdot x+b^*)
f(x)=sign(w∗⋅x+b∗)
几个概念
间隔:
(1)函数间隔: 一个点距离分离超平面的远近可以表示分类预测的确信程度,在超平面
w
⋅
x
+
b
=
0
w\cdot x+b=0
w⋅x+b=0确定的情况下,
∣
w
⋅
x
+
b
∣
|w\cdot x+b|
∣w⋅x+b∣可以相对地表示点
x
x
x距离超平面的远近,且
w
⋅
x
+
b
w\cdot x+b
w⋅x+b的符号可以表示分类是否正确,故定义函数间隔的概念如下:
a. 超平面
(
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(w\cdot x_i+b)
γi^=yi(w⋅xi+b)b.超平面
(
w
,
b
)
(w,b)
(w,b)关于训练集
T
T
T的函数间隔:
γ
^
=
min
i
=
1
,
⋯
 
,
N
γ
i
^
\hat{\gamma} =\min\limits_{i=1,\cdots, N} \hat{\gamma_i}
γ^=i=1,⋯,Nminγi^
(2)几何间隔: 由于上述间隔存在下述问题:即只要成比例地改变
w
w
w和
b
b
b,超平面并没有变,但函数间隔却变了,比如分别变为
2
w
2w
2w和
2
b
2b
2b,虽然超平面并未改变,函数间隔却成了原来的2倍,所以为解决这个麻烦,提出了几何间隔:
a. 超平面
(
w
,
b
)
(w,b)
(w,b)关于样本点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)的几何间隔:
γ
i
=
γ
i
^
∣
∣
w
∣
∣
\gamma_i=\frac{\hat{\gamma_i}}{||w||}
γi=∣∣w∣∣γi^b.超平面
(
w
,
b
)
(w,b)
(w,b)关于训练集
T
T
T的几何间隔:
γ
=
γ
^
∣
∣
w
∣
∣
\gamma=\frac{\hat{\gamma}}{||w||}
γ=∣∣w∣∣γ^此时,如果成比例改变
w
w
w和
b
b
b,则函数间隔改变但几何间隔不变。
(3)间隔最大化: 对线性可分的训练数据集而言,线性可分分离超平面有无数多个(等价于感知机),但是几何间隔最大的分离超平面是唯一的,支持向量机学习的基本想法是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。
间隔最大化的解释:对训练数据集找到几何间隔最大的超平面意味着以充分大的确信度对训练数据进行分类(而感知机则只是正确分类,可能确信度并不高),也就是说,即使对最难分类的实例点(离超平面最近的点),也有足够大的确信度将它们分开,这样的超平面应该对未知的新的实例有很好的分类预测能力。
SVM的问题是:最大化超平面
(
w
,
b
)
(w,b)
(w,b)关于训练数据集的几何间隔
γ
\gamma
γ,表述成公式则是:
max
w
,
b
γ
\max \limits_{w,b} \gamma
w,bmaxγ
s
.
t
.
y
i
(
w
∣
∣
w
∣
∣
⋅
x
i
+
b
∣
∣
w
∣
∣
)
≥
γ
,
i
=
1
,
2
,
⋯
 
,
N
s.t.\ \ \ \ \ y_i(\frac{w}{||w||}\cdot x_i+\frac{b}{||w||})\geq \gamma,\ i=1,2,\cdots,N
s.t. yi(∣∣w∣∣w⋅xi+∣∣w∣∣b)≥γ, i=1,2,⋯,N改写成函数间隔则是:
max
w
,
b
γ
^
∣
∣
w
∣
∣
\max \limits_{w,b} \frac{\hat\gamma}{||w||}
w,bmax∣∣w∣∣γ^
s
.
t
.
y
i
(
w
⋅
x
i
+
b
)
≥
γ
^
,
i
=
1
,
2
,
⋯
 
,
N
s.t.\ \ \ \ \ y_i({w}\cdot x_i+{b})\geq \hat\gamma,\ i=1,2,\cdots,N
s.t. yi(w⋅xi+b)≥γ^, i=1,2,⋯,N由于当函数间隔变为
λ
γ
^
\lambda\hat\gamma
λγ^时,则相应的
w
w
w和
b
b
b变为
λ
w
\lambda w
λw和
λ
b
\lambda b
λb即可,而这一转变对结果并没有影响,因为求得的超平面并没有改变,所以说明,函数间隔的取值并不影响最优化问题的解,为了方便求解,人为地令
γ
^
\hat\gamma
γ^为1,并通过一定的转换,最终的最优化问题变成下述我们熟悉的样子:
min
w
,
b
1
2
∣
∣
w
∣
∣
2
\min\limits_{w,b}\ \ \ \frac{1}{2}||w||^2
w,bmin 21∣∣w∣∣2
s
.
t
.
y
i
(
w
⋅
x
i
+
b
)
−
1
≥
0
,
1
,
2
,
⋯
 
,
N
s.t. \ \ \ y_i(w\cdot x_i+b)-1\geq0,\ \ \ 1,2,\cdots,N
s.t. yi(w⋅xi+b)−1≥0, 1,2,⋯,N写成平方的样子是因为后面求解时要求导,这样写后续的求解更方便。
另,可以证明线性可分训练数据集的最大间隔分离超平面是存在且唯一的,并且分离超平面能将数据集中的两类点完全正确地分开。
支持向量: 训练数据集中的样本点中与分离超平面距离最近的样本点,即满足下式的样本点: y i ( w ⋅ x i + b ) − 1 = 0 y_i(w\cdot x_i+b)-1=0 yi(w⋅xi+b)−1=0其中,正例点位于超平面 H 1 : w ⋅ + b = 1 H_1:w\cdot+b=1 H1:w⋅+b=1反例则位于 H 2 : w ⋅ + b = − 1 H_2:w\cdot+b=-1 H2:w⋅+b=−1这两个超平面称作间隔边界,两者的距离成为间隔,间隔依赖于分离超平面的法向量 w w w,等于 2 ∣ ∣ w ∣ ∣ \frac{2}{||w||} ∣∣w∣∣2.决定分离超平面的只有支持向量,其它的点不起作用,所以此模型起名支持向量机,支持向量的个数一般很少,故支持向量机由很少的“重要的”训练样本确定。
学习算法
通常是应用拉格朗日对偶性,通过求对偶问题的解,进而得到上面那个原始问题的解,原因是对偶问题更容易求解,二是可以自然引入核函数,进而推广到非线性分类问题。算法如下(具体的推导免):
线性可分支持向量机学习算法:
输入:线性可分训练集T;
输出:分离超平面和分类决策函数。
(1)构造并求解约束最优化问题(即):
min
α
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
⋅
x
j
)
−
∑
i
=
1
N
α
i
\min\limits_{\alpha}{\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)-\sum_{i=1}^{N}\alpha_i}
αmin21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαi
s
.
t
.
∑
i
=
1
N
α
i
y
i
=
0
s.t. \ \ \ \ \sum_{i=1}^{N}\alpha_iy_i=0
s.t. i=1∑Nαiyi=0
α
i
≥
0
,
i
=
1
,
2
,
⋯
 
,
N
\alpha_i\geq0,\ \ \ \ i=1,2,\cdots,N
αi≥0, i=1,2,⋯,N原问题现在变成了这个问题,求解出这个问题后,便可以根据其结果
α
∗
=
(
α
1
∗
,
α
2
∗
,
⋯
 
,
α
N
∗
)
\alpha^*=(\alpha_1^*,\alpha_2^*,\cdots,\alpha_N^*)
α∗=(α1∗,α2∗,⋯,αN∗)由下式得到
w
∗
w^*
w∗和
b
∗
b^*
b∗(有定理支持)。这个问题是对偶最优化问题,故可用SMO算法求解。
(2)得出:
w
∗
=
∑
i
=
1
N
α
i
∗
y
i
x
i
w^*=\sum_{i=1}^{N}\alpha_i^*y_ix_i
w∗=i=1∑Nαi∗yixi
b
∗
=
y
j
−
∑
i
=
1
N
α
i
∗
y
i
(
x
i
⋅
x
j
)
b^*=y_j-\sum_{i=1}^{N}\alpha_i^*y_i(x_i\cdot x_j)
b∗=yj−i=1∑Nαi∗yi(xi⋅xj)其中
j
j
j是在
α
∗
\alpha^*
α∗中选择的正分量
α
j
∗
>
0
\alpha_j^*>0
αj∗>0的下标;
(3)分离超平面:
w
∗
⋅
x
+
b
∗
=
0
w^*\cdot x+b^*=0
w∗⋅x+b∗=0分类决策函数:
f
(
x
)
=
s
i
g
n
(
w
∗
⋅
x
+
b
∗
)
f(x)=sign(w^*\cdot x+b^*)
f(x)=sign(w∗⋅x+b∗)