支撑向量机(SVM)算法三大宝:间隔、对偶、核技巧
支持向量机(SVM)算法在分类问题中有着重要地位,其主要思想是最大化两类之间的间隔。按照数据集的特点:
- 线性可分问题,如之前的感知机算法处理的问题
- 线性可分,只有一点点错误点,如感知机算法发展出来的Pocket算法处理问题
- 非线性问题,完全不可分,如在感知机问题发展处理的多层感知机和深度学习
这三种情况对于SVM分别有下面三种处理手段:
- hard-margin SVM
- soft-margin SVM
- kernel Method
SVM的求解,大量用到了Lagrange乘子法,首先对这种方法进行介绍。
约束优化问题
一般地,约束优化问题(原问题)可以写成:
min
x
∈
R
p
f
(
x
)
s
.
t
.
m
i
(
x
)
≤
0
,
i
=
1
,
2
,
⋯
,
M
n
j
(
x
)
=
0
,
j
=
1
,
2
,
⋯
,
N
\min_{x\in\mathbb{R^p}}f(x)\\ s.t.\ m_i(x)\le0,i=1,2,\cdots,M\\ \ \ \ \ \ \ \ \ n_j(x)=0,j=1,2,\cdots,N
x∈Rpminf(x)s.t. mi(x)≤0,i=1,2,⋯,M nj(x)=0,j=1,2,⋯,N
定义Lagrange函数:
L
(
x
,
λ
,
η
)
=
f
(
x
)
+
∑
i
=
1
M
λ
i
m
i
(
x
)
+
∑
i
=
1
N
η
i
n
i
(
x
)
L(x,\lambda,\eta)=f(x)+\sum\limits_{i=1}^M\lambda_im_i(x)+\sum\limits_{i=1}^N\eta_in_i(x)
L(x,λ,η)=f(x)+i=1∑Mλimi(x)+i=1∑Nηini(x)
那么原问题可以等价于无约束形式:
min
x
∈
R
p
max
λ
,
η
L
(
x
,
λ
,
η
)
s
.
t
.
λ
i
≥
0
\min_{x\in\mathbb{R}^p}\max_{\lambda,\eta}L(x,\lambda,\eta)\ s.t.\ \lambda_i\ge0
x∈Rpminλ,ηmaxL(x,λ,η) s.t. λi≥0
这是由于,当满足原问题的不等式约束的时候,
λ
i
=
0
\lambda_i=0
λi=0才能取得最大值,直接等价于原问题,如果不满足原问题的不等式约束,那么最大值就为
+
∞
+\infin
+∞,由于需要取最小值,于是不会取到这个情况。
这个问题的对偶形式:
max
λ
,
η
min
x
∈
R
p
L
(
x
,
λ
,
η
)
s
.
t
.
λ
i
≥
0
\max_{\lambda,\eta}\min_{x\in\mathbb{R}^p}L(x,\lambda,\eta)\ s.t.\ \lambda_i\ge0
λ,ηmaxx∈RpminL(x,λ,η) s.t. λi≥0
对偶问题是关于
λ
,
η
\lambda,\eta
λ,η的最大化问题。
由于:
max
λ
i
,
η
j
min
x
L
(
x
,
λ
i
,
η
j
)
≤
min
x
max
λ
i
,
η
j
L
(
x
,
λ
i
,
η
j
)
\max_{\lambda_i,\eta_j}\min_{x}L(x,\lambda_i,\eta_j)\le\min_{x}\max_{\lambda_i,\eta_j}L(x,\lambda_i,\eta_j)
λi,ηjmaxxminL(x,λi,ηj)≤xminλi,ηjmaxL(x,λi,ηj)
最大值的最小值大于最小值中的最大值。
对偶问题的解小于原问题,有两种情况:
- 强对偶:可以取等于号
- 弱对偶:不可以取等于号
对于一个凸优化问题,有如下定理:
如果凸优化问题满足某些条件如Slater条件,那么它和其对偶问题满足强对偶关系。记问题的定义域为:
D
=
d
o
m
f
(
x
)
∩
d
o
m
m
i
(
x
)
∩
d
o
m
n
j
(
x
)
\mathcal{D}=domf(x)\cap dom m_i(x)\cap domn_j(x)
D=domf(x)∩dommi(x)∩domnj(x)。于是Slater条件为:
∃
x
^
∈
R
e
l
i
n
t
D
s
.
t
.
∀
i
=
1
,
2
,
⋯
,
M
,
m
i
(
x
)
<
0
\exist\hat{x}\in Relint\mathcal{D}\ s.t.\ \forall i=1,2,\cdots,M,m_i(x)\lt0
∃x^∈RelintD s.t. ∀i=1,2,⋯,M,mi(x)<0
其中Relint表示相对内部(不包含边界的内部)
3. 对于大多数凸优化问题,Slater条件成立
4. 松弛Slater条件,如果M个不等式约束中,有K个函数为仿射函数,那么只要其余的函数满足Slater条件即可。
上面介绍了原问题和对偶问题的对偶关系,但是实际还需要对参数进行求解,求解方法使用KKT条件进行:
KKT条件
KKT条件和强对偶关系是等价关系。KKT条件对最优解的条件为:
- 可行域:
m i ( x ∗ ) ≤ 0 n j ( x ∗ ) = 0 λ ∗ ≥ 0 m_i(x^*)\le0\\ n_j(x^*)=0\\ \lambda^*\ge0 mi(x∗)≤0nj(x∗)=0λ∗≥0 - 互补松弛
λ
∗
m
i
(
x
∗
)
=
0
,
∀
m
i
\lambda^*m_i(x^*)=0,\forall m_i
λ∗mi(x∗)=0,∀mi,对偶问题的最佳值为
d
∗
d^*
d∗,原问题为
p
∗
p^*
p∗
d ∗ = max λ , η g ( λ , η ) = g ( λ ∗ , η ∗ ) = min x L ( x , λ ∗ , η ∗ ) ≤ L ( x ∗ , λ ∗ , η ∗ ) = f ( x ∗ ) + ∑ i = 1 M λ ∗ m i ( x ∗ ) ≤ f ( x ∗ ) = p ∗ d^*=\max_{\lambda,\eta}g(\lambda,\eta)=g(\lambda^*,\eta^*)\\ =\min_{x}L(x,\lambda^*,\eta^*)\\ \le L(x^*,\lambda^*,\eta^*)\\ =f(x^*)+\sum\limits_{i=1}^M\lambda^*m_i(x^*)\\ \le f(x^*)=p^* d∗=λ,ηmaxg(λ,η)=g(λ∗,η∗)=xminL(x,λ∗,η∗)≤L(x∗,λ∗,η∗)=f(x∗)+i=1∑Mλ∗mi(x∗)≤f(x∗)=p∗
为了满足相等,两个不等式必须成立,于是,对于第一个不等于号,需要有梯度为0条件,对于第二个不等于号需要满足互补松弛条件。 - 梯度为0:
∂ L ( x , λ ∗ , η ∗ ) ∂ x ∣ x = x ∗ = 0 \frac{\partial L(x,\lambda^*,\eta^*)}{\partial x}|_{x=x^*}=0 ∂x∂L(x,λ∗,η∗)∣x=x∗=0
Hard-margin SVM
支持向量机也是一种硬分类模型,在之前的感知机模型中,我们在线性模型的基础上叠加了符号函数,在几何直观上,可以看到,如果两类分的很开的话,那么其实会存在无穷多条线可以将两类分开。在SVM中,我们引入最大化间隔这个概念,间隔指的是数据和直线的距离的最小值,因此最大化这个值反映了我们的模型倾向。
分割的超平面可以写为:
0
=
w
T
x
+
b
0=w^Tx+b
0=wTx+b
那么最大化间隔(约束为分类任务的要求):
a
r
g
m
a
x
w
,
b
[
min
i
∣
w
T
x
i
+
b
∣
∣
∣
w
∣
∣
]
s
.
t
.
y
i
(
w
T
x
i
+
b
)
>
0
⟹
a
r
g
m
a
x
w
,
b
[
min
i
y
i
(
w
T
x
i
+
b
)
∣
∣
w
∣
∣
]
s
.
t
.
y
i
(
w
T
x
i
+
b
)
>
0
\mathop{argmax}_{w,b}[\min_i\frac{|w^Tx_i+b|}{||w||}]\ s.t.\ y_i(w^Tx_i+b)>0\\ \Longrightarrow\mathop{argmax}_{w,b}[\min_i\frac{y_i(w^Tx_i+b)}{||w||}]\ s.t.\ y_i(w^Tx_i+b)>0
argmaxw,b[imin∣∣w∣∣∣wTxi+b∣] s.t. yi(wTxi+b)>0⟹argmaxw,b[imin∣∣w∣∣yi(wTxi+b)] s.t. yi(wTxi+b)>0
对于这个约束
y
i
(
w
T
x
i
+
b
)
>
0
y_i(w^Tx_i+b)>0
yi(wTxi+b)>0,不妨固定
m
i
n
y
i
(
w
T
x
i
+
b
)
=
1
>
0
min y_i(w^Tx_i+b)=1>0
minyi(wTxi+b)=1>0,这是由于分开两类的超平面的系数经过比例缩放不会改变这个平面,这也相当于给超平面的系数做出了约束,化简后的式子可以表示为:
a
r
g
m
i
n
w
,
b
1
2
w
T
w
s
.
t
.
min
i
y
i
(
w
T
x
i
+
b
)
=
1
⇒
a
r
g
m
i
n
w
,
b
1
2
w
T
w
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
⋯
,
N
\mathop{argmin}_{w,b}\frac{1}{2}w^Tw\ s.t.\ \min_iy_i(w^Tx_i+b)=1\\ \Rightarrow\mathop{argmin}_{w,b}\frac{1}{2}w^Tw\ s.t.\ y_i(w^Tx_i+b)\ge1,i=1,2,\cdots,N
argminw,b21wTw s.t. iminyi(wTxi+b)=1⇒argminw,b21wTw s.t. yi(wTxi+b)≥1,i=1,2,⋯,N
这就是一个包含N个约束的凸优化问题,有很多求解这种问题的软件。
但是,如果样本数量或维度非常高,直接求解困难甚至不可解,于是需要对这个问题进一步处理。引入Lagrange函数:
L
(
w
,
b
,
λ
)
=
1
2
w
T
w
+
∑
i
=
1
N
λ
i
(
1
−
y
i
(
w
T
x
i
+
b
)
)
L(w,b,\lambda)=\frac{1}{2}w^Tw+\sum_{i=1}^N\lambda_i(1-y_i(w^Tx_i+b))
L(w,b,λ)=21wTw+i=1∑Nλi(1−yi(wTxi+b))
我们有原问题就等价于:
a
r
g
m
i
n
w
,
b
m
a
x
λ
L
(
w
,
b
,
λ
i
)
s
.
t
.
λ
i
>
=
0
argmin_{w,b}max_{\lambda}L(w,b,\lambda_i) s.t. \lambda_i>=0
argminw,bmaxλL(w,b,λi)s.t.λi>=0
我们交换最小和最大值的符号得到对偶问题:
max
λ
i
min
w
,
b
L
(
w
,
b
,
λ
i
)
s
.
t
.
λ
i
≥
0
\max_{\lambda_i}\min_{w,b}L(w,b,\lambda_i)\ s.t.\ \lambda_i\ge0
λimaxw,bminL(w,b,λi) s.t. λi≥0
由于不等式约束是仿射函数(Ax+b),对偶问题和原问题等价:
- ∂ ∂ b L = 0 ⇒ ∑ i = 1 N λ i y i = 0 \frac{\partial}{\partial b}L=0\Rightarrow\sum\limits_{i=1}^N\lambda_iy_i=0 ∂b∂L=0⇒i=1∑Nλiyi=0
- w:首先将b代入:
L ( w , b , λ i ) = 1 2 w T w + ∑ i = 1 N λ i ( 1 − y i w T x i − y i b ) = 1 2 w T w + ∑ i = 1 N λ i − ∑ i = 1 N λ i y i w T x i L(w,b,\lambda_i)=\frac{1}{2}w^Tw+\sum\limits_{i=1}^N\lambda_i(1-y_iw^Tx_i-y_ib)=\frac{1}{2}w^Tw+\sum\limits_{i=1}^N\lambda_i-\sum\limits_{i=1}^N\lambda_iy_iw^Tx_i L(w,b,λi)=21wTw+i=1∑Nλi(1−yiwTxi−yib)=21wTw+i=1∑Nλi−i=1∑NλiyiwTxi
所以:
∂ ∂ w L = 0 ⇒ w = ∑ i = 1 N λ i y i x i \frac{\partial}{\partial w}L=0\Rightarrow w=\sum\limits_{i=1}^N\lambda_iy_ix_i ∂w∂L=0⇒w=i=1∑Nλiyixi - 将上面两个参数代入:
L ( w , b , λ i ) = − 1 2 ∑ i = 1 N ∑ j = 1 N λ i λ j y i y j x i T x j + ∑ i = 1 N λ i L(w,b,\lambda_i)=-\frac{1}{2}\sum\limits_{i=1}^N\sum\limits_{j=1}^N\lambda_i\lambda_jy_iy_jx_i^Tx_j+\sum\limits_{i=1}^N\lambda_i L(w,b,λi)=−21i=1∑Nj=1∑NλiλjyiyjxiTxj+i=1∑Nλi
因此,对偶问题就是:
max λ − 1 2 ∑ i = 1 N ∑ j = 1 N λ i λ j y i y j x i T x j + ∑ i = 1 N λ i , s . t . λ i ≥ 0 \max_{\lambda}-\frac{1}{2}\sum\limits_{i=1}^N\sum\limits_{j=1}^N\lambda_i\lambda_jy_iy_jx_i^Tx_j+\sum\limits_{i=1}^N\lambda_i,\ s.t.\ \lambda_i\ge0 λmax−21i=1∑Nj=1∑NλiλjyiyjxiTxj+i=1∑Nλi, s.t. λi≥0
从KKT条件得到超平面的参数:
原问题和对偶问题满足强对偶关系的充要条件为其满足KKT条件:
∂ L ∂ w = 0 , ∂ L ∂ b = 0 λ k ( 1 − y k ( w T x k + b ) ) = 0 ( s l a c k n e s s c o m p l e m e n t a r y ) λ i ≥ 0 1 − y i ( w T x i + b ) ≤ 0 \frac{\partial L}{\partial w}=0,\frac{\partial L}{\partial b}=0 \\\lambda_k(1-y_k(w^Tx_k+b))=0(slackness\ complementary)\\ \lambda_i\ge0\\ 1-y_i(w^Tx_i+b)\le0 ∂w∂L=0,∂b∂L=0λk(1−yk(wTxk+b))=0(slackness complementary)λi≥01−yi(wTxi+b)≤0
根据这个条件就得到了对应的最佳参数:
w ^ = ∑ i = 1 N λ i y i x i b ^ = y k − w T x k = y k − ∑ i = 1 N λ i y i x i T x k , ∃ k , 1 − y k ( w T x k + b ) = 0 \hat{w}=\sum\limits_{i=1}^N\lambda_iy_ix_i\\ \hat{b}=y_k-w^Tx_k=y_k-\sum\limits_{i=1}^N\lambda_iy_ix_i^Tx_k,\exist k,1-y_k(w^Tx_k+b)=0 w^=i=1∑Nλiyixib^=yk−wTxk=yk−i=1∑NλiyixiTxk,∃k,1−yk(wTxk+b)=0
于是这个超平面的参数w就是数据点的线性组合,最终的参数值就是部分满足 y i ( w T x i + b ) = 1 y_i(w^Tx_i+b)=1 yi(wTxi+b)=1向量的线性组合(互补松弛条件给出),这些向量也叫支撑向量。
Soft-margin SVM
Hard-margin的SVM只对可分数据可接,如果不可分的情况,我们的基本想法是在损失函数中加入错误分类的可能性。错误分类的个数可以写成:
e
r
r
o
r
=
∑
i
=
1
N
I
{
y
i
(
w
T
x
i
+
b
)
<
1
}
error=\sum\limits_{i=1}^N\mathbb{I}\{y_i(w^Tx_i+b)\lt1\}
error=i=1∑NI{yi(wTxi+b)<1}
这个函数不连续,可以将其改写为:
e
r
r
o
r
=
∑
i
=
1
N
max
{
0
,
1
−
y
i
(
w
T
x
i
+
b
)
}
error=\sum\limits_{i=1}^N\max\{0,1-y_i(w^Tx_i+b)\}
error=i=1∑Nmax{0,1−yi(wTxi+b)}
求和符号中的式子又叫做Hinge Function
将这个错误加入Hard-margin SVM中,于是:
a
r
g
m
i
n
w
,
b
1
2
w
T
w
+
C
∑
i
=
1
N
max
{
0
,
1
−
y
i
(
w
T
x
i
+
b
)
}
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
−
ξ
i
,
i
=
1
,
2
,
⋯
,
N
\mathop{argmin}_{w,b}\frac{1}{2}w^Tw+C\sum\limits_{i=1}^N\max\{0,1-y_i(w^Tx_i+b)\}\ s.t.\ y_i(w^Tx_i+b)\ge1-\xi_i,i=1,2,\cdots,N
argminw,b21wTw+Ci=1∑Nmax{0,1−yi(wTxi+b)} s.t. yi(wTxi+b)≥1−ξi,i=1,2,⋯,N
这个式子中,常数C可以看作允许的错误水平,同时上式为了进一步消除max符号,对数据集中的每一个观测,我们可以认为其大部分满足约束,但是其中部分违反约束,因此这部分约束变成
y
i
(
w
T
x
+
b
)
≥
1
−
ξ
i
y_i(w^Tx+b)\ge1-\xi_i
yi(wTx+b)≥1−ξi,其中
ξ
i
=
1
−
y
i
(
w
T
x
i
+
b
)
\xi_i=1-y_i(w^Tx_i+b)
ξi=1−yi(wTxi+b),进一步化简:
a
r
g
m
i
n
w
,
b
1
2
w
T
w
+
C
∑
i
=
1
N
ξ
i
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
−
ξ
i
,
ξ
i
≥
0
,
i
=
1
,
2
,
⋯
,
N
\mathop{argmin}_{w,b}\frac{1}{2}w^Tw+C\sum\limits_{i=1}^N\xi_i\ s.t.\ y_i(w^Tx_i+b)\ge1-\xi_i,\xi_i\ge0,i=1,2,\cdots,N
argminw,b21wTw+Ci=1∑Nξi s.t. yi(wTxi+b)≥1−ξi,ξi≥0,i=1,2,⋯,N
Kernel Method
核方法可以应用在很多问题上,在分类问题中,对于严格不可分问题,我们引入一个特征转换函数将原来的不可分的数据集变为可分的数据集,然后再来应用已有的模型。往往将低维空间的数据集变为高维空间的数据集后,数据会变得可分(数据变得更为稀疏):
应用在SVM中时,观察上面的SVM对偶问题:
max
λ
−
1
2
∑
i
=
1
N
∑
j
=
1
N
λ
i
λ
j
y
i
y
j
x
i
T
x
j
+
∑
i
=
1
N
λ
i
,
s
.
t
.
λ
i
≥
0
\max_{\lambda}-\frac{1}{2}\sum\limits_{i=1}^N\sum\limits_{j=1}^N\lambda_i\lambda_jy_iy_jx_i^Tx_j+\sum\limits_{i=1}^N\lambda_i,\ s.t.\ \lambda_i\ge0
λmax−21i=1∑Nj=1∑NλiλjyiyjxiTxj+i=1∑Nλi, s.t. λi≥0
在求解的时候需要求得内积,于是不可分数据在通过特征变换后,需要求得变换后的内积。我们常常很难求得变换函数的内积。于是直接引入内积的变换函数:
∀
x
,
x
′
∈
X
,
∃
ϕ
∈
H
:
x
→
z
s
.
t
.
k
(
x
,
x
′
)
=
ϕ
(
x
)
T
ϕ
(
x
)
\forall x,x'\in\mathcal{X},\exist\phi\in\mathcal{H}:x\rightarrow z\ s.t.\ k(x,x')=\phi(x)^T\phi(x)
∀x,x′∈X,∃ϕ∈H:x→z s.t. k(x,x′)=ϕ(x)Tϕ(x)
称
k
(
x
,
x
′
)
k(x,x^{'})
k(x,x′)为一个正定核函数,其中
H
\mathcal{H}
H是Hilbert空间(完备的线性内积空间),如果去掉内积这个条件我们简单地称为核函数。
k
(
x
,
x
′
)
=
exp
(
−
(
x
−
x
′
)
2
2
σ
2
)
k(x,x')=\exp(-\frac{(x-x')^2}{2\sigma^2})
k(x,x′)=exp(−2σ2(x−x′)2) 是一个核函数。
证明:
exp
(
−
(
x
−
x
′
)
2
2
σ
2
)
=
exp
(
−
x
2
2
σ
2
)
exp
(
x
x
′
σ
2
)
exp
(
−
x
′
2
2
σ
2
=
exp
(
−
x
2
2
σ
2
)
∑
n
=
0
+
∞
x
n
x
′
n
σ
2
n
n
!
exp
(
−
x
′
2
2
σ
2
)
=
exp
(
−
x
2
2
σ
2
)
φ
(
x
)
φ
(
x
′
)
exp
(
−
x
′
2
2
σ
2
)
=
ϕ
(
x
)
ϕ
(
x
′
)
\exp(-\frac{(x-x')^2}{2\sigma^2})=\exp(-\frac{x^2}{2\sigma^2})\exp(\frac{xx'}{\sigma^2})\exp(-\frac{x'^2}{2\sigma^2}\\ =\exp(-\frac{x^2}{2\sigma^2})\sum\limits_{n=0}^{+\infin}\frac{x^nx'^n}{\sigma^{2n}n!}\exp(-\frac{x'^2}{2\sigma^2})\\ =\exp(-\frac{x^2}{2\sigma^2})\varphi(x)\varphi(x')\exp(-\frac{x'^2}{2\sigma^2})\\ =\phi(x)\phi(x')
exp(−2σ2(x−x′)2)=exp(−2σ2x2)exp(σ2xx′)exp(−2σ2x′2=exp(−2σ2x2)n=0∑+∞σ2nn!xnx′nexp(−2σ2x′2)=exp(−2σ2x2)φ(x)φ(x′)exp(−2σ2x′2)=ϕ(x)ϕ(x′)
正定核函数有下面的等价定义:
如果核函数满足:
- 对称性
- 正定性
那么这个核函数是正定核函数。
证明: - 对称性 ⇔ \Leftrightarrow ⇔ k ( x , z ) = k ( z , x ) k(x,z)=k(z,x) k(x,z)=k(z,x),显然满足内积的定义
- 正定性
⇔
\Leftrightarrow
⇔
∀
N
,
x
1
,
x
2
,
⋯
,
x
N
∈
X
\forall N,x_1,x_2,\cdots,x_N\in\mathcal{X}
∀N,x1,x2,⋯,xN∈X,对应的 Gram Matrix
K
=
[
k
(
x
i
,
x
j
)
]
K=[k(x_i,x_j)]
K=[k(xi,xj)] 是半正定的
要证: k ( x , z ) = ϕ ( x ) T ϕ ( z ) ⇔ K k(x,z)=\phi(x)^T\phi(z)\Leftrightarrow K k(x,z)=ϕ(x)Tϕ(z)⇔K 半正定+对称性。