支持向量机(Support Vector Machine,SVM)理论部分
SVM简介
SVM是由一个叫做Vapnik的前苏联人发明于70年代中期的算法。当时是冷战期间,欧美与苏联不互通,等到苏联解体后,Vapnik来到美国,才逐渐发表了自己的研究成果。
SVM是一个小样本的方法,其原因是超平面的选取只与支持向量有关(后面会说什么是超平面和支持向量)。
SVM有着严密的数学推导,因此SVM的可解释性很好。
SVM从如何划分线性可分(Linear Separable)的样本集出发,推广到如何划分线性不可分(Non-linear Separable)的样本集。
线性可分
SVM线性模型的说明
假设所有的样本可分为两类,“+”表示一类样本,“-”表示另一类样本,x1和x2为样本的俩个特征,将所有已知的这样的样本画出来,很明显,两类样本可以用一条直线分隔开,这样的样本集是线性可分的。
显然如果存在一条直线能将这样的样本集分开,那么一定存在无数条直线能将这样的样本集分开,如下图所示(周志华老师所著的西瓜书中的配图):
不论是通过直觉,还是理论证明,在上图中,显然是那条加粗的直线所达到的分类效果最好。这是因为这条线在两类样本的“最中间”处,所以它的抗噪声的能力最强,这样的线性模型鲁棒性最好。
为了唯一确定这条分类效果最好的直线,首先要定义一些名词用以描述这条直线。
对于每条能够将两类样本划分开的直线Li,将直线Li向两侧平移,直到与一个或多个样本点相交,把这些与平移后的Li相交的样本点称为支持向量(support vector),把两个异类的支持向量到直线Li的距离之和称为间隔(margin)。
显然,在所有的直线L中,间隔最大且支持向量到直线Li的距离为间隔的一半,这样的Li即为所求。
SVM线性模型的数学描述
在上文中,以二维的特征空间为例,说明了如何选取分类效果最好的直线。然而在实际问题中,特征可能有很多个,也就是说特征空间不再是二维,会是更多的维度。
在二维空间中,用一条直线 l : w 1 x 1 + w 2 x 2 + b = 0 l:w_1x_1+w_2x_2+b=0 l:w1x1+w2x2+b=0划分两类样本点,在三维空间中,用一个平面 γ : w 1 x 1 + w 2 x 2 + w 3 x 3 + b = 0 \gamma:w_1x_1+w_2x_2+w_3x_3+b=0 γ:w1x1+w2x2+w3x3+b=0划分两类样本点,在更高维的空间中,显然依然存在形如 w 1 x 1 + w 2 x 2 + w 3 x 3 + ⋯ + w n x n + b = 0 w_1x_1+w_2x_2+w_3x_3+\cdots+w_nx_n+b=0 w1x1+w2x2+w3x3+⋯+wnxn+b=0的方程能够划分两类样本点,人作为三维生物很难想象它具体的样子,因此称之为超平面(hyper plane)。
通过对点到直线距离公式的推广知,点到超平面的距离d为:
d
=
∣
w
1
x
1
+
w
2
x
2
+
⋯
+
w
n
x
n
+
b
∣
w
1
2
+
w
2
2
+
⋯
+
w
n
2
d=\frac{|w_1x_1+w_2x_2+\cdots+w_nx_n+b|}{\,\sqrt{w_1^2+w_2^2+\cdots+w_n^2}\,}
d=w12+w22+⋯+wn2∣w1x1+w2x2+⋯+wnxn+b∣
将
w
1
∼
w
n
与
x
1
∼
x
n
w_1\sim w_n与x_1\sim x_n
w1∼wn与x1∼xn写成向量的形式,于是超平面的方程L可以简化为:
w
T
x
+
b
=
0
w^Tx+b=0
wTx+b=0
则点到超平面的距离d可简化为:
d
=
∣
w
T
x
+
b
∣
∣
∣
w
∣
∣
d=\frac{|w^Tx+b|}{||w||}
d=∣∣w∣∣∣wTx+b∣
设在L之上的样本点的标签
y
i
=
+
1
y_i=+1
yi=+1,在L之下的样本点的标签
y
i
=
−
1
y_i=-1
yi=−1(后面会说明为什么是+1和-1而不是0和1或是其他的什么数),如果L能够将特征空间中所有的样本点分类正确,那么对于特征空间中的所有样本点都满足:
{
w
T
x
i
+
b
≥
0
y
i
=
+
1
w
T
x
i
+
b
<
0
y
i
=
−
1
(
1
)
\begin{cases} w^Tx_i+b\ge0 && {y_i=+1}\\ w^Tx_i+b<0 && {y_i=-1} \end{cases} \qquad(1)
{wTxi+b≥0wTxi+b<0yi=+1yi=−1(1)
由于与超平面L距离最近的点是支持向量,设支持向量到超平面L的距离为r(r>0),则(1)可以写成:
{
w
T
x
i
+
b
≥
r
y
i
=
+
1
w
T
x
i
+
b
≤
−
r
y
i
=
−
1
(
2
)
\begin{cases} w^Tx_i+b\ge r && {y_i=+1}\\ w^Tx_i+b\le-r && {y_i=-1} \end{cases} \qquad(2)
{wTxi+b≥rwTxi+b≤−ryi=+1yi=−1(2)
在(2)中的不等式两边同时乘一个系数1/r,w和b放缩相同的倍数,超平面并不会发生改变,且不等式左侧的系数可以乘入到w和b中,因此有
{
w
T
x
i
+
b
≥
1
y
i
=
+
1
w
T
x
i
+
b
≤
−
1
y
i
=
−
1
(
3
)
\begin{cases} w^Tx_i+b\ge1 && {y_i=+1}\\ w^Tx_i+b\le-1 && {y_i=-1} \end{cases} \qquad(3)
{wTxi+b≥1wTxi+b≤−1yi=+1yi=−1(3)
显然,特征空间中的支持向量能使不等式(3)取等号,也就是说两个异类的支持向量到超平面的距离和为:
d
=
2
∣
∣
w
∣
∣
d=\frac{2} {||w||}
d=∣∣w∣∣2
为了让间隔最大,只需让||w||最小,至此已经得出了线性模型的任务目标,不过为了计算方便,要对目标函数进行一定的调整。
最小化(Minimize):
1
2
∣
∣
w
∣
∣
2
\frac{1}{2} ||w||^2
21∣∣w∣∣2限制条件(Subject to):
y
i
[
w
T
x
i
+
b
]
≥
1
,
i
=
1
∼
k
yi[w^Tx_i + b]\ge1,\quad i=1\sim k
yi[wTxi+b]≥1,i=1∼k
对于目标函数,加平方是为了将其改造为二次规划问题,加上系数1/2是为了求导方便。
对于限制条件,由于在前面设yi的取值为+1和-1,因此可以将(3)简化写成如上的形式。
二次规划(Quadratic Programming)
二次规划问题是目标函数(Objective Function)是二次项,限制条件是一次项的优化问题。这种问题要么无解,要么只有一个极小值。
原问题(Prime Problem)
min x f ( x ) s . t . g i ( x ) ≤ 0 , i = 1 ∼ k h i ( x ) = 0 , i = 1 ∼ m \begin{aligned} \min_x\quad&f(x)\\ s.t.\quad&g_i(x)\le 0,\quad i=1\sim k\\ &h_i(x)=0,\quad i=1\sim m \end{aligned} xmins.t.f(x)gi(x)≤0,i=1∼khi(x)=0,i=1∼m
这是一个普适的定义,通过修改正负号,给k、m设值,任何优化问题都可以写成上述形式,其中k、m至少有一个为0时,代表只有一个限制条件或者没有限制条件。
拉格朗日乘子法(Lagrange multiplier)
给定原问题,对原问题的每条约束条件添加拉格朗日乘子
a
i
≥
0
a_i\ge0
ai≥0和
β
i
\beta_i
βi,则该问题的拉格朗日函数可写成:
L
(
x
,
α
,
β
)
=
f
(
x
)
+
∑
i
=
1
k
α
i
g
i
(
x
)
+
∑
i
=
1
m
β
i
h
i
(
x
)
L(x,\alpha,\beta)=f(x)+\sum_{i=1}^{k}\alpha_ig_i(x)+\sum_{i=1}^{m}\beta_ih_i(x)
L(x,α,β)=f(x)+i=1∑kαigi(x)+i=1∑mβihi(x)
s
.
t
.
α
i
≥
0
,
i
=
1
∼
k
s.t.\quad \alpha_i \ge0,\quad i=1\sim k
s.t.αi≥0,i=1∼k
因为
α
i
≥
0
,
g
i
(
x
)
≤
0
,
h
i
(
x
)
=
0
\alpha_i\ge0,g_i(x)\le0,h_i(x)=0
αi≥0,gi(x)≤0,hi(x)=0
所以原问题等价于:
min
x
max
α
,
β
L
(
x
,
α
,
β
)
\min_x\max_{\alpha,\beta}L(x,\alpha,\beta)
xminα,βmaxL(x,α,β)
s
.
t
.
α
≥
0
s.t.\qquad \alpha\ge0
s.t.α≥0
对偶问题(Dual Problem)
max α , β min x L ( x , α , β ) \max_{\alpha,\beta}\min_{x}L(x,\alpha,\beta) α,βmaxxminL(x,α,β) s . t . α ≥ 0 s.t.\quad \alpha\ge0 s.t.α≥0
其中, α ≥ 0 \alpha\ge0 α≥0表示 α \alpha α的每一个分量 α i \alpha_i αi都大于等于0。
原问题与对偶问题的区别
原问题:自变量为x,每个x对应一个函数值,这个函数值是在当前x下,遍历所有的 α \alpha α和 β \beta β后找到的最大值。函数目标是在这些最大值中找到最小的那个。
对偶问题:自变量为 α \alpha α和 β \beta β,每个 α \alpha α和 β \beta β对应一个函数值,这个函数值是在当前 α \alpha α和 β \beta β下,遍历所有的x找到的最小值。函数目标是在这些最小值中找到最大的那一个。
因此,对偶问题是原问题的下界,即对偶问题的解小于等于原问题的解。
强对偶定理
若f(x)为凸函数,且g(x)=Ax+b,h(x)=Cx+b,则此优化问题的原问题与对偶问题的间距为0,即 f ( x ∗ ) = θ ( α ∗ , β ∗ ) f(x^*)=\theta(\alpha^*,\beta^*) f(x∗)=θ(α∗,β∗),其中, x ∗ x^* x∗是原问题的解, α ∗ , β ∗ \alpha^*,\beta^* α∗,β∗是对偶问题的解, θ ( α , β ) \theta(\alpha,\beta) θ(α,β)为对偶问题的表达式,原问题与对偶问题的间距 G = f ( x ∗ ) − θ ( α ∗ , β ∗ ) ≥ 0 G=f(x^*)-\theta(\alpha^*,\beta^*)\ge0 G=f(x∗)−θ(α∗,β∗)≥0。
如果G为0,则意味着对任意的i=1~k,或者 α i ∗ = 0 \alpha_i^*=0 αi∗=0,或者 g i ∗ ( x ∗ ) = 0 g_i^*(x^*)=0 gi∗(x∗)=0(KKT条件)。
将SVM线性可分的原问题转化成对偶问题
在前文中,已经得出了线性模型的任务目标:
min
1
2
∣
∣
w
∣
∣
2
s
.
t
.
1
−
y
i
[
w
T
x
i
+
b
]
≤
0
(
i
=
1
∼
k
)
\begin{aligned} \min\quad &\frac{1}{2} ||w||^2\\ s.t.\quad&1-yi[w^Tx_i + b]\le0 (i=1\sim k) \end{aligned}
mins.t.21∣∣w∣∣21−yi[wTxi+b]≤0(i=1∼k)
它本身是一个凸二次规划问题,能直接用Quadratic Programming优化包求解。但存在更高效的办法。
对上式使用拉格朗日乘子法,得到:
L
(
w
,
b
,
α
)
=
1
2
∣
∣
w
∣
∣
2
+
∑
i
=
1
k
α
i
[
1
−
y
i
(
w
T
x
i
+
b
)
]
s
.
t
.
α
i
≥
0
,
i
=
1
∼
k
\begin{aligned} L(w,b,\alpha)=&\frac{1}{2} ||w||^2+\sum_{i=1}^{k}\alpha_i[1-yi(w^Tx_i + b)]\\ s.t.\quad&\alpha_i\ge0,\quad i=1\sim k \end{aligned}
L(w,b,α)=s.t.21∣∣w∣∣2+i=1∑kαi[1−yi(wTxi+b)]αi≥0,i=1∼k
对照上面的 L ( x , α , β ) = f ( x ) + ∑ i = 1 k α i g i ( x ) + ∑ i = 1 m β i h i ( x ) L(x,\alpha,\beta)=f(x)+\sum_{i=1}^{k}\alpha_ig_i(x)+\sum_{i=1}^{m}\beta_ih_i(x) L(x,α,β)=f(x)+∑i=1kαigi(x)+∑i=1mβihi(x), w w w和 b b b相当于 x x x, α \alpha α相当于 α \alpha α,没有 β \beta β。
因为 1 − y i ( w T x i + b ) 1-yi(w^Tx_i + b) 1−yi(wTxi+b)是线性的,符合强对偶定理。因此可以通过求解对偶问题来获得原问题的解。
令L对
w
w
w和b的偏导值为0,得:
w
=
∑
i
=
1
k
α
i
y
i
x
i
,
0
=
∑
i
=
1
k
α
i
y
i
\begin{aligned} w&=\sum_{i=1}^{k}\alpha_iy_ix_i,\\ 0&=\sum_{i=1}^{k}\alpha_iy_i \end{aligned}
w0=i=1∑kαiyixi,=i=1∑kαiyi代回原式得:
max
α
∑
i
=
1
k
α
i
−
1
2
∑
i
=
1
k
∑
j
=
1
k
α
i
α
j
y
i
y
j
x
i
T
x
j
s
.
t
.
∑
i
=
1
k
α
i
y
i
=
0
α
i
≥
0
,
i
=
1
∼
k
(
4
)
\begin{aligned} \max_\alpha\quad&\sum_{i=1}^{k}\alpha_i-\frac{1}{2}\sum_{i=1}^{k}\sum_{j=1}^{k}\alpha_i\alpha_jy_iy_jx_i^Tx_j\\ s.t.\quad&\sum_{i=1}^{k}\alpha_iy_i=0\\ &\alpha_i\ge0,\quad i=1\sim k \end{aligned}\quad(4)
αmaxs.t.i=1∑kαi−21i=1∑kj=1∑kαiαjyiyjxiTxji=1∑kαiyi=0αi≥0,i=1∼k(4)
解出
α
\alpha
α后,将
w
=
∑
i
=
1
k
α
i
y
i
x
i
w=\sum_{i=1}^{k}\alpha_iy_ix_i
w=∑i=1kαiyixi代入
w
T
x
+
b
=
0
w^Tx+b=0
wTx+b=0中,得:
∑
i
=
1
k
α
i
y
i
x
i
T
x
+
b
=
0
(
5
)
\sum_{i=1}^{k}\alpha_iy_ix_i^Tx+b=0\qquad(5)
i=1∑kαiyixiTx+b=0(5)
式(5)即为最终确定的超平面,也就是训练得到的模型。
根据KKT条件, α i [ 1 − y i ( w T x i + b ) ] = 0 \alpha_i[1-yi(w^Tx_i + b)]=0 αi[1−yi(wTxi+b)]=0。
也就是说或者 α i = 0 \alpha_i=0 αi=0,或者 1 − y i ( w T x i + b ) = 0 1-yi(w^Tx_i + b)=0 1−yi(wTxi+b)=0,若前者为0,则第i个样本不会出现在(5)的求和中,也就不会对待求解的超平面产生影响;若后者为0,显然 x i x_i xi是一个支持向量。这意味着,训练模型时,只有支持向量会对模型参数产生影响,其他训练样本可以直接无视。
关于求解式(4),可以使用SMO算法。
关于式(5), α i \alpha_i αi已经使用SMO得出, y i y_i yi和 x i x_i xi为训练样本,只需将 b b b也求出来即可完成训练。
线性不可分
升维
对于线性可分的样本集,可以找到一个超平面将之划分,对于线性不可分的样本集,显然是无解的(二次规划问题,要么只有一个极小值,要么无解)。为了让SVM能够处理线性不可分的样本集,首先要将原样本集投到更高维的空间中,投射后的样本集将会有更大的概率变得线性可分,若投到无限维的空间中,则一定变得线性可分。
核函数
然而,若将x经过映射函数
φ
(
x
)
\varphi(x)
φ(x)映射到无限维,式(4)将会变为:
max
α
∑
i
=
1
k
α
i
−
1
2
∑
i
=
1
k
∑
j
=
1
k
α
i
α
j
y
i
y
j
φ
(
x
i
)
T
φ
(
x
j
)
s
.
t
.
∑
i
=
1
k
α
i
y
i
=
0
α
i
≥
0
,
i
=
1
∼
k
\begin{aligned} \max_\alpha\quad&\sum_{i=1}^{k}\alpha_i-\frac{1}{2}\sum_{i=1}^{k}\sum_{j=1}^{k}\alpha_i\alpha_jy_iy_j\varphi(x_i)^T\varphi(x_j)\\ s.t.\quad&\sum_{i=1}^{k}\alpha_iy_i=0\\ &\alpha_i\ge0,\quad i=1\sim k \end{aligned}\quad
αmaxs.t.i=1∑kαi−21i=1∑kj=1∑kαiαjyiyjφ(xi)Tφ(xj)i=1∑kαiyi=0αi≥0,i=1∼k
显然,此优化函数将会变得不可解。
但实际上,其实并不需要知道 φ ( x i ) \varphi(x_i) φ(xi)和 φ ( x j ) \varphi(x_j) φ(xj)的具体值,也就是说,并不需要知道无限维映射 φ ( x ) \varphi(x) φ(x)的显式表达式是什么,只需要知道一个核函数(Kernel Function) K ( x i , x j ) = φ ( x i ) T φ ( x j ) K(x_i,x_j)=\varphi(x_i)^T\varphi(x_j) K(xi,xj)=φ(xi)Tφ(xj),这样,不仅能把原样本集映射到无限维,还能使式(4)依然可解。
常用的核函数:
线
性
核
K
(
x
1
,
x
2
)
=
x
1
T
x
2
多
项
式
核
K
(
x
1
,
x
2
)
=
(
x
1
T
x
2
+
1
)
d
d
≥
1
为
多
项
式
的
次
数
,
d
=
1
时
为
线
性
核
高
斯
核
K
(
x
1
,
x
2
)
=
e
−
∣
∣
x
1
−
x
2
∣
∣
2
2
σ
2
σ
>
0
为
高
斯
核
的
带
宽
(
w
i
d
t
h
)
拉
普
拉
斯
核
K
(
x
1
,
x
2
)
=
e
−
∣
∣
x
1
−
x
2
∣
∣
σ
σ
>
0
S
i
g
m
o
i
d
核
K
(
x
1
,
x
2
)
=
t
a
n
h
(
β
x
1
T
x
2
+
θ
)
β
>
0
,
θ
<
0
\begin{aligned} 线性核\qquad K(x_1,x_2)=&x_1^Tx_2\\\\ 多项式核\qquad K(x_1,x_2)=&(x_1^Tx_2+1)^d\qquad &&d\ge1为多项式的次数,d=1时为线性核\\\\ 高斯核\qquad K(x_1,x_2)=&e^{-\frac{||x_1-x_2||^2}{2\sigma^2}}\qquad &&\sigma >0为高斯核的带宽(width)\\\\ 拉普拉斯核\qquad K(x_1,x_2)=&e^{-\frac{||x_1-x_2||}{\sigma}}\qquad &&\sigma>0\\\\ Sigmoid核\qquad K(x_1,x_2)=&tanh(\beta x_1^Tx_2+\theta)\qquad &&\beta>0,\theta<0 \end{aligned}
线性核K(x1,x2)=多项式核K(x1,x2)=高斯核K(x1,x2)=拉普拉斯核K(x1,x2)=Sigmoid核K(x1,x2)=x1Tx2(x1Tx2+1)de−2σ2∣∣x1−x2∣∣2e−σ∣∣x1−x2∣∣tanh(βx1Tx2+θ)d≥1为多项式的次数,d=1时为线性核σ>0为高斯核的带宽(width)σ>0β>0,θ<0
核函数还可以通过函数组合得到,两个核函数对于任意正数的线性组合、两个核函数的直积也是核函数,此外,若 K 1 K_1 K1为核函数,则对于任意函数 g ( x ) g(x) g(x), K ( x 1 , x 2 ) = g ( x 1 ) K 1 ( x 1 , x 2 ) g ( x 2 ) K(x_1,x_2)=g(x_1)K_1(x_1,x_2)g(x_2) K(x1,x2)=g(x1)K1(x1,x2)g(x2)也是核函数。
修改待优化的目标函数
在前文中已经知道,超平面的选取标准是最大化支持向量与超平面的距离。其实以这种标准选取超平面的时候就已经默认了一件事,那就是训练样本集是线性可分的,对于线性不可分的训练样本,将之投到更高维的空间中,如果投到无限维的空间中,那将一定会变得线性可分,正是因为这一点,SVM才能对任何样本集都成立。
通过核函数的引入,使得无限维的映射 φ ( x ) \varphi(x) φ(x)的显式表达式变得并不重要,优化问题也变得仍然可解。但这个前提是,找到合适的核函数,此外,就算找到了某个核函数使训练样本集在高维空间中线性可分也不能确保这个模型就是好的,因为它有可能发生了过拟合。
为了缓解这个问题,需要让超平面的选取不再那么严苛,也就是说允许训练样本集上的一些样本点分类错误,即允许有样本点不满足
y
i
(
w
T
x
i
+
b
)
≥
1
y_i(w^Tx_i+b)\ge1
yi(wTxi+b)≥1,显然,不满足约束的样本点越少越好,可以通过引入松弛变量的方式来达到这种效果,优化问题将被改写为:
min
w
,
ξ
i
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
k
ξ
i
,
C
>
0
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
−
ξ
i
ξ
i
≥
0
,
i
=
1
∼
k
(
6
)
\begin{aligned} \min_{w,\xi_i}&\quad \frac{1}{2}||w||^2+C\sum_{i=1}^{k}\xi_i,\quad C>0\\ s.t.&\quad y_i(w^Tx_i+b)\ge1-\xi_i\\ &\quad \xi_i\ge0,\quad i=1\sim k \end{aligned}\qquad (6)
w,ξimins.t.21∣∣w∣∣2+Ci=1∑kξi,C>0yi(wTxi+b)≥1−ξiξi≥0,i=1∼k(6)
在式(6)中可以看出,通过引入松弛变量,使得 y i ( w T x i + b ) ≥ 1 y_i(w^Tx_i+b)\ge1 yi(wTxi+b)≥1条件变得具有一定弹性。
将式(6)改造成原问题:
min
w
,
ξ
i
1
2
∣
∣
w
∣
∣
2
−
C
∑
i
=
1
k
ξ
i
,
C
>
0
s
.
t
.
1
+
ξ
i
−
y
i
(
w
T
x
i
+
b
)
≤
0
ξ
i
≤
0
,
i
=
1
∼
k
(
7
)
\begin{aligned} \min_{w,\xi_i}&\quad \frac{1}{2}||w||^2-C\sum_{i=1}^{k}\xi_i,\quad C>0\\ s.t.&\quad 1+\xi_i -y_i(w^Tx_i+b)\le0\\ &\quad \xi_i\le0,\quad i=1\sim k \end{aligned}\qquad(7)
w,ξimins.t.21∣∣w∣∣2−Ci=1∑kξi,C>01+ξi−yi(wTxi+b)≤0ξi≤0,i=1∼k(7)
将SVM线性不可分的原问题转化成对偶问题
再将式(7)转化成对偶问题:
max
α
,
β
min
w
,
b
,
ξ
i
1
2
∣
∣
w
∣
∣
2
−
C
∑
i
=
1
k
ξ
i
+
∑
i
=
1
k
β
i
ξ
i
+
∑
i
=
1
k
α
i
(
1
+
ξ
i
−
y
i
w
T
x
i
−
y
i
b
)
,
C
>
0
,
α
i
≥
0
,
β
i
≥
0
(
8
)
\max_{\alpha,\beta}\min_{w,b,\xi_i}\frac{1}{2}||w||^2-C\sum_{i=1}^{k}\xi_i+\sum_{i=1}^{k}\beta_i\xi_i+\sum_{i=1}^{k}\alpha_i(1+\xi_i -y_iw^Tx_i-y_ib),\quad C>0,\alpha_i\ge0,\beta_i\ge0 \qquad(8)
α,βmaxw,b,ξimin21∣∣w∣∣2−Ci=1∑kξi+i=1∑kβiξi+i=1∑kαi(1+ξi−yiwTxi−yib),C>0,αi≥0,βi≥0(8)
α
i
,
β
i
\alpha_i,\beta_i
αi,βi都大于等于0的原因是,此处的
α
i
,
β
i
\alpha_i,\beta_i
αi,βi都相当于拉格朗日函数中的
α
i
\alpha_i
αi,由于在这个问题中没有形如
h
i
(
x
)
=
0
h_i(x)=0
hi(x)=0的限制条件,因此没有相当于拉格朗日函数中
β
i
\beta_i
βi的系数存在,设内层求最小值的函数等于L,分别令L对
w
,
b
,
ξ
i
w,b,\xi_i
w,b,ξi的偏导为0,有:
∂
L
∂
w
=
0
=
>
∑
i
=
1
k
α
i
y
i
x
i
=
w
∂
L
∂
b
=
0
=
>
∑
i
=
1
k
α
i
y
i
=
0
∂
L
∂
ξ
i
=
0
=
>
α
i
+
β
i
=
C
\begin{aligned} \frac{\partial L}{\partial w}=0& \quad=> \quad \sum_{i=1}^{k}\alpha_iy_ix_i=w\\\\ \frac{\partial L}{\partial b}=0& \quad=> \quad \sum_{i=1}^{k}\alpha_iy_i=0\\\\ \frac{\partial L}{\partial \xi_i}=0& \quad=> \quad \alpha_i+\beta_i=C \end{aligned}
∂w∂L=0∂b∂L=0∂ξi∂L=0=>i=1∑kαiyixi=w=>i=1∑kαiyi=0=>αi+βi=C
将上式代回原式中得到新的优化问题:
max
α
∑
i
=
1
k
α
i
−
1
2
∑
i
=
1
k
∑
j
=
1
k
α
i
α
j
y
i
y
j
x
i
T
x
j
s
.
t
.
∑
i
=
1
k
α
i
y
i
=
0
0
≤
α
i
≤
C
\begin{aligned} \max_{\alpha}&\quad \sum_{i=1}^{k}\alpha_i-\frac{1}{2}\sum_{i=1}^{k} \sum_{j=1}^{k}\alpha_i\alpha_jy_iy_jx_i^Tx_j\\ s.t.&\quad \sum_{i=1}^{k}\alpha_iy_i=0\\ &\quad 0\le \alpha_i\le C \end{aligned}
αmaxs.t.i=1∑kαi−21i=1∑kj=1∑kαiαjyiyjxiTxji=1∑kαiyi=00≤αi≤C
其中,要将
x
i
T
x
j
x_i^Tx_j
xiTxj升维并通过核函数求解,因此,最终的优化问题为:
max
α
∑
i
=
1
k
α
i
−
1
2
∑
i
=
1
k
∑
j
=
1
k
α
i
α
j
y
i
y
j
K
(
x
i
,
x
j
)
s
.
t
.
∑
i
=
1
k
α
i
y
i
=
0
0
≤
α
i
≤
C
\begin{aligned} \max_{\alpha}&\quad \sum_{i=1}^{k}\alpha_i-\frac{1}{2}\sum_{i=1}^{k} \sum_{j=1}^{k}\alpha_i\alpha_jy_iy_jK(x_i,x_j)\\ s.t.&\quad \sum_{i=1}^{k}\alpha_iy_i=0\\ &\quad 0\le \alpha_i\le C \end{aligned}
αmaxs.t.i=1∑kαi−21i=1∑kj=1∑kαiαjyiyjK(xi,xj)i=1∑kαiyi=00≤αi≤C
可见,加入松弛变量后,最终的优化问题与线性可分的优化问题的区别只有拉格朗日乘子 a i a_i ai的取值范围变了。
回到(8)中
max
α
,
β
min
w
,
b
,
ξ
i
1
2
∣
∣
w
∣
∣
2
−
C
∑
i
=
1
k
ξ
i
+
∑
i
=
1
k
β
i
ξ
i
+
∑
i
=
1
k
α
i
(
1
+
ξ
i
−
y
i
w
T
x
i
−
y
i
b
)
,
C
>
0
,
α
i
≥
0
,
β
i
≥
0
(
8
)
\max_{\alpha,\beta}\min_{w,b,\xi_i}\frac{1}{2}||w||^2-C\sum_{i=1}^{k}\xi_i+\sum_{i=1}^{k}\beta_i\xi_i+\sum_{i=1}^{k}\alpha_i(1+\xi_i -y_iw^Tx_i-y_ib),\quad C>0,\alpha_i\ge0,\beta_i\ge0 \qquad(8)
α,βmaxw,b,ξimin21∣∣w∣∣2−Ci=1∑kξi+i=1∑kβiξi+i=1∑kαi(1+ξi−yiwTxi−yib),C>0,αi≥0,βi≥0(8)
根据KKT条件:
β
i
,
ξ
i
\beta_i,\xi_i
βi,ξi中必有一个为0;
α
i
,
1
+
ξ
i
−
y
i
w
T
φ
(
x
i
)
−
y
i
b
\alpha_i,1+\xi_i-y_iw^T\varphi(x_i)-y_ib
αi,1+ξi−yiwTφ(xi)−yib中必有一个为0。
若
α
i
=
0
\alpha_i=0
αi=0,则该样本
x
i
x_i
xi不会对超平面产生影响;
若
0
<
α
i
0<\alpha_i
0<αi,则
1
+
ξ
i
−
y
i
w
T
φ
(
x
i
)
−
y
i
b
=
0
1+\xi_i-y_iw^T\varphi(x_i)-y_ib=0
1+ξi−yiwTφ(xi)−yib=0,即
y
i
[
w
T
φ
(
x
i
)
+
b
]
=
1
+
ξ
i
y_i[w^T\varphi(x_i)+b]=1+\xi_i
yi[wTφ(xi)+b]=1+ξi,此时
x
i
x_i
xi可能是一个支持向量;
根据已知条件
α
i
+
β
i
=
C
,
C
>
0
\alpha_i+\beta_i=C,C>0
αi+βi=C,C>0,
若
0
<
α
i
<
C
0<\alpha_i<C
0<αi<C,则
β
i
≠
0
\beta_i≠0
βi=0则
ξ
i
=
0
\xi_i=0
ξi=0,即该样本恰好落在最大间隔上,是一个支持向量;
若
α
i
=
C
\alpha_i=C
αi=C,则
β
i
=
0
\beta_i=0
βi=0。若
−
1
≤
ξ
i
<
0
-1\le\xi_i<0
−1≤ξi<0,则该样本落在最大间隔的内部;若
ξ
i
<
−
1
\xi_i<-1
ξi<−1,则该样本分类错误。
由此可以看出,引入松弛变量前后的SVM都只与支持向量有关。
SVM训练&测试流程
训练流程
输入:
{
(
x
i
,
y
i
)
}
,
i
=
(
1
∼
k
)
\{(x_i,y_i)\},i=(1\sim k)
{(xi,yi)},i=(1∼k)
解优化问题:
max
α
∑
i
=
1
k
α
i
−
1
2
∑
i
=
1
k
∑
j
=
1
k
α
i
α
j
y
i
y
j
K
(
x
i
,
x
j
)
s
.
t
.
0
≤
α
i
≤
C
∑
i
=
1
k
α
i
y
i
=
0
\begin{aligned} \max_{\alpha}&\quad \sum_{i=1}^{k}\alpha_i-\frac{1}{2}\sum_{i=1}^{k}\sum_{j=1}^{k}\alpha_i\alpha_jy_iy_jK(x_i,x_j)\\ s.t.&\quad 0\le\alpha_i\le C\\ &\quad \sum_{i=1}^{k}\alpha_iy_i=0 \end{aligned}
αmaxs.t.i=1∑kαi−21i=1∑kj=1∑kαiαjyiyjK(xi,xj)0≤αi≤Ci=1∑kαiyi=0
计算 b b b,找一个 0 ≤ α i ≤ C 0\le\alpha_i\le C 0≤αi≤C
根据KKT条件有 1 − y i w T φ ( x i ) − y i b = 0 1-y_iw^T\varphi(x_i)-y_ib=0 1−yiwTφ(xi)−yib=0
又因为 w T = ∑ j = 1 k α j y j φ ( x j ) T w^T=\sum_{j=1}^{k}\alpha_jy_j\varphi(x_j)^T wT=∑j=1kαjyjφ(xj)T且 φ ( x j ) T φ ( x i ) = K ( x j , x i ) \varphi(x_j)^T\varphi(x_i)=K(x_j,x_i) φ(xj)Tφ(xi)=K(xj,xi)
所以 b = 1 − y i ∑ j = 1 k α j y j K ( x j , x i ) y i b=\frac{1-y_i\sum_{j=1}^{k}\alpha_jy_jK(x_j,x_i)}{y_i} b=yi1−yi∑j=1kαjyjK(xj,xi)
测试流程
输入测试样本x,
{
若
∑
i
=
1
k
α
i
y
i
K
(
x
i
,
x
)
+
b
≥
0
,
则
y
=
+
1
若
∑
i
=
1
k
α
i
y
i
K
(
x
i
,
x
)
+
b
<
0
,
则
y
=
−
1
\begin{cases} 若\sum_{i=1}^{k}\alpha_iy_iK(x_i,x)+b\ge0,\quad则y=+1\\\\ 若\sum_{i=1}^{k}\alpha_iy_iK(x_i,x)+b<0,\quad则y=-1 \end{cases}
⎩⎪⎨⎪⎧若∑i=1kαiyiK(xi,x)+b≥0,则y=+1若∑i=1kαiyiK(xi,x)+b<0,则y=−1