1.支持向量机的基本思想
基于训练集D在样本空间中找到一个划分超平面(在二维空间中为一条直线,在三维空间中为一个平面),将不同类别的样本分开。
问题来了,这样的超平面有很多,我们应该努力去找到哪一个呢,哪一个是最好的呢?基于上述问题,我们提出三个判定标准:1.可以正确分割样本;2.留有大量的余量,既分类超平面尽可能的离两类样本尽可能的远(分类超平面对测试样本有最强的泛化能力)3.位于两类训练样本“正中间”的超平面(也是为了最大化泛化能力)
基于以上判定标准,我们要选的分类超平面应该是这样的:正样本和负样本中离分类超平面最近的样本点,距离分类超平面的距离尽可能的大(最大化分类间隔)。
2.线性可分的问题
探讨这个问题之前,有一个假设前提,既所有训练样本都是线性可分的(这是一个理想状态,现实中很少有这样的情况,只是为了进一步的推导做铺垫)。
2.1点到超平面的距离
超平面可以用分类函数
f
(
x
)
=
w
T
x
+
b
f(\pmb{x})=\pmb{w}^T\pmb{x}+b
f(xxx)=wwwTxxx+b表示,当
f
(
x
)
f(\pmb{x})
f(xxx)等于0的时候,
x
\pmb{x}
xxx便是位于超平面上的点,而
f
(
x
)
f(\pmb{x})
f(xxx)大于0的点对应 y=1 的数据点,
f
(
x
)
f(\pmb{x})
f(xxx)小于0的点对应y=-1的数据点。
w
\pmb{w}
www是超平面的法向量,与超平面垂直。证明过程如下:设
x
1
\pmb{x}_1
xxx1、
x
2
\pmb{x}_2
xxx2是超平面上任意两点,
w
T
x
1
+
b
=
0
\pmb{w}^T\pmb{x}_1+b=0
wwwTxxx1+b=0
w
T
x
2
+
b
=
0
\pmb{w}^T\pmb{x}_2+b=0
wwwTxxx2+b=0
w
T
(
x
1
−
x
2
)
=
0
\pmb{w}^T(\pmb{x}_1-\pmb{x}_2)=0
wwwT(xxx1−xxx2)=0
根据两个向量的数量积为零,两个向量相互垂直,可推出
w
\pmb{w}
www与
(
x
1
−
x
2
)
(\pmb{x}_1-\pmb{x}_2)
(xxx1−xxx2)相互垂直,而
(
x
1
−
x
2
)
(\pmb{x}_1-\pmb{x}_2)
(xxx1−xxx2)是超平面内任意一向量,所以
w
\pmb{w}
www与超平面垂直,既
w
\pmb{w}
www是超平面的法向量,决定了超平面的方向。
训练集中任意样本点到超平面的距离可表示为:
γ
=
∣
w
T
x
+
b
∣
∥
w
∥
\gamma=\frac{\left|\pmb{w}^T\pmb{x}+b\right|}{\parallel \pmb{w} \parallel}
γ=∥www∥∣∣wwwTxxx+b∣∣
推到过程如下:
γ
=
∥
A
B
⃗
−
O
C
⃗
∥
\gamma=\parallel \ \vec{AB}- \vec{OC} \parallel
γ=∥ AB−OC∥
γ
=
∥
w
T
∥
w
∥
x
w
∥
w
∥
−
−
b
∥
w
∥
w
∥
w
∥
∥
\gamma=\parallel \frac{\pmb{w}^T}{\parallel \pmb{w} \parallel}\pmb{x} \frac{\pmb{w}}{\parallel \pmb{w} \parallel}-\frac{-b}{\parallel \pmb{w} \parallel}\frac{\pmb{w}}{\parallel \pmb{w} \parallel} \parallel
γ=∥∥www∥wwwTxxx∥www∥www−∥www∥−b∥www∥www∥
w
T
/
∥
w
∥
\pmb{w}^T/\parallel \pmb{w} \parallel
wwwT/∥www∥表示
w
\pmb{w}
www向量的单位向量,与向量
x
\pmb{x}
xxx进行数量积操作,结果为表示向量
x
\pmb{x}
xxx在
w
\pmb{w}
www方向上投影的长度,在乘以
w
\pmb{w}
www方向上的单位向量既为向量
A
B
⃗
\vec{AB}
AB
O
C
⃗
=
λ
0
w
∥
w
∥
\vec{OC}=\lambda_0\frac{\pmb{w}}{\parallel \pmb{w} \parallel}
OC=λ0∥www∥www
w
T
λ
0
w
∥
w
∥
+
b
=
0
\pmb{w}^T\lambda_0\frac{\pmb{w}}{\parallel \pmb{w} \parallel}+b=0
wwwTλ0∥www∥www+b=0
λ
0
=
−
b
∥
w
∥
\lambda_0=\frac{-b}{\parallel \pmb{w} \parallel}
λ0=∥www∥−b
O
C
⃗
=
−
b
∥
w
∥
w
∥
w
∥
\vec{OC}=\frac{-b}{\parallel \pmb{w} \parallel}\frac{\pmb{w}}{\parallel \pmb{w} \parallel}
OC=∥www∥−b∥www∥www
2.2线性可分的原问题
对于正样本:
w
T
x
+
b
≥
0
\pmb{w}^T\pmb{x}+b\geq0
wwwTxxx+b≥0
对于负样本:
w
T
x
+
b
≤
0
\pmb{w}^T\pmb{x}+b\leq0
wwwTxxx+b≤0
可以统一写成
y
i
(
w
T
x
i
+
b
)
≥
0
y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\geq0
yi(wwwTxixixi+b)≥0
y
i
∈
{
−
1
,
+
1
}
y_i\in\{-1,+1\}
yi∈{−1,+1}
为了消除冗余并简化问题,我们令正样本或负样本距离分类超平面最近的点:
m
i
n
i
∣
w
T
x
i
+
b
∣
=
1
min_i\left|\pmb{w}^T\pmb{x_i}+b\right|=1
mini∣∣wwwTxixixi+b∣∣=1
因此‘'间隔“(margin)为:
d
=
γ
+
+
γ
−
d=\gamma^++\gamma^-
d=γ++γ−
d
=
1
∥
w
∥
+
1
∥
w
∥
=
2
∥
w
∥
d=\frac{1}{\parallel \pmb{w} \parallel}+\frac{1}{\parallel \pmb{w} \parallel}=\frac{2}{\parallel \pmb{w} \parallel}
d=∥www∥1+∥www∥1=∥www∥2
线性可分的问题为(带有不等式的最小化问题):
m
i
n
(
1
2
w
T
w
)
min(\frac{1}{2}\pmb{w}^T\pmb{w})
min(21wwwTwww)
y
i
(
w
T
x
i
+
b
)
≥
1
y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\geq1
yi(wwwTxixixi+b)≥1
证明这个问题是凸优化问题:
补充知识开始
凸优化问题有两个限定:1变量的可行域是一个凸集;2目标函数是一个凸函数。
凸集的定义为,如果变量
x
,
y
∈
C
x,y\in C
x,y∈C,那么他们连线上的任何一个点
θ
x
+
(
1
−
θ
)
y
∈
C
\theta x+(1-\theta)y\in C
θx+(1−θ)y∈C,
0
≤
θ
≤
1
0\leq\theta\leq1
0≤θ≤1。几个典型的凸集:
R
n
\mathbb{R}^n
Rn,
{
x
∈
R
n
:
A
x
=
b
}
\{\pmb{x}\in\mathbb{R}^n:A\pmb{x}=b\}
{xxx∈Rn:Axxx=b},
R
n
\mathbb{R}^n
Rn,
{
x
∈
R
n
:
A
x
≤
b
}
\{\pmb{x}\in\mathbb{R}^n:A\pmb{x}\leq b\}
{xxx∈Rn:Axxx≤b},以及
∩
C
i
\cap C_i
∩Ci(多个凸集的交集)。
凸函数的定义为,
f
(
θ
x
+
(
1
−
θ
)
y
<
θ
f
(
x
)
+
(
1
−
θ
)
f
(
y
)
f(\theta\pmb{x}+(1-\theta)\pmb{y}<\theta f(\pmb{x})+(1-\theta)f(\pmb{y})
f(θxxx+(1−θ)yyy<θf(xxx)+(1−θ)f(yyy)。
一阶判别法:
一元函数:
f
(
x
′
)
≥
f
′
(
x
)
(
x
′
−
x
)
+
f
(
x
)
f(x')\geq f\prime(x)(x'-x)+f(x)
f(x′)≥f′(x)(x′−x)+f(x),抛物线上任意一点的切线在抛物线的下方。
多元函数:
f
(
x
′
)
≥
∇
f
(
x
)
(
x
′
−
x
)
+
f
(
x
)
f(\pmb{x}')\geq \nabla f(\pmb{x})(\pmb{x}'-\pmb{x})+f(\pmb{x})
f(xxx′)≥∇f(xxx)(xxx′−xxx)+f(xxx)
二阶判别法:
一元函数:
f
′
′
(
x
)
≥
0
f\prime \prime(x)\geq0
f′′(x)≥0
多元函数:Hessian矩阵为半正定矩阵。如果为正定矩阵,那么为严格的凸函数
其他判别法:
f
(
x
)
=
∑
i
=
0
n
w
i
f
i
(
x
)
f(\pmb{x})=\sum_{i=0}^nw_if_i(\pmb{x})
f(xxx)=∑i=0nwifi(xxx) , 多个凸函数的线性相加仍未凸函数
补充知识结束
1.
w
\pmb{w}
www的可行域为多个线性不等式围成的区域,因此其可行域为凸集。
2.
1
2
w
T
w
\frac{1}{2}\pmb{w}^T\pmb{w}
21wwwTwww为凸函数,因为其Hessian矩阵为单位矩阵(
1
2
(
w
1
2
+
w
2
2
+
w
3
2
+
w
4
2
+
…
+
w
n
2
)
\frac{1}{2}(w_1^2+w_2^2+w_3^2+w_4^2+\ldots+w_n^2)
21(w12+w22+w32+w42+…+wn2),因此函数为严格凸函数。
基于以上两点,这是一个凸优化的问题。
利用拉格朗日乘子法解决带有约束的优化问题:
L
(
w
,
b
,
α
)
=
1
2
∥
w
∥
2
−
∑
i
=
1
l
α
i
(
y
i
(
w
T
x
i
+
b
)
−
1
)
L(\pmb{w},b,\alpha)=\frac{1}{2} \parallel \pmb{w}\parallel^2-\sum_{i=1}^l\alpha_i(y_i(\pmb{w}^T\pmb{x_i}+b)-1)
L(www,b,α)=21∥www∥2−i=1∑lαi(yi(wwwTxixixi+b)−1)
其原问题为:
m
i
n
w
,
b
m
a
x
α
L
(
w
,
b
,
α
)
min_{w,b}max_\alpha L(\pmb{w},b,\alpha)
minw,bmaxαL(www,b,α)
2.3线性可分的对偶问题
补充知识开始
对偶问题的基本思想:把难以解决的原始问题,转换为等价的另一个问题,且另一个问题要容易求解一些。
广义的拉格朗日乘子法(带有一组等式约束和一组不等式约束):
m
i
n
f
(
x
)
minf(\pmb{x})
minf(xxx)
g
i
(
x
)
≤
0
i
=
1
,
…
,
m
g_i(\pmb{x})\leq0\ \ \ i=1,\ldots,m
gi(xxx)≤0 i=1,…,m
h
i
i
(
x
)
=
0
i
=
1
,
…
,
p
hi_i(\pmb{x})=0\ \ \ i=1,\ldots,p
hii(xxx)=0 i=1,…,p
L
(
x
,
λ
,
ν
)
=
f
(
x
)
+
∑
i
=
1
m
λ
i
g
i
(
x
)
+
∑
i
=
1
p
ν
i
h
i
(
x
)
L(\pmb{x},\lambda,\nu)=f(\pmb{x})+\sum_{i=1}^m\lambda_ig_i(\pmb{x})+\sum_{i=1}^p\nu_ih_i(\pmb{x})
L(xxx,λ,ν)=f(xxx)+i=1∑mλigi(xxx)+i=1∑pνihi(xxx)
原问题:
p
∗
=
m
i
n
x
m
a
x
λ
,
ν
,
λ
i
≥
0
L
(
x
,
λ
,
ν
)
p^*=min_xmax_{\lambda,\nu,\lambda_i\geq0}L(\pmb{x},\lambda,\nu)
p∗=minxmaxλ,ν,λi≥0L(xxx,λ,ν)
原问题分两步来求解,第一步固定
x
\pmb{x}
xxx(把
x
\pmb{x}
xxx当成常数),变动
λ
,
ν
\lambda,\nu
λ,ν,取最大值;第二步,变动
x
\pmb{x}
xxx取最小值。原问题等价于我们要求解的问题,证明思路:因为
λ
i
≥
0
,
g
(
x
)
≤
0
\lambda_i\geq0,g(\pmb{x})\leq0
λi≥0,g(xxx)≤0,所以
∑
i
=
1
m
λ
i
g
i
(
x
)
\sum_{i=1}^m\lambda_ig_i(\pmb{x})
∑i=1mλigi(xxx)最大等于零。因为
h
i
i
(
x
)
=
0
hi_i(\pmb{x})=0
hii(xxx)=0,所以
∑
i
=
1
p
ν
i
h
i
(
x
)
\sum_{i=1}^p\nu_ih_i(\pmb{x})
∑i=1pνihi(xxx)等于零。综上当变动
λ
,
ν
\lambda,\nu
λ,ν时,函数的最大值就是
f
(
x
)
f(\pmb{x})
f(xxx),原问题就变成了
m
i
n
x
f
(
x
)
min_xf(\pmb{x})
minxf(xxx)。
对偶问题:
d
∗
=
m
a
x
λ
,
ν
,
λ
i
≥
0
m
i
n
x
L
(
x
,
λ
,
ν
)
d^*=max_{\lambda,\nu,\lambda_i\geq0}min_xL(\pmb{x},\lambda,\nu)
d∗=maxλ,ν,λi≥0minxL(xxx,λ,ν)
弱对偶:
d
∗
=
m
a
x
λ
,
ν
,
λ
i
≥
0
m
i
n
x
L
(
x
,
λ
,
ν
)
≤
m
i
n
x
m
a
x
λ
,
ν
,
λ
i
≥
0
L
(
x
,
λ
,
ν
)
=
p
∗
d^*=max_{\lambda,\nu,\lambda_i\geq0}min_xL(\pmb{x},\lambda,\nu)\leq min_xmax_{\lambda,\nu,\lambda_i\geq0}L(\pmb{x},\lambda,\nu)=p^*
d∗=maxλ,ν,λi≥0minxL(xxx,λ,ν)≤minxmaxλ,ν,λi≥0L(xxx,λ,ν)=p∗
强对偶:
满足slatter条件(充分非必要条件)可以转为强对偶,1.原始问题为一个凸优化问题;2.存在一个可行解,另不等式约束
g
i
(
x
)
g_i(\pmb{x})
gi(xxx)严格满足,也就是不等式不能取等号(所有
g
i
(
x
)
g_i(\pmb{x})
gi(xxx)都小于零)
d
∗
=
m
a
x
λ
,
ν
,
λ
i
≥
0
m
i
n
x
L
(
x
,
λ
,
ν
)
=
m
i
n
x
m
a
x
λ
,
ν
,
λ
i
≥
0
L
(
x
,
λ
,
ν
)
=
p
∗
d^*=max_{\lambda,\nu,\lambda_i\geq0}min_xL(\pmb{x},\lambda,\nu)=min_xmax_{\lambda,\nu,\lambda_i\geq0}L(\pmb{x},\lambda,\nu)=p^*
d∗=maxλ,ν,λi≥0minxL(xxx,λ,ν)=minxmaxλ,ν,λi≥0L(xxx,λ,ν)=p∗
补充知识结束
原问题满足slatter条件:
1.原问题是一个凸优化问题,前面以证明;2.至少存在一组
w
,
b
\pmb{w},b
www,b使
y
i
(
w
T
x
i
+
b
)
≥
1
y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\geq1
yi(wwwTxixixi+b)≥1成立,那么
100
w
,
100
b
100\pmb{w},100b
100www,100b也是满足条件的解,一定可以让
y
i
(
w
T
x
i
+
b
)
>
1
y_i\left(\pmb{w}^T\pmb{x_i}+b\right)>1
yi(wwwTxixixi+b)>1成立。
原问题转换为对偶问题:
m
i
n
w
,
b
m
a
x
α
L
(
w
,
b
,
α
)
=
m
a
x
α
m
i
n
w
,
b
L
(
w
,
b
,
α
)
min_{w,b}max_\alpha L(\pmb{w},b,\alpha)=max_\alpha min_{w,b}L(\pmb{w},b,\alpha)
minw,bmaxαL(www,b,α)=maxαminw,bL(www,b,α)
L
(
w
,
b
,
α
)
=
1
2
∥
w
∥
2
−
∑
i
=
1
l
α
i
(
y
i
(
w
T
x
i
+
b
)
−
1
)
L(\pmb{w},b,\alpha)=\frac{1}{2} \parallel \pmb{w}\parallel^2-\sum_{i=1}^l\alpha_i(y_i(\pmb{w}^T\pmb{x_i}+b)-1)
L(www,b,α)=21∥www∥2−i=1∑lαi(yi(wwwTxixixi+b)−1)
∂
L
∂
b
=
0
⇒
∑
i
=
1
l
α
i
y
i
=
0
\frac{\partial L}{\partial b}=0 \ \ \Rightarrow\ \ \sum_{i=1}^l\alpha_iy_i=0
∂b∂L=0 ⇒ i=1∑lαiyi=0
∇
w
L
=
0
⇒
w
=
∑
i
=
1
l
α
i
y
i
x
i
\nabla_wL=0 \ \ \Rightarrow\ \ \pmb{w}=\sum_{i=1}^l\alpha_iy_i\pmb{x_i}
∇wL=0 ⇒ www=i=1∑lαiyixixixi
带入原式得出:
m
a
x
α
−
1
2
∑
i
=
1
l
∑
j
=
1
l
α
i
α
j
y
i
y
j
x
i
T
x
j
+
∑
k
=
1
l
α
k
max_\alpha-\frac{1}{2}\sum_{i=1}^l\sum_{j=1}^l\alpha_i\alpha_jy_iy_j\pmb{x_i}^T\pmb{x_j}+\sum_{k=1}^l\alpha_k
maxα−21i=1∑lj=1∑lαiαjyiyjxixixiTxjxjxj+k=1∑lαk
转换为新的最优化问题:
m
i
n
α
1
2
∑
i
=
1
l
∑
j
=
1
l
α
i
α
j
y
i
y
j
x
i
T
x
j
−
∑
k
=
1
l
α
k
min_\alpha\frac{1}{2}\sum_{i=1}^l\sum_{j=1}^l\alpha_i\alpha_jy_iy_j\pmb{x_i}^T\pmb{x_j}-\sum_{k=1}^l\alpha_k
minα21i=1∑lj=1∑lαiαjyiyjxixixiTxjxjxj−k=1∑lαk
α
i
≥
0
,
i
=
1
,
…
,
l
\alpha_i\geq0,\ \ \ i=1,\ldots,l
αi≥0, i=1,…,l
∑
i
=
1
l
α
i
y
i
=
0
\sum_{i=1}^l\alpha_iy_i=0
i=1∑lαiyi=0
预测超平面方程为:
w
=
∑
i
=
1
l
α
i
y
i
x
i
\pmb{w}=\sum_{i=1}^l\alpha_iy_i\pmb{x_i}
www=i=1∑lαiyixixixi
每一个样本都对应一个
α
i
\alpha_i
αi,当
α
i
\alpha_i
αi不等于0时,其对应样本对
w
\pmb{w}
www的计算产生作用,这样的向量成为支持向量。
f
(
x
)
=
∑
i
=
1
l
α
i
y
i
x
i
T
x
+
b
f(\pmb{x})=\sum_{i=1}^l\alpha_iy_i\pmb{x_i}^T\pmb{x}+b
f(xxx)=i=1∑lαiyixixixiTxxx+b
3.线性不可分的问题
线性可分过于理想化,实际中遇到的样本绝大多数都是线性不可分的。下面我们将得到的方程进行扩展,使之可以处理线性不可分的问题。
线性可分的问题:
m
i
n
1
2
w
T
w
min\frac{1}{2}\pmb{w}^T\pmb{w}
min21wwwTwww
y
i
(
w
T
x
+
b
)
≥
1
y_i\left(\pmb{w}^T\pmb{x}+b\right)\geq1
yi(wwwTxxx+b)≥1
线性不可分的问题是在原问题的基础上加上松弛变量
ξ
\xi
ξ和惩罚因子
C
C
C,增加松弛因子后,允许样本点落在”间隔“内:
m
i
n
(
1
2
w
T
w
+
C
∑
i
=
1
l
ξ
i
)
min(\frac{1}{2}\pmb{w}^T\pmb{w}+C\sum_{i=1}^l\xi_i)
min(21wwwTwww+Ci=1∑lξi)
y
i
(
w
T
x
i
+
b
)
≥
1
−
ξ
i
y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\geq1-\xi_i
yi(wwwTxixixi+b)≥1−ξi
−
(
y
i
(
w
T
x
i
+
b
)
−
1
+
ξ
i
)
≤
0
-(y_i\left(\pmb{w}^T\pmb{x_i}+b\right)-1+\xi_i)\leq0
−(yi(wwwTxixixi+b)−1+ξi)≤0
−
ξ
i
≤
0
,
i
=
1
,
2
,
…
,
l
-\xi_i\leq0,\ \ \ i=1,2,\ldots,l
−ξi≤0, i=1,2,…,l
这仍然是一个凸优化问题,并满足Slater条件,证明同上。构建拉格朗日乘子函数:
L
(
w
,
b
,
α
,
ξ
,
β
)
=
1
2
∥
w
∥
2
+
C
∑
i
=
i
l
ξ
i
−
∑
i
=
1
l
α
i
(
y
i
(
w
T
x
i
+
b
)
−
1
)
−
∑
i
=
1
β
i
ξ
i
L(\pmb{w},b,\alpha,\xi,\beta)=\frac{1}{2} \parallel \pmb{w}\parallel^2+C\sum_{i=i}^l\xi_i-\sum_{i=1}^l\alpha_i(y_i(\pmb{w}^T\pmb{x_i}+b)-1)-\sum_{i=1}\beta_i\xi_i
L(www,b,α,ξ,β)=21∥www∥2+Ci=i∑lξi−i=1∑lαi(yi(wwwTxixixi+b)−1)−i=1∑βiξi
原问题为:
m
i
n
w
,
b
,
β
,
ξ
m
a
x
α
L
(
w
,
b
,
α
,
ξ
,
β
)
min_{w,b,\beta,\xi}max_{\alpha} L(\pmb{w},b,\alpha,\xi,\beta)
minw,b,β,ξmaxαL(www,b,α,ξ,β)
对偶问题为:
m
a
x
α
m
i
n
w
,
b
,
β
,
ξ
L
(
w
,
b
,
α
,
ξ
,
β
)
max_\alpha min_{w,b,\beta,\xi}L(\pmb{w},b,\alpha,\xi,\beta)
maxαminw,b,β,ξL(www,b,α,ξ,β)
∂
L
∂
b
=
0
⇒
∑
i
=
1
l
α
i
y
i
=
0
\frac{\partial L}{\partial b}=0 \ \ \Rightarrow\ \ \sum_{i=1}^l\alpha_iy_i=0
∂b∂L=0 ⇒ i=1∑lαiyi=0
∇
ξ
L
=
0
⇒
α
i
+
β
i
=
C
\nabla_\xi L=0 \ \ \Rightarrow\ \ \ \alpha_i+\beta_i=C
∇ξL=0 ⇒ αi+βi=C
∇
w
L
=
0
⇒
w
=
∑
i
=
1
l
α
i
y
i
x
i
\nabla_wL=0 \ \ \Rightarrow\ \ \pmb{w}=\sum_{i=1}^l\alpha_iy_i\pmb{x_i}
∇wL=0 ⇒ www=i=1∑lαiyixixixi
带入原式转化为新的问题:
m
i
n
α
1
2
∑
i
=
1
l
∑
j
=
1
l
α
i
α
j
y
i
y
j
x
i
T
x
j
−
∑
k
=
1
l
α
k
min_\alpha\frac{1}{2}\sum_{i=1}^l\sum_{j=1}^l\alpha_i\alpha_jy_iy_j\pmb{x_i}^T\pmb{x_j}-\sum_{k=1}^l\alpha_k
minα21i=1∑lj=1∑lαiαjyiyjxixixiTxjxjxj−k=1∑lαk
0
≤
α
i
≤
C
,
i
=
1
,
…
,
l
0\leq\alpha_i\leq C,\ \ \ i=1,\ldots,l
0≤αi≤C, i=1,…,l
∑
i
=
1
l
α
i
y
i
=
0
\sum_{i=1}^l\alpha_iy_i=0
i=1∑lαiyi=0
仍然是一个线性模型,预测方程为:
f
(
x
)
=
∑
i
=
1
l
α
i
y
i
x
i
T
x
+
b
f(\pmb{x})=\sum_{i=1}^l\alpha_iy_i\pmb{x_i}^T\pmb{x}+b
f(xxx)=i=1∑lαiyixixixiTxxx+b
4.KKT条件对原问题最优解的约束
补充知识开始:KKT条件
广义的拉格朗日乘子法(带有一组等式约束和一组不等式约束):
m
i
n
f
(
x
)
minf(\pmb{x})
minf(xxx)
g
i
(
x
)
≤
0
i
=
1
,
…
,
m
g_i(\pmb{x})\leq0\ \ \ i=1,\ldots,m
gi(xxx)≤0 i=1,…,m
h
i
i
(
x
)
=
0
i
=
1
,
…
,
p
hi_i(\pmb{x})=0\ \ \ i=1,\ldots,p
hii(xxx)=0 i=1,…,p
L
(
x
,
λ
,
ν
)
=
f
(
x
)
+
∑
i
=
1
m
λ
i
g
i
(
x
)
+
∑
i
=
1
p
ν
i
h
i
(
x
)
L(\pmb{x},\lambda,\nu)=f(\pmb{x})+\sum_{i=1}^m\lambda_ig_i(\pmb{x})+\sum_{i=1}^p\nu_ih_i(\pmb{x})
L(xxx,λ,ν)=f(xxx)+i=1∑mλigi(xxx)+i=1∑pνihi(xxx)
在极值点处必须满足如下条件:
∇
x
L
(
x
∗
)
=
0
\nabla_xL(\pmb{x}^*)=0
∇xL(xxx∗)=0
λ
i
≥
0
\lambda_i\geq0
λi≥0
λ
i
g
i
(
x
∗
)
=
0
\lambda_ig_i(\pmb{x}^*)=0
λigi(xxx∗)=0
h
i
(
x
∗
)
=
0
h_i(\pmb{x}^*)=0
hi(xxx∗)=0
g
i
(
x
∗
)
≤
0
g_i(\pmb{x}^*)\leq0
gi(xxx∗)≤0
补充知识结束
线性不可分的原问题为:
m
i
n
(
1
2
w
T
w
+
C
∑
i
=
1
l
ξ
i
)
min(\frac{1}{2}\pmb{w}^T\pmb{w}+C\sum_{i=1}^l\xi_i)
min(21wwwTwww+Ci=1∑lξi)
−
(
y
i
(
w
T
x
i
+
b
)
−
1
+
ξ
i
)
≤
0
,
i
=
1
,
2
,
…
,
l
-(y_i\left(\pmb{w}^T\pmb{x_i}+b\right)-1+\xi_i)\leq0,\ \ \ i=1,2,\ldots,l
−(yi(wwwTxixixi+b)−1+ξi)≤0, i=1,2,…,l
−
ξ
i
≤
0
,
i
=
1
,
2
,
…
,
l
-\xi_i\leq0,\ \ \ i=1,2,\ldots,l
−ξi≤0, i=1,2,…,l
构建拉格朗日乘子函数:
L
(
w
,
b
,
α
,
ξ
,
β
)
=
1
2
∥
w
∥
2
+
C
∑
i
=
i
l
ξ
i
−
∑
i
=
1
l
α
i
(
y
i
(
w
T
x
i
+
b
)
−
1
)
−
∑
i
=
1
β
i
ξ
i
L(\pmb{w},b,\alpha,\xi,\beta)=\frac{1}{2} \parallel \pmb{w}\parallel^2+C\sum_{i=i}^l\xi_i-\sum_{i=1}^l\alpha_i(y_i(\pmb{w}^T\pmb{x_i}+b)-1)-\sum_{i=1}\beta_i\xi_i
L(www,b,α,ξ,β)=21∥www∥2+Ci=i∑lξi−i=1∑lαi(yi(wwwTxixixi+b)−1)−i=1∑βiξi
根据KKT条件得出,在极值点处:
α
i
(
y
i
(
w
T
x
i
+
b
)
−
1
+
ξ
i
)
=
0
\alpha_i(y_i\left(\pmb{w}^T\pmb{x_i}+b\right)-1+\xi_i)=0
αi(yi(wwwTxixixi+b)−1+ξi)=0
β
i
ξ
i
=
0
\beta_i\xi_i=0
βiξi=0
当
α
i
>
0
\alpha_i>0
αi>0
y
i
(
w
T
x
i
+
b
)
−
1
+
ξ
i
=
0
y_i\left(\pmb{w}^T\pmb{x_i}+b\right)-1+\xi_i=0
yi(wwwTxixixi+b)−1+ξi=0
y
i
(
w
T
x
i
+
b
)
=
1
−
ξ
i
y_i\left(\pmb{w}^T\pmb{x_i}+b\right)=1-\xi_i
yi(wwwTxixixi+b)=1−ξi
ξ
i
≥
0
\xi_i\geq0
ξi≥0
⇓
\Downarrow
⇓
y
i
(
w
T
x
i
+
b
)
≤
1
y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\leq1
yi(wwwTxixixi+b)≤1
当
α
i
<
C
\alpha_i<C
αi<C
α
i
+
β
i
=
C
\alpha_i+\beta_i=C
αi+βi=C
⇓
\Downarrow
⇓
β
i
>
0
(
β
i
ξ
i
=
0
)
\beta_i>0(\beta_i\xi_i=0)
βi>0(βiξi=0)
⇓
\Downarrow
⇓
ξ
i
=
0
\xi_i=0
ξi=0
⇓
\Downarrow
⇓
y
i
(
w
T
x
i
+
b
)
≥
1
y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\geq1
yi(wwwTxixixi+b)≥1
综上当
0
<
α
i
<
C
0<\alpha_i<C
0<αi<C
y
i
(
w
T
x
i
+
b
)
=
1
y_i\left(\pmb{w}^T\pmb{x_i}+b\right)=1
yi(wwwTxixixi+b)=1
当
α
i
=
0
\alpha_i=0
αi=0
α
i
+
β
i
=
C
\alpha_i+\beta_i=C
αi+βi=C
⇓
\Downarrow
⇓
β
i
=
C
(
β
i
ξ
i
=
0
)
\beta_i=C(\beta_i\xi_i=0)
βi=C(βiξi=0)
⇓
\Downarrow
⇓
ξ
i
=
0
\xi_i=0
ξi=0
⇓
\Downarrow
⇓
y
i
(
w
T
x
i
+
b
)
≥
1
y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\geq1
yi(wwwTxixixi+b)≥1
当
α
i
=
C
\alpha_i=C
αi=C
α
i
+
β
i
=
C
\alpha_i+\beta_i=C
αi+βi=C
⇓
\Downarrow
⇓
β
i
=
0
(
β
i
ξ
i
=
0
)
\beta_i=0(\beta_i\xi_i=0)
βi=0(βiξi=0)
⇓
\Downarrow
⇓
ξ
i
≥
0
\xi_i\geq0
ξi≥0
⇓
\Downarrow
⇓
y
i
(
w
T
x
i
+
b
)
≤
1
y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\leq1
yi(wwwTxixixi+b)≤1
总结如下:
α
i
=
0
⇒
y
i
(
w
T
x
i
+
b
)
≥
1
\alpha_i=0\Rightarrow y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\geq1
αi=0⇒yi(wwwTxixixi+b)≥1
0
<
α
i
<
C
⇒
y
i
(
w
T
x
i
+
b
)
=
1
0<\alpha_i<C\Rightarrow y_i\left(\pmb{w}^T\pmb{x_i}+b\right)=1
0<αi<C⇒yi(wwwTxixixi+b)=1
α
i
=
C
⇒
y
i
(
w
T
x
i
+
b
)
≤
1
\alpha_i=C\Rightarrow y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\leq1
αi=C⇒yi(wwwTxixixi+b)≤1
4.核函数
虽然引入了松弛变量和惩罚因子,可以处理线性不可分的问题,但SVM还是一个线性模型,只是允许错分样本的存在
4.1核映射
核映射
z
=
ϕ
(
x
)
\pmb{z}=\phi(\pmb{x})
zzz=ϕ(xxx),将向量
x
\pmb{x}
xxx映射为更高维的向量
z
\pmb{z}
zzz。问题变为:
m
i
n
α
1
2
∑
i
=
1
l
∑
j
=
1
l
α
i
α
j
y
i
y
j
ϕ
(
x
i
)
T
ϕ
(
x
j
)
−
∑
k
=
1
l
α
k
min_\alpha\frac{1}{2}\sum_{i=1}^l\sum_{j=1}^l\alpha_i\alpha_jy_iy_j\phi(\pmb{x_i})^T\phi(\pmb{x_j})-\sum_{k=1}^l\alpha_k
minα21i=1∑lj=1∑lαiαjyiyjϕ(xixixi)Tϕ(xjxjxj)−k=1∑lαk
0
≤
α
i
≤
C
,
i
=
1
,
…
,
l
0\leq\alpha_i\leq C,\ \ \ i=1,\ldots,l
0≤αi≤C, i=1,…,l
∑
i
=
1
l
α
i
y
i
=
0
\sum_{i=1}^l\alpha_iy_i=0
i=1∑lαiyi=0
这样做的缺点是,如果
x
\pmb{x}
xxx本身的维度已经很高了,经过映射后边的维度更高,容易产生维度爆炸,导致计算困难。
4.2核函数
核函数先做内积,然后在做高维映射,其结果与核映射等价,这样就解决了上面的缺点:
K
(
x
i
,
x
j
)
=
K
(
x
i
T
x
j
)
=
ϕ
(
x
i
)
T
ϕ
(
x
j
)
K(\pmb{x_i},\pmb{x_j})=K(\pmb{x_i}^T\pmb{x_j})=\phi(\pmb{x_i})^T\phi(\pmb{x_j})
K(xixixi,xjxjxj)=K(xixixiTxjxjxj)=ϕ(xixixi)Tϕ(xjxjxj)
此时问题变为:
m
i
n
α
1
2
∑
i
=
1
l
∑
j
=
1
l
α
i
α
j
y
i
y
j
K
(
x
i
T
x
j
)
−
∑
k
=
1
l
α
k
min_\alpha\frac{1}{2}\sum_{i=1}^l\sum_{j=1}^l\alpha_i\alpha_jy_iy_jK(\pmb{x_i}^T\pmb{x_j})-\sum_{k=1}^l\alpha_k
minα21i=1∑lj=1∑lαiαjyiyjK(xixixiTxjxjxj)−k=1∑lαk
0
≤
α
i
≤
C
,
i
=
1
,
…
,
l
0\leq\alpha_i\leq C,\ \ \ i=1,\ldots,l
0≤αi≤C, i=1,…,l
∑
i
=
1
l
α
i
y
i
=
0
\sum_{i=1}^l\alpha_iy_i=0
i=1∑lαiyi=0
此时的预测方程为:
f
(
x
)
=
∑
i
=
1
l
α
i
y
i
K
(
x
i
T
x
)
+
b
f(\pmb{x})=\sum_{i=1}^l\alpha_iy_iK(\pmb{x_i}^T\pmb{x})+b
f(xxx)=i=1∑lαiyiK(xixixiTxxx)+b
4.3 常用的核函数
不是任何一个函数都也可以用来做核函数的。核函数必须满足Mercer条件:对任意的有限个样本的样本集,核矩阵半正定。
核函数 | 计算公式 |
---|---|
线性核 | K ( x i , x j ) = x i T x j K(\pmb{x_i},\pmb{x_j})=\pmb{x_i}^T\pmb{x_j} K(xixixi,xjxjxj)=xixixiTxjxjxj |
多项式核 | K ( x i , x j ) = ( γ x i T x j + b ) d K(\pmb{x_i},\pmb{x_j})=(\gamma\pmb{x_i}^T\pmb{x_j}+b)^d K(xixixi,xjxjxj)=(γxixixiTxjxjxj+b)d |
高斯核 | K ( x i , x j ) = e x p ( − γ ∥ x i − x j ∥ 2 ) K(\pmb{x_i},\pmb{x_j})=exp(-\gamma\parallel\pmb{x_i}-\pmb{x_j}\parallel^2) K(xixixi,xjxjxj)=exp(−γ∥xixixi−xjxjxj∥2) |
sigmoid核 | K ( x i , x j ) = t a n h ( γ x i T x j + b ) K(\pmb{x_i},\pmb{x_j})=tanh(\gamma\pmb{x_i}^T\pmb{x_j}+b) K(xixixi,xjxjxj)=tanh(γxixixiTxjxjxj+b) |
5.SMO算法
m
i
n
α
1
2
∑
i
=
1
l
∑
j
=
1
l
α
i
α
j
y
i
y
j
K
(
x
i
T
x
j
)
−
∑
k
=
1
l
α
k
min_\alpha\frac{1}{2}\sum_{i=1}^l\sum_{j=1}^l\alpha_i\alpha_jy_iy_jK(\pmb{x_i}^T\pmb{x_j})-\sum_{k=1}^l\alpha_k
minα21i=1∑lj=1∑lαiαjyiyjK(xixixiTxjxjxj)−k=1∑lαk
0
≤
α
i
≤
C
,
i
=
1
,
…
,
l
0\leq\alpha_i\leq C,\ \ \ i=1,\ldots,l
0≤αi≤C, i=1,…,l
∑
i
=
1
l
α
i
y
i
=
0
\sum_{i=1}^l\alpha_iy_i=0
i=1∑lαiyi=0
上述问题是要求解 l l l个参数( α 1 , α 2 , α 3 , α 4 , … , α l \alpha_1,\alpha_2,\alpha_3,\alpha_4,\ldots,\alpha_l α1,α2,α3,α4,…,αl),令函数取最小值。有多种算法可以对上述问题求解,但是算法复杂度均很大。1998年,由Platt提出的序列最小最优化算法(SMO)可以高效的求解上述SVM问题。其基本思路是:如果所有变量的解都满足此最优化的KKT条件,那么这个最优化问题的解就得到了,因为KKT条件是该优化问题的充分必要条件。在实际操作过程中,每次选择两个变量,固定其他变量(当作常数),针对这两个变量构建一个二次规划问题,关于这两个变量的解应该更接近原始二次规划问题的解,因为这会使原始二次规划问题的目标函数值变得更小。这时子问题可以通过解析方法求解,这样可以大大提高整个算法的计算速度。
5.1 求解过程
第一步:设置
α
\alpha
α列表,并设其初始值为0(每个样本对应一个
α
i
\alpha_i
αi)
第二步:选取两个待优化变量,为了方便,记为
α
1
\alpha_1
α1和
α
2
\alpha_2
α2(启发式选择变量,后面细讲)
第三步:解释地求解两个变量的最优解
α
1
∗
\alpha_1^*
α1∗和
α
2
∗
\alpha_2^*
α2∗,并更新至
α
\alpha
α列表中
第四步:检查更新后的
α
\alpha
α列表是否在某个精度范围内满足KKT条件,若不满足返回第二步。
5.2 转换为二元函数
为了求解
l
l
l个参数,首先想到的是坐标上升的思路,例如求解
α
1
\alpha_1
α1,可以固定其他
l
l
l-1个参数,可以看成关于
α
1
\alpha_1
α1的一元函数求解,但是注意到上述问题的等式约束条
∑
i
=
1
l
α
i
y
i
=
0
\sum_{i=1}^l\alpha_iy_i=0
∑i=1lαiyi=0件,如果值变动一个参数,等式约束条件将被违反,所以至少要两个参数一起变动。假设选择的变量为
α
1
\alpha_1
α1和
α
2
\alpha_2
α2,并固定其他参数
α
3
\alpha_3
α3,
α
4
\alpha_4
α4,
…
\ldots
…,
α
l
\alpha_l
αl,可以简化目标函数为只关于
α
1
\alpha_1
α1和
α
2
\alpha_2
α2的二元函数。
m
i
n
α
1
,
α
2
=
1
2
K
11
α
1
2
+
1
2
K
22
α
2
2
+
y
1
y
2
K
12
α
1
α
2
−
(
α
1
+
α
2
)
+
y
1
υ
1
α
1
+
y
2
υ
2
α
2
+
C
o
n
s
t
a
n
t
min_{\alpha_1,\alpha_2}=\frac{1}{2}K_{11}\alpha_1^2+\frac{1}{2}K_{22}\alpha_2^2+y_1y_2K_{12}\alpha_1\alpha_2-(\alpha_1+\alpha_2)+y_1\upsilon_1\alpha_1+y_2\upsilon_2\alpha_2+Constant
minα1,α2=21K11α12+21K22α22+y1y2K12α1α2−(α1+α2)+y1υ1α1+y2υ2α2+Constant
K
i
j
=
K
(
x
i
T
x
j
)
K_{ij}=K(\pmb{x_i}^T\pmb{x_j})
Kij=K(xixixiTxjxjxj)
υ
i
=
∑
j
=
3
l
α
j
y
j
K
(
x
i
T
x
j
)
,
i
=
1
,
2
\upsilon_i=\sum_{j=3}^l\alpha_jy_jK(\pmb{x_i}^T\pmb{x_j}),i=1,2
υi=j=3∑lαjyjK(xixixiTxjxjxj),i=1,2
5.3 转为一元函数
由等式约束可得:
α
1
y
1
+
α
2
y
2
=
−
∑
i
=
3
l
α
i
y
i
=
ξ
\alpha_1y_1+\alpha_2y_2=-\sum_{i=3}^l\alpha_iy_i=\xi
α1y1+α2y2=−i=3∑lαiyi=ξ
等式两边同乘以
y
1
y_1
y1,且
y
1
2
=
1
y_1^2=1
y12=1,结果为:
α
1
=
(
ξ
−
y
2
α
2
)
y
1
\alpha1=(\xi-y_2\alpha_2)y_1
α1=(ξ−y2α2)y1
将其带入二元函数方程,得到只关于参数
α
2
\alpha_2
α2的一元函数,由于常数项不影响目标函数的解,以下省略掉常数项,结果为:
m
i
n
α
2
=
1
2
K
11
(
ξ
−
y
2
α
2
)
2
+
1
2
K
22
α
2
2
+
y
2
K
12
(
ξ
−
y
2
α
2
)
α
2
−
(
ξ
−
y
2
α
2
)
y
1
−
α
2
+
υ
1
(
ξ
−
y
2
α
2
)
+
y
2
υ
2
α
2
min_{\alpha_2}=\frac{1}{2}K_{11}(\xi-y_2\alpha_2)^2+\frac{1}{2}K_{22}\alpha_2^2+y_2K_{12}(\xi-y_2\alpha_2)\alpha_2-(\xi-y_2\alpha_2)y_1-\alpha_2+\upsilon_1(\xi-y_2\alpha_2)+y_2\upsilon_2\alpha_2
minα2=21K11(ξ−y2α2)2+21K22α22+y2K12(ξ−y2α2)α2−(ξ−y2α2)y1−α2+υ1(ξ−y2α2)+y2υ2α2
5.4 求一元函数的极值点
上式是关于变量
α
2
\alpha_2
α2的函数,对上式求导并令其为0得:
(
K
11
+
K
22
−
2
K
12
)
α
2
−
K
11
ξ
y
2
+
K
12
ξ
y
2
+
y
1
y
2
−
1
−
υ
1
y
2
+
υ
2
y
2
=
0
(K_{11}+K{22}-2K{12})\alpha_2-K_{11}\xi y_2+K_{12}\xi y_2+y_1y_2-1-\upsilon_1y_2+\upsilon_2y_2=0
(K11+K22−2K12)α2−K11ξy2+K12ξy2+y1y2−1−υ1y2+υ2y2=0
由上式中假设求得了
α
2
\alpha_2
α2的解,带入下式可求得
α
1
\alpha_1
α1的解
α
1
y
1
+
α
2
y
2
=
−
∑
i
=
3
l
α
i
y
i
=
ξ
\alpha_1y_1+\alpha_2y_2=-\sum_{i=3}^l\alpha_iy_i=\xi
α1y1+α2y2=−i=3∑lαiyi=ξ
分别记为
α
1
n
e
w
\alpha_1^{new}
α1new,
α
2
n
e
w
\alpha_2^{new}
α2new,优化前的值记为
α
1
o
l
d
\alpha_1^{old}
α1old,
α
2
o
l
d
\alpha_2^{old}
α2old,可得出:
α
1
o
l
d
y
1
+
α
2
o
l
d
y
2
=
−
∑
i
=
3
l
α
i
y
i
=
α
1
n
e
w
y
1
+
α
2
n
e
w
y
2
=
ξ
\alpha_1^{old}y_1+\alpha_2^{old}y_2=-\sum_{i=3}^l\alpha_iy_i=\alpha_1^{new}y_1+\alpha_2^{new}y_2=\xi
α1oldy1+α2oldy2=−i=3∑lαiyi=α1newy1+α2newy2=ξ
⇓
\Downarrow
⇓
ξ
=
α
1
o
l
d
y
1
+
α
2
o
l
d
y
2
\xi=\alpha_1^{old}y_1+\alpha_2^{old}y_2
ξ=α1oldy1+α2oldy2
改写
υ
i
\upsilon_i
υi,得出:
υ
i
=
∑
j
=
3
l
α
j
y
j
K
(
x
i
T
x
j
)
,
i
=
1
,
2
\upsilon_i=\sum_{j=3}^l\alpha_jy_jK(\pmb{x_i}^T\pmb{x_j}),i=1,2
υi=j=3∑lαjyjK(xixixiTxjxjxj),i=1,2
f
(
x
1
)
=
∑
i
=
1
l
α
i
y
i
K
(
x
i
T
x
1
)
+
b
f(\pmb{x_1})=\sum_{i=1}^l\alpha_iy_iK(\pmb{x_i}^T\pmb{x_1})+b
f(x1x1x1)=i=1∑lαiyiK(xixixiTx1x1x1)+b
f
(
x
2
)
=
∑
i
=
1
l
α
i
y
i
K
(
x
i
T
x
2
)
+
b
f(\pmb{x_2})=\sum_{i=1}^l\alpha_iy_iK(\pmb{x_i}^T\pmb{x_2})+b
f(x2x2x2)=i=1∑lαiyiK(xixixiTx2x2x2)+b
⇓
\Downarrow
⇓
υ
1
=
f
(
x
1
)
−
∑
j
=
1
2
α
j
y
j
K
(
x
1
T
x
j
)
−
b
\upsilon_1=f(\pmb{x_1})-\sum_{j=1}^2\alpha_jy_jK(\pmb{x_1}^T\pmb{x_j})-b
υ1=f(x1x1x1)−j=1∑2αjyjK(x1x1x1Txjxjxj)−b
υ
2
=
f
(
x
2
)
−
∑
j
=
1
2
α
j
y
j
K
(
x
2
T
x
j
)
−
b
\upsilon_2=f(\pmb{x_2})-\sum_{j=1}^2\alpha_jy_jK(\pmb{x_2}^T\pmb{x_j})-b
υ2=f(x2x2x2)−j=1∑2αjyjK(x2x2x2Txjxjxj)−b
将
ξ
\xi
ξ、
υ
1
\upsilon_1
υ1,
υ
2
\upsilon_2
υ2带入上式:
(
K
11
+
K
22
−
2
K
12
)
α
2
n
e
w
,
u
n
c
l
i
p
p
e
d
=
(
K
11
+
K
22
−
2
K
12
)
α
2
o
l
d
+
y
2
[
y
2
−
y
1
+
f
(
x
1
)
−
f
(
x
2
)
]
(K_{11}+K_{22}-2K_{12})\alpha_2^{new,unclipped}=(K_{11}+K_{22}-2K_{12})\alpha_2^{old}+y_2[y_2-y_1+f(\pmb{x_1})-f(\pmb{x_2})]
(K11+K22−2K12)α2new,unclipped=(K11+K22−2K12)α2old+y2[y2−y1+f(x1x1x1)−f(x2x2x2)]
定义
E
i
E_i
Ei表示预测值与真实值之差:
E
i
=
f
(
x
i
)
−
y
i
E_i=f(\pmb{x_i})-yi
Ei=f(xixixi)−yi
记:
η
=
K
11
+
K
22
−
2
K
12
\eta=K_{11}+K_{22}-2K_{12}
η=K11+K22−2K12
得出:
α
2
n
e
w
,
u
n
c
l
i
p
p
e
d
=
α
2
o
l
d
+
y
2
(
E
1
−
E
2
)
η
\alpha_2^{new,unclipped}=\alpha_2^{old}+\frac{y_2(E_1-E_2)}{\eta}
α2new,unclipped=α2old+ηy2(E1−E2)
5.5 对原始解修剪
上述求出的解未考虑到约束条件:
0
≤
α
i
≤
C
,
i
=
1
,
2
0\leq\alpha_i\leq C,\ \ \ i=1,2
0≤αi≤C, i=1,2
α
1
y
1
+
α
2
y
2
=
ξ
\alpha_1y_1+\alpha_2y_2=\xi
α1y1+α2y2=ξ
当
y
1
≠
y
2
y_1 \neq y_2
y1=y2时,
α
1
o
l
d
−
α
1
o
l
d
=
ξ
\alpha_1^{old}-\alpha_1^{old}=\xi
α1old−α1old=ξ,所以有
L
=
m
a
x
(
0
,
−
ξ
)
L=max(0,-\xi)
L=max(0,−ξ),
H
=
m
i
n
(
C
,
C
−
ξ
)
H=min(C,C-\xi)
H=min(C,C−ξ),如下图所示:
当
y
1
=
y
2
y_1 = y_2
y1=y2时,
α
1
o
l
d
+
α
1
o
l
d
=
ξ
\alpha_1^{old}+\alpha_1^{old}=\xi
α1old+α1old=ξ,所以有
L
=
m
a
x
(
0
,
C
−
ξ
)
L=max(0,C-\xi)
L=max(0,C−ξ),
H
=
m
i
n
(
C
,
ξ
)
H=min(C,\xi)
H=min(C,ξ),如下图所示:
经过上述约束的修剪,最优解就可以记为
α
2
n
e
w
\alpha_2^{new}
α2new:
α
2
n
e
w
=
{
H
α
2
n
e
w
,
u
n
c
l
i
p
p
e
d
>
H
α
2
n
e
w
,
u
n
c
l
i
p
p
e
d
H
≤
α
2
n
e
w
,
u
n
c
l
i
p
p
e
d
≤
L
L
α
2
n
e
w
,
u
n
c
l
i
p
p
e
d
<
L
\alpha_2^{new}=\begin{cases} H & \alpha_2^{new,unclipped}>H\\ \alpha_2^{new,unclipped} & H\leq\alpha_2^{new,unclipped}\leq L \\ L & \alpha_2^{new,unclipped}<L \end{cases}
α2new=⎩⎪⎨⎪⎧Hα2new,unclippedLα2new,unclipped>HH≤α2new,unclipped≤Lα2new,unclipped<L
5.6 求解 α 1 n e w \alpha_1^{new} α1new
由于:
α
1
o
l
d
y
1
+
α
2
o
l
d
y
2
=
−
∑
i
=
3
l
α
i
y
i
=
α
1
n
e
w
y
1
+
α
2
n
e
w
y
2
\alpha_1^{old}y_1+\alpha_2^{old}y_2=-\sum_{i=3}^l\alpha_iy_i=\alpha_1^{new}y_1+\alpha_2^{new}y_2
α1oldy1+α2oldy2=−i=3∑lαiyi=α1newy1+α2newy2
得出:
α
1
n
e
w
=
α
1
o
l
d
+
y
1
y
2
(
α
2
o
l
d
−
α
2
n
e
w
)
\alpha_1^{new}=\alpha_1^{old}+y_1y_2(\alpha_2^{old}-\alpha_2^{new})
α1new=α1old+y1y2(α2old−α2new)
5.7 证明子问题是一个凸优化问题
二元函数为:
m
i
n
α
1
,
α
2
=
1
2
K
11
α
1
2
+
1
2
K
22
α
2
2
+
y
1
y
2
K
12
α
1
α
2
−
(
α
1
+
α
2
)
+
y
1
υ
1
α
1
+
y
2
υ
2
α
2
+
C
o
n
s
t
a
n
t
min_{\alpha_1,\alpha_2}=\frac{1}{2}K_{11}\alpha_1^2+\frac{1}{2}K_{22}\alpha_2^2+y_1y_2K_{12}\alpha_1\alpha_2-(\alpha_1+\alpha_2)+y_1\upsilon_1\alpha_1+y_2\upsilon_2\alpha_2+Constant
minα1,α2=21K11α12+21K22α22+y1y2K12α1α2−(α1+α2)+y1υ1α1+y2υ2α2+Constant
υ
i
=
∑
j
=
3
l
α
j
y
j
K
(
x
i
T
x
j
)
,
i
=
1
,
2
\upsilon_i=\sum_{j=3}^l\alpha_jy_jK(\pmb{x_i}^T\pmb{x_j}),i=1,2
υi=j=3∑lαjyjK(xixixiTxjxjxj),i=1,2
其Hession矩阵为:
[
y
1
y
1
K
11
y
1
y
2
K
12
y
2
y
1
K
21
y
2
y
2
K
22
]
\left[ \begin{matrix} y_1y_1K_{11} & y_1y_2K_{12}\\ y_2y_1K_{21} & y_2y_2K_{22} \end{matrix} \right]
[y1y1K11y2y1K21y1y2K12y2y2K22]
⇓
\Downarrow
⇓
[
y
1
y
1
ϕ
(
x
1
)
T
ϕ
(
x
1
)
y
1
y
2
ϕ
(
x
1
)
T
ϕ
(
x
2
)
y
2
y
1
ϕ
(
x
2
)
T
ϕ
(
x
1
)
y
2
y
2
ϕ
(
x
2
)
T
ϕ
(
x
2
)
]
\left[ \begin{matrix} y_1y_1\phi(\pmb{x_1}) ^T\phi(\pmb{x_1})& y_1y_2\phi(\pmb{x_1}) ^T\phi(\pmb{x_2})\\ y_2y_1\phi(\pmb{x_2}) ^T\phi(\pmb{x_1}) & y_2y_2\phi(\pmb{x_2}) ^T\phi(\pmb{x_2}) \end{matrix} \right]
[y1y1ϕ(x1x1x1)Tϕ(x1x1x1)y2y1ϕ(x2x2x2)Tϕ(x1x1x1)y1y2ϕ(x1x1x1)Tϕ(x2x2x2)y2y2ϕ(x2x2x2)Tϕ(x2x2x2)]
⇓
\Downarrow
⇓
[
y
1
ϕ
(
x
1
)
T
y
2
ϕ
(
x
2
)
T
]
[
y
1
ϕ
(
x
1
)
,
y
2
ϕ
(
x
2
)
]
=
A
A
T
≥
0
\left[ \begin{matrix} y_1\phi(\pmb{x_1}) ^T\\ y_2\phi(\pmb{x_2}) ^T \end{matrix} \right]\left[ \begin{matrix} y_1\phi(\pmb{x_1}) , y_2\phi(\pmb{x_2}) \end{matrix} \right]=AA^T\geq0
[y1ϕ(x1x1x1)Ty2ϕ(x2x2x2)T][y1ϕ(x1x1x1),y2ϕ(x2x2x2)]=AAT≥0
其Hession矩阵为半正定矩阵,一定可以找到全局极小值点。
5.8 启发式选择变量
第一个变量的选择
首先遍历
0
<
α
i
<
C
0<\alpha_i<C
0<αi<C的样本集,选择违反KKT条件最严重(何为最严重,下面论述)的
α
i
\alpha_i
αi作为第一个变量,接着依据相关规则选择第二个变量(见下面分析),对这两个变量采用上述方法进行优化。接着遍历
α
i
=
0
\alpha_i=0
αi=0或是
α
i
=
C
\alpha_i=C
αi=C的样本集,选择违反KKT条件最严重的
α
i
\alpha_i
αi。然后再次回到遍历
0
<
α
i
<
C
0<\alpha_i<C
0<αi<C样本集中寻找,即在两个样本集上来回切换。直到遍历整个样本集后,没有违反KKT条件
α
i
\alpha_i
αi,然后退出。
如何判断样本点是否满足KKT条件将上面的第4部分。
违反KKT条件严重程度的量化方法有许多,下面介绍一种最为简单的:
l
i
=
∣
y
i
f
(
x
i
−
1
)
∣
l_i=|y_if(\pmb{x_i}-1)|
li=∣yif(xixixi−1)∣
既计算样本点的预测值与标签值乘积与1的差值,具体操作如下:
当
0
<
α
i
<
C
0<\alpha_i<C
0<αi<C时候,如果满足KKT条件(
y
i
(
w
T
x
i
+
b
)
=
1
y_i\left(\pmb{w}^T\pmb{x_i}+b\right)=1
yi(wwwTxixixi+b)=1),
l
i
=
0
l_i=0
li=0(此时违反KKT条件严重程度最低)。如果不满足KKT条件,按如上公式计算
l
i
l_i
li值
当
α
i
=
0
\alpha_i=0
αi=0时候,如果满足KKT条件(
y
i
(
w
T
x
i
+
b
)
≥
1
y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\geq1
yi(wwwTxixixi+b)≥1),
l
i
=
0
l_i=0
li=0。如果不满足KKT条件,按如上公式计算
l
i
l_i
li值
当
α
i
=
C
\alpha_i=C
αi=C时候,如果满足KKT条件(
y
i
(
w
T
x
i
+
b
)
≥
1
y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\geq1
yi(wwwTxixixi+b)≥1),
l
i
=
0
l_i=0
li=0。如果不满足KKT条件,按如上公式计算
l
i
l_i
li值
将所有样本点的
l
i
l_i
li值缓存起来,
l
i
l_i
li值最大的既为违反KKT条件最严重的样本点。
第二个变量的选择
假设找到的第一个变量记为 α i \alpha_i αi,第二个变量 α j \alpha_j αj的选择希望能使 α j \alpha_j αj有较大的变化,由于 α i \alpha_i αi的计算是依赖于 ∣ E i − E j ∣ |E_i-E_j| ∣Ei−Ej∣的,当 ∣ E i − E j ∣ |E_i-E_j| ∣Ei−Ej∣较大时, α i \alpha_i αi可以得到最大程度的更新(贪婪法),因此当 E i E_i Ei为正时,那么选择最小的 E j E_j Ej;如果 E i E_i Ei为负,选择最大 E j E_j Ej。通常将每个样本的 E E E保存在一个列表中。
5.9 b的计算
每次完成对两个变量的优化后,要对
b
b
b的值进行更新,因为
b
b
b的值关系到
f
(
x
)
f(x)
f(x)的计算,即关系到下次优化时
E
i
E_i
Ei的计算。对于任意支持向量(
x
s
,
y
s
\pmb{x_s},y_s
xsxsxs,ys)都有,
y
s
f
(
x
s
)
=
1
y_sf(\pmb{x_s})=1
ysf(xsxsxs)=1既:
y
s
(
∑
i
∈
S
α
i
y
i
x
i
T
x
s
+
b
)
=
1
y_s(\sum_{i\in S}\alpha_iy_i\pmb{x_i}^T\pmb{x_s}+b)=1
ys(i∈S∑αiyixixixiTxsxsxs+b)=1
其中
S
=
{
i
∣
0
<
α
i
<
C
,
i
=
1
,
2
,
…
,
m
}
S=\{i|0<\alpha_i<C,i=1,2,\ldots,m\}
S={i∣0<αi<C,i=1,2,…,m}为所有支持向量的下标集。理论上,可选任意支持向量并通过求解上式获得
b
b
b,但现实任务中常采用一种更鲁棒的做法,使用所有支持向量求解的平均值:
b
=
1
∣
s
∣
∑
s
∈
S
(
1
y
s
−
∑
i
∈
S
α
i
y
i
x
i
T
x
s
)
b=\frac{1}{|s|}\sum_{s\in S}(\frac{1}{y_s}-\sum_{i\in S}\alpha_iy_i\pmb{x_i}^T\pmb{x_s})
b=∣s∣1s∈S∑(ys1−i∈S∑αiyixixixiTxsxsxs)