第六章 支持向量机
6.1 间隔与支持向量
支持向量机是一种分类学习的思想,想象在一个平面上分布着一些样本,我们划一条线,就能将不同的样本分开
上面只是对于部分数据而言,划出的一些能够将他们分开的线,但是对于一些线来讲,可能不能很好的划分新的数据,所以我们要计算这个线应该如何去划分。得到一条最好的线,称之为超平面
假设这条线形式如下
w
T
x
+
b
=
0
w^Tx+b=0
wTx+b=0
那么任意点到该线的距离为
r
=
∣
w
T
x
+
b
∣
∣
∣
w
∣
∣
r=\frac{|w^Tx+b|}{||w||}
r=∣∣w∣∣∣wTx+b∣
单拿上图的纵坐标
x
2
x_2
x2,横坐标
x
1
x_1
x1,可以视作一条数据的两个特征,两个特征可以在坐标轴上表示出一个点来,我们用下面的公式来表示
{
w
T
x
i
+
b
≥
+
1
,
y
i
=
+
1
w
T
x
i
+
b
≤
+
1
,
y
i
=
−
1
\begin{cases} w^Tx_i+b\geq+1,y_i=+1\\ w^Tx_i+b\leq+1,y_i=-1\\ \end{cases}
{wTxi+b≥+1,yi=+1wTxi+b≤+1,yi=−1
为何
y
i
y_i
yi是正负1呢?
因为对于上面这个任务来讲,就是一个二分类任务, y i y_i yi的意义只是标签,不代表其他数值,所以对于上面这个方程组来讲,你不觉得它更像是一个决策树的结点吗, w T x i + b ≥ + 1 w^Tx_i+b\geq+1 wTxi+b≥+1的数据,让其标签 y i = + 1 y_i=+1 yi=+1,反之则是 , y i = − 1 ,y_i=-1 ,yi=−1,至于中间 − 1 ∼ + 1 -1\sim+1 −1∼+1的点,下面来解释
我们知道根据上面的方程组,离超平面最近的平行线到超平面的距离应当是
1
∣
∣
w
∣
∣
\frac{1}{||w||}
∣∣w∣∣1
我们称之为支持向量
计算涉及到高中知识,也就是计算两条平行线之间的距离( w T x i + b = 1 w^Tx_i+b=1 wTxi+b=1到 w T x i + b = 0 w^Tx_i+b=0 wTxi+b=0的距离)
那么两侧距离加起来就是间隔的距离,是上面的两倍 2 ∣ ∣ w ∣ ∣ \frac{2}{||w||} ∣∣w∣∣2
显然这两条支持向量到超平面的距离应该是相等的,并且间隔距离要最大化,这延伸为一个优化问题
m
i
n
1
2
∣
∣
w
∣
∣
2
min \frac{1}{2}||w||^2
min21∣∣w∣∣2
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1.
i
=
1
,
2...
s.t. y_i(w^Tx_i+b)\geq1.i=1,2...
s.t.yi(wTxi+b)≥1.i=1,2...
6.2 对偶问题
使用拉格朗日乘子法来得到优化问题的对偶问题,求解对偶问题来得到原问题的解。
具体就是,对上面这个优化问题函数添加拉格朗日乘子
α
i
≥
0
\alpha_i\geq 0
αi≥0,那么拉格朗日问题就可以表示如下
L
(
w
,
b
,
α
)
=
1
2
∣
∣
α
∣
∣
2
+
∑
i
=
1
m
α
i
(
1
−
y
i
(
w
T
x
i
+
b
)
)
L(w,b,\alpha) = \frac{1}{2}||\alpha||^2+\sum_{i=1}^m\alpha_i(1-y_i(w^Tx_i+b))
L(w,b,α)=21∣∣α∣∣2+i=1∑mαi(1−yi(wTxi+b))
对
w
w
w和
b
b
b求偏导得
w
=
∑
i
=
1
m
α
i
y
i
x
i
w=\sum_{i=1}^m\alpha_iy_ix_i
w=i=1∑mαiyixi
0
=
∑
i
=
1
m
α
i
y
i
0=\sum_{i=1}^m\alpha_iy_i
0=i=1∑mαiyi
代入解出
α
\alpha
α,求出
w
、
b
w、b
w、b即可得到模型
著名算法有SMO,通过固定其他参数后,仅仅优化两个参数,来减小计算量,使得算法高效
6.3 核函数
上面讨论的问题是线性可分的,然而现实问题中大多都不是线性可分,可以将远始样本映射到更高维的空间,进而可以进行分类,比如二维的点映射到三维
如果样本属性有限,那么一定存在一个高维特征空间使得样本可分
首先来一个映射
ϕ
(
x
)
\phi(x)
ϕ(x)将x映射到高维,那么高维空间中的超平面可表示如下
f
(
x
)
=
w
T
ϕ
(
x
)
+
b
f(x)=w^T\phi(x)+b
f(x)=wTϕ(x)+b
类似低维的优化问题一样,只是把
x
x
x变为
ϕ
(
x
)
\phi(x)
ϕ(x),这样最后得到优化问题的对偶问题
max
α
∑
i
=
1
m
α
i
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
ϕ
(
x
i
)
T
ϕ
(
x
j
)
\max_{\alpha}\sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_j\phi(x_i)^T\phi(x_j)
αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjϕ(xi)Tϕ(xj)
s
.
t
.
∑
i
=
1
m
α
i
y
i
=
0
s.t.\sum_{i=1}^m\alpha_iy_i=0
s.t.i=1∑mαiyi=0
上面这个式子涉及到高维特征空间的内积运算,由于维数可能很高,所以计算很难,因此引入了核函数,这个函数使得
ϕ
(
x
i
)
T
ϕ
(
x
j
)
\phi(x_i)^T\phi(x_j)
ϕ(xi)Tϕ(xj)变为
k
(
x
i
,
x
j
)
k(x_i,x_j)
k(xi,xj),也就是说不用先去计算高维空间的特征函数了
满足什么要求才是核函数?
一个对称函数所对应的核矩阵半正定
什么样的核函数是适合的?
并不知道,我们需要为svm去选择合适当前任务的核函数
常用核函数
- 线性核
- 多项式核
- 高斯核
- 拉普拉斯核
- Sigmoid核
同时核函数之间的线性组合、直积,与普通函数的乘积也都是核函数
6.4 软间隔
前面我们说一定存在一个超平面可以将数据完全分类,但是那是在拥有合适核函数的情况下,有时候我们可能找不到这样的核函数,而且即使偶然分对了,那只是训练集,我们也没有办法判断它是否过拟合
缓解这些问题的一个办法是允许一些样本出错,为此提出软间隔
也就是所,我们不一定要全部分类成功,只要正确率在一定范围就足够好了,也就是局部最优