支撑向量机
支撑向量机(SVM)算法在分类问题中有着重要地位,其主要思想是最大化两类之间的间隔。按照数据集的特点:
- 线性可分问题,如之前的感知机算法处理的问题
- 线性可分,只有一点点错误点,如感知机算法发展出来的 Pocket 算法处理的问题
- 非线性问题,完全不可分,如在感知机问题发展出来的多层感知机和深度学习
这三种情况对于 SVM 分别有下面三种处理手段:
- hard-margin SVM
- soft-margin SVM
- kernel Method
SVM 的求解中,大量用到了 Lagrange 乘子法,首先对这种方法进行介绍。
1. 拉格朗日乘子法
一般地,约束优化问题(原问题)可以写成: min x ∈ R p f ( x ) s . t . m i ( x ) ≤ 0 , i = 1 , 2 , ⋯ , M n j ( x ) = 0 , j = 1 , 2 , ⋯ , N \begin{aligned} &\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 \end{aligned} 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)
证明:显然有
min
x
L
≤
L
≤
max
λ
,
η
L
\min\limits_{x}L\le L\le\max\limits_{\lambda,\eta}L
xminL≤L≤λ,ηmaxL,于是显然有
max
λ
,
η
min
x
L
≤
L
\max\limits_{\lambda,\eta}\min\limits_{x}L\le L
λ,ηmaxxminL≤L,且
min
x
max
λ
,
η
L
≥
L
\min\limits_{x}\max\limits_{\lambda,\eta}L\ge L
xminλ,ηmaxL≥L。
对偶问题的解小于原问题,有两种情况:
强对偶:可以取等于号
弱对偶:不可以取等于号
对于一个凸优化问题,有如下定理:
如果凸优化问题满足某些条件如 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 表示相对内部(不包含边界的内部)。
- 对于大多数凸优化问题,Slater 条件成立。
- 松弛 Slater 条件,如果 M 个不等式约束中,有 K 个函数为仿射函数,那么只要其余的函数满足 Slater 条件即可。
也就是说对于大多数凸优化问题,都满足强对偶性,而KKT条件和强对偶关系是等价的,于是KKT条件对最优解的条件为
可行域: m i ( x ∗ ) ≤ 0 n j ( x ∗ ) = 0 λ ∗ ≥ 0 \begin{aligned} m_i(x^*)\le0\\\ n_j(x^*)=0\ \\\lambda^*\ge0 \end{aligned} mi(x∗)≤0 nj(x∗)=0 λ∗≥0
互补松弛 λ i m ( x ∗ ) = 0 , ∀ m i \lambda^m_i(x^*)=0,\forall m_i λim(x∗)=0,∀mi,对偶问题的最佳值为 d ∗ d^* d∗,原问题为 p ∗ p^* p∗ d ∗ = max λ , η g ( λ , η ) = g ( λ , η ) = min x L ( x , λ , η ) ≤ L ( x , λ , η ) = f ( x ∗ ) + ∑ i = 1 M λ i m ( x ∗ ) ≤ f ( x ∗ ) = p ∗ \begin{aligned} 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^* \end{aligned} d∗=λ,ηmaxg(λ,η)=g(λ,η)=xminL(x,λ,η)≤L(x,λ,η)=f(x∗)+i=1∑Mλim(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
2. 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,不妨固定 min 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 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\limits_{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 max λ L ( w , b , λ i ) s . t . λ i ≥ 0 \mathop{argmin}{w,b}\max{\lambda}L(w,b,\lambda_i)\ s.t.\ \lambda_i\ge0 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 由于不等式约束是仿射函数,对偶问题和原问题等价:
-
b b 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 w w:首先将 b b 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
\begin{aligned} &\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 \end{aligned}
∂w∂L=0,∂b∂L=0λk(1−yk(wTxk+b))=0(slackness complementary) λi≥0 1−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λiyixi b^=yk−wTxk=yk−i=1∑NλiyixiTxk,∃k,1−yk(wTxk+b)=0
而有这个公式可以看出来,当
λ
i
!
=
0
\lambda_i != 0
λi!=0的时候必有
1
−
y
k
(
w
T
x
k
+
b
)
=
0
1-y_k(w^Tx_k+b)=0
1−yk(wTxk+b)=0,而当
λ
i
=
0
\lambda_i = 0
λi=0,
1
−
y
k
(
w
T
x
k
+
b
)
!
=
0
1-y_k(w^Tx_k+b)!=0
1−yk(wTxk+b)!=0,也就是说最终对
w
^
\hat{w}
w^起作用的点就是那满足
1
−
y
k
(
w
T
x
k
+
b
)
=
0
1-y_k(w^Tx_k+b)=0
1−yk(wTxk+b)=0,而当
λ
i
=
0
\lambda_i = 0
λi=0的点,这些点组成的向量就是所说的支持向量
3. 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_{i=1}^N\mathbb{I}{y_i(w^Tx_i+b)\lt1} error=i=1∑NIyi(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∑Nmax0,1−yi(wTxi+b) 求和符号中的式子又叫做 Hinge Function。
将这个错误加入 Hard-margin SVM 中,于是:
arg min
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
\argmin_{w,b}\frac{1}{2}w^Tw+C\sum_{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
w,bargmin21wTw+Ci=1∑Nmax0,1−yi(wTxi+b) s.t. yi(wTxi+b)≥1−ξi,i=1,2,⋯,N 这个式子中,常数
C
C
C 可以看作允许的错误水平,同时上式为了进一步消除
max
\max
max 符号,对数据集中的每一个观测,我们可以认为其大部分满足约束,但是其中部分违反约束,因此这部分约束变成
y
i
(
w
T
x
+
b
)
≥
1
−
ξ
i
y_i(w^Tx+b)\ge1-\xi_i
yi(wTx+b)≥1−ξi,其中
ξ
i
=
max
{
0
,
1
−
y
i
(
w
T
x
i
+
b
)
}
\xi_i=\max\{0,1-y_i(w^Tx_i+b)\}
ξi=max{0,1−yi(wTxi+b)},进一步的化简:
arg min
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
\argmin_{w,b}\frac{1}{2}w^Tw+C\sum_{i=1}^N\xi_i\ \\ s.t.\ y_i(w^Tx_i+b)\ge1-\xi_i,\\ \xi_i\ge0,i=1,2,\cdots,N
w,bargmin21wTw+Ci=1∑Nξi s.t. yi(wTxi+b)≥1−ξi,ξi≥0,i=1,2,⋯,N