核心理论
在统计学习理论基础上发展而来的支持向量机(support vector mechines,SVM)算法,是一种专门研究有限样本预测的方法。作为一种二分类模型,其基本模型是作用在特征空间上的间隔最大的线性分类器,间隔最大使其有别于感知机模型。支持向量机的学习策略就是间隔最大化,这就可以将其形式化为一个求解凸二次规划的问题。
SVM三大法宝:间隔,对偶,核技巧
假设给定训练样本集合
S
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
.
.
.
}
,
y
i
⊂
{
−
1
,
1
}
S=\left \{ \left ( x_{1},y_{1}\right ),\left (x_{2} ,y_{2} \right )... \right \},y_i \subset \left \{ -1, 1\right \}
S={(x1,y1),(x2,y2)...},yi⊂{−1,1}其中,X为输入空间或输入特征空间,y是样本的类标记。为了把不同的类别分开,我们需要找到一个超平面。问题是应该找哪个?
直观上看我们应该找两类数据最中间的超平面,也就是图中红色的那条。这样才能将训练集的局限性或噪声影响降到最小,也就是最鲁棒的。
1.hard-margin SVM
上图红色的超平面可以用线性方程:
w
T
x
+
b
=
0
w^Tx+b=0
wTx+b=0来表示,其中
w
=
(
w
1
,
w
2
,
.
.
.
,
w
d
)
T
w=(w_1,w_2,...,w_d)^T
w=(w1,w2,...,wd)T是法向量,它决定了超平面的方向;
b
b
b是位移,代表了超平面和原点之间的距离。那么超平面就可以被
w
w
w和
b
b
b确定下来,就记作
(
w
,
b
)
(w,b)
(w,b)吧。所以样本中任一点
x
x
x到超平面
(
w
,
b
)
(w,b)
(w,b)的距离可以写成:
d
i
s
t
a
n
c
e
=
∣
w
T
x
+
b
∣
∣
∣
w
∣
∣
distance=\frac{|w^Tx+b|}{||w||}
distance=∣∣w∣∣∣wTx+b∣
而我们的最大间隔分类器的目的就是最大化最小的
d
i
s
t
a
n
c
e
distance
distance,就是这样:
m
a
x
m
a
r
g
i
n
(
w
,
b
)
s
.
t
.
y
i
(
w
T
x
i
+
b
)
>
0
,
i
=
1
,
2
,
.
.
.
,
N
max\space margin(w,b) s.t.\space\space y_i(w^Tx_i+b)>0,i=1,2,...,N
max margin(w,b) s.t. yi(wTxi+b)>0,i=1,2,...,N
也就是这样:
m
a
x
m
i
n
y
i
(
w
T
x
+
b
)
∣
∣
w
∣
∣
s
.
t
.
y
i
(
w
T
x
i
+
b
)
>
0
,
i
=
1
,
2
,
.
.
.
,
N
max\space min\space \frac{y_i(w^Tx+b)}{||w||} s.t.\space\space y_i(w^Tx_i+b)>0,i=1,2,...,N
max min ∣∣w∣∣yi(wTx+b) s.t. yi(wTxi+b)>0,i=1,2,...,N
令$ y_i(w^Tx_i+b)=1,$
有
:
m
a
x
1
∣
∣
w
∣
∣
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
.
.
.
,
N
:max\space \frac{1}{||w||} s.t.\space\space y_i(w^Tx_i+b)≥1,i=1,2,...,N
:max ∣∣w∣∣1 s.t. yi(wTxi+b)≥1,i=1,2,...,N
转换下形式,变成一个存粹的优化问题(原问题):
m
i
n
1
2
w
T
w
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
.
.
.
,
N
min\space \frac{1}{2}w^Tw s.t.\space\space y_i(w^Tx_i+b)≥1,i=1,2,...,N
min 21wTw s.t. yi(wTxi+b)≥1,i=1,2,...,N
既然是个优化问题,那么我们试着用拉格朗日乘子法解一下,
拉格朗日函数:
L
(
w
,
b
,
λ
)
=
1
2
w
T
w
+
∑
i
=
1
N
λ
i
(
1
−
y
(
w
T
x
i
+
b
)
)
L(w,b,\lambda)=\frac{1}{2}w^Tw+\sum_{i=1}^{N}\lambda_i(1-y_(w^Tx_i+b))
L(w,b,λ)=21wTw+∑i=1Nλi(1−y(wTxi+b))
s
.
t
.
λ
i
≥
0
,
1
−
y
(
w
T
x
i
+
b
)
≤
0
s.t.\space\space \lambda_i≥0,1-y_(w^Tx_i+b)≤0
s.t. λi≥0,1−y(wTxi+b)≤0
写成无约束的原问题 : m i n w , b m a x λ L ( w , b , λ ) s . t . λ i ≥ 0 :\underset {w,b}{min}\space \underset\lambda{max} L(w,b,\lambda) \space \space\space\space\space\space s.t.\space\space\lambda_i≥0 :w,bmin λmaxL(w,b,λ) s.t. λi≥0
对偶
上述原问题的对偶问题就是:
m
a
x
λ
m
i
n
w
,
b
L
(
w
,
b
,
λ
)
s
.
t
.
λ
i
≥
0
\underset\lambda{max} \space \underset {w,b}{min} L(w,b,\lambda) \space \space\space\space\space\space s.t.\space\space\lambda_i≥0
λmax w,bminL(w,b,λ) s.t. λi≥0
借用一句话,对偶问题和原问题就是鸡头凤尾的关系,凤尾再差也比鸡头强。。。
对
w
,
b
w,b
w,b求偏导:
令
∂
L
∂
b
=
0
,
\frac{\partial L}{\partial b}=0,
∂b∂L=0,有
∑
i
=
1
N
λ
i
y
i
=
0
\sum_{i=1}^N\lambda_iy_i=0
∑i=1Nλiyi=0
令
∂
L
∂
w
=
0
,
\frac{\partial L}{\partial w}=0,
∂w∂L=0,有
w
∗
=
∑
i
=
1
N
λ
i
y
i
x
i
w^*=\sum_{i=1}^N\lambda_iy_ix_i
w∗=∑i=1Nλiyixi
那么上面的对偶问题就能转化成这样:
m
a
x
λ
∑
i
=
1
N
λ
i
−
1
2
∑
i
=
1
N
∑
j
=
1
N
λ
i
λ
j
y
i
y
j
x
i
T
x
j
\underset \lambda{max}\sum_{i=1}^N\lambda_i-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\lambda_i\lambda_jy_iy_jx_i^Tx_j
λmax∑i=1Nλi−21∑i=1N∑j=1NλiλjyiyjxiTxj
s
.
t
.
λ
i
≥
0
,
∑
i
=
1
N
λ
i
y
i
=
0
s.t.\space\space\lambda_i≥0,\space\sum_{i=1}^N\lambda_iy_i=0
s.t. λi≥0, ∑i=1Nλiyi=0
从对偶问题解出的
λ
i
\lambda_i
λi是拉格朗日乘子,它恰恰对应着寻来你样本
(
x
i
,
y
i
)
,
(x_i,y_i),
(xi,yi),而***原问题***中有不等式约束,因此上述过程满足KKT条件,即要求:
λ
i
≥
0
;
\lambda_i≥0;
λi≥0;
λ
i
(
1
−
y
i
(
w
T
x
i
+
b
)
=
0
\lambda_i(1-y_i(w^Tx_i+b)=0
λi(1−yi(wTxi+b)=0
1
−
y
i
(
w
T
x
i
+
b
)
≤
0
1-y_i(w^Tx_i+b)≤0
1−yi(wTxi+b)≤0
又因为刚刚我们通过对拉格朗日函数求偏导已经求出来了 w ∗ = ∑ i = 1 N λ i y i x i , w^*=\sum_{i=1}^N\lambda_iy_ix_i, w∗=∑i=1Nλiyixi,假设存在一个点 ( x k , y k ) , (x_k,y_k), (xk,yk),使得 1 − y k ( w T x k + b ) = 0 1-y_k(w^Tx_k+b)=0 1−yk(wTxk+b)=0
再看 y k ( w T x k + b ) = 1 y_k(w^Tx_k+b)=1 yk(wTxk+b)=1这个式子,因为 y k ⊂ − 1 , + 1 y_k\sub{-1,+1} yk⊂−1,+1,因此两边同乘以 y k , y_k, yk,有 y k 2 ( w T x k + b ) = y k , y_k^2(w^Tx_k+b)=y_k, yk2(wTxk+b)=yk,而 y k 2 = 1 y_k^2=1 yk2=1,
所以 b ∗ = y k − w T x k = y k − ∑ i = 1 N λ i y i x i T x k b^*=y_k-w^Tx_k=y_k-\sum_{i=1}^N\lambda_iy_ix_i^Tx_k b∗=yk−wTxk=yk−∑i=1NλiyixiTxk
所以硬间隔的超平面就得出了: f ( x = s i g n ( w ∗ x + b ∗ ) ) f(x=sign(w^*x+b^*)) f(x=sign(w∗x+b∗))
2.soft-margin SVM
前面的介绍中,我们一直假定训练样本在样本空间中式线性可分的。然而在实际情况中往往很难确定合适的核函数使得训练样本在特征空间中线性可分。
缓解这个问题的一个方法是允许支持向量机在一定样本上出错。也就是软间隔的概念。
软间隔允许某些让本不满足约束
y
i
(
w
T
x
i
+
b
)
≥
1
,
y_i(w^Tx_i+b)≥1,
yi(wTxi+b)≥1,为了方便表示,这里将
y
i
(
w
T
x
i
+
b
)
y_i(w^Tx_i+b)
yi(wTxi+b)记作
z
。
z。
z。当然,在最大间隔的同时,不满足此约束的样本应该尽量少。此外我们还希望引入的这个损失函数数学性质要好,那么可以常用的损失函数可以写成:
\space\space\space\space\space\space\space\space
hinge损失:
L
(
z
)
=
m
a
x
(
0
,
1
−
z
)
L(z)=max(0,1-z)
L(z)=max(0,1−z)
\space\space\space\space\space\space\space\space
指数损失:
L
(
z
)
=
e
x
p
(
−
z
)
L(z)=exp(-z)
L(z)=exp(−z)
\space\space\space\space\space\space\space\space
对率损失:
L
(
z
)
=
l
o
g
(
1
+
e
x
p
(
−
z
)
)
L(z)=log(1+exp(-z))
L(z)=log(1+exp(−z))
如果采用hinge损失,那***原问题***就可以变成这种形式:
m
i
n
1
2
w
T
w
+
C
∑
i
=
1
N
m
a
x
{
0
,
1
−
y
i
(
w
T
x
i
+
b
)
}
min\space \frac{1}{2}w^Tw+C\sum_{i=1}^Nmax\left\{ 0,1- y_i(w^Tx_i+b)\right\}
min 21wTw+C∑i=1Nmax{0,1−yi(wTxi+b)}
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
−
ξ
i
,
i
=
1
,
2
,
.
.
.
,
N
s.t.\space\space y_i(w^Tx_i+b)≥1-\xi_i,i=1,2,...,N
s.t. yi(wTxi+b)≥1−ξi,i=1,2,...,N
引入: ξ i = 1 − y i ( w T x i + b ) , ξ i ≥ 0 \xi_i=1- y_i(w^Tx_i+b),\xi_i≥0 ξi=1−yi(wTxi+b),ξi≥0
软间隔的最终形式:
m
i
n
1
2
w
T
w
+
C
∑
i
=
1
N
ξ
i
min\space \frac{1}{2}w^Tw+C\sum_{i=1}^N\xi_i
min 21wTw+C∑i=1Nξi
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
−
ξ
i
,
i
=
1
,
2
,
.
.
.
,
N
,
ξ
i
≥
0
s.t.\space\space y_i(w^Tx_i+b)≥1-\xi_i,i=1,2,...,N,\xi_i≥0
s.t. yi(wTxi+b)≥1−ξi,i=1,2,...,N,ξi≥0
软间隔的求解过程和硬间隔类似,这里就不再求解了。