最最最最最详细的SVM学习笔记
前言
朋友们好呀,五一快乐~。上次我们介绍了SVM的线性模型(最最最最最详细的SVM学习笔记(线性模型篇)),今天给大家介绍SVM的非线性模型,非线性模型相比于线性模型要难许多,不过我会尽可能最最最最最最详细的讲清楚滴。
非线性的推广
线性优化模型的改进
还记得线性情况下我们得到的优化模型嘛:
m
i
n
1
2
∣
∣
w
∣
∣
2
s
u
b
j
e
c
t
t
o
:
y
i
(
w
T
x
i
+
b
)
≥
1
min~\frac12||\bm{w}||^2\\ subject ~to: ~y_i(\bm{w}^T\bm{x_i}+b)\ge1
min 21∣∣w∣∣2subject to: yi(wTxi+b)≥1
上一节我们讲述了它的作用是在线性可分的样本集中找到一个超平面,使其到两类样本的支持向量的距离最大,从而划分两类样本,我们还讲述了线性可分和线性不可分,下面我们考虑这样的样本集:
可以看到我们没有办法用一条直线划分两类样本,因此这是很显然的线性不可分情况,但是这似乎与线性可分的情况差别的不大,可以看到,导致我们不能线性可分或者说阻碍我们线性可分的“罪魁祸首”是在两类样本交界面上的个别样本,如果我们可以忽略这些阻碍我们的样本不就能让它线性可分了嘛。事实上,在实际情况中,这样的样本往往处在两类别的交界,我们很难精确的将他们分类,如果我们可以选择性的忽略它们,我们依旧可以建立出对于绝大多数其他样本都适用的模型。这也是抓住主要矛盾忽略次要矛盾的思想,于是我们引入一个新变量,松弛变量
ξ
\bm{\xi}
ξ来完成这件事,需要注意的是
ξ
\bm{\xi}
ξ是一个未知的向量。
加入
ξ
\bm{\xi}
ξ后我们的优化模型将变成如下形式:
m
i
n
1
2
∣
∣
w
∣
∣
2
+
1
C
∑
i
=
1
n
ξ
i
s
u
b
j
e
c
t
t
o
:
y
i
(
w
T
x
i
+
b
)
≥
1
−
ξ
i
ξ
i
>
0
min~\frac12||\bm{w}||^2+\frac1C\sum_{i=1}^n\xi_i\\ subject ~to: ~y_i(\bm{w}^T\bm{x_i}+b)\ge1-\xi_i\\ \xi_i>0
min 21∣∣w∣∣2+C1i=1∑nξisubject to: yi(wTxi+b)≥1−ξiξi>0
我们对于每个样本的限制条件的左边加上了一个大于0的正数
ξ
i
\xi_i
ξi,可以这样理解,当我们要把超平面向上平移时,我们加一个正数,向下时加一个负数,由于约束条件限制当我们向下或向上平移时我们都得乘括号外面的
y
i
y_i
yi,乘出来的结果是恒正的(
y
i
y_i
yi与加的数同号),我们把他写到括号外面,这就是
ξ
i
\xi_i
ξi。
ξ
i
\xi_i
ξi越大,移动的就越多。而在两条平移直线之间的样本,我们就可以忽视它,于是处理后我们就可以像下面这幅图这样找间隔(margin)。
可以看到,我们找支持向量时忽略了中间两个样本。当然,我们这样的移动不可能是无限制的,考虑极端情况,
ξ
i
\xi_i
ξi很大很大时,相当于把所有样本都纳了进去,如果这样,我们的模型将无意义。于是我们加上令
ξ
i
\xi_i
ξi和最小的优化目标。这里有一个参数
C
C
C是正则化系数,是我们提前设置好的,不同的
C
C
C影响下我们忽略的样本数不同,实际情况下我们可以利用超参数网格搜索和交叉验证等方法来选择性能最好的
C
C
C。
高维映射
对于一些线性不可分样本,上面的改进就已经足够,然而对于更广泛的情况,比如像这样:
无论我们怎么改进都很难找到一个超平面去完成划分。对于这种情况我们怎么处理呢?SVM的创始人很聪明,他想到,在当前维度不能够线性可分,如果在更高的维度是不是可以线性划分了呢?事实上,他的想法很正确,数学家们已经证明,对于低维空间不可被线性划分的样本,在更高维度被线性可分的概率将增大,当维度趋于无限时,线性可分的概率将趋于1。那么,我们能不能有某一个映射
ϕ
(
x
)
\phi(\bm{x})
ϕ(x)将低维样本映射到更高维度,然后完成线性分类任务呢?
我们看一个例子,二维下
x
1
=
[
0
0
]
T
x
2
=
[
1
1
]
T
x
3
=
[
1
0
]
T
x
4
=
[
0
1
]
T
\bm{x_1}=[0~0]^T~\\\bm{x_2}=[1~1]^T~\\\bm{x_3}=[1~0]^T~\\\bm{x_4}=[0~1]^T
x1=[0 0]T x2=[1 1]T x3=[1 0]T x4=[0 1]T
如图:
某映射
ϕ
(
x
)
\phi(\bm{x})
ϕ(x)满足:
ϕ
(
[
a
b
]
T
)
=
[
a
2
b
2
a
b
a
b
]
T
\phi([a~b]^T)=[a^2~b^2~a~b~ab]^T
ϕ([a b]T)=[a2 b2 a b ab]T
这是一个将二维转化为五维的映射,我们可以计算出:
ϕ
(
x
1
)
=
[
0
0
0
0
0
]
T
ϕ
(
x
2
)
=
[
1
1
1
1
1
]
T
ϕ
(
x
3
)
=
[
1
0
1
0
0
]
T
ϕ
(
x
4
)
=
[
0
1
0
1
0
]
T
\phi(\bm{x_1})=[0~0~0~0~0]^T\\ \phi(\bm{x_2})=[1~1~1~1~1]^T\\ \phi(\bm{x_3})=[1~0~1~0~0]^T\\ \phi(\bm{x_4})=[0~1~0~1~0]^T\\
ϕ(x1)=[0 0 0 0 0]Tϕ(x2)=[1 1 1 1 1]Tϕ(x3)=[1 0 1 0 0]Tϕ(x4)=[0 1 0 1 0]T
这里给出一个可以把他们分开的超平面,这样的平面有很多,这里给出一个,并且不一定是最优,只是说明它可以被线性划分。
当
w
=
[
−
1
−
1
−
1
−
1
0
]
T
\bm{w}=[-1~-1~-1~-1~0]^T
w=[−1 −1 −1 −1 0]T,
b
=
1
b=1
b=1时:
w
T
ϕ
(
x
1
)
+
b
=
1
>
0
w
T
ϕ
(
x
2
)
+
b
=
3
>
0
w
T
ϕ
(
x
3
)
+
b
=
−
1
<
0
w
T
ϕ
(
x
4
)
+
b
=
−
1
<
0
\bm{w}^T\phi(\bm{x_1})+b=1>0\\ \bm{w}^T\phi(\bm{x_2})+b=3>0\\ \bm{w}^T\phi(\bm{x_3})+b=-1<0\\ \bm{w}^T\phi(\bm{x_4})+b=-1<0\\
wTϕ(x1)+b=1>0wTϕ(x2)+b=3>0wTϕ(x3)+b=−1<0wTϕ(x4)+b=−1<0
我们很神奇的发现原本在二维平面不可被线性划分的样本居然可以在五维时能够被分开!
核函数
事实上,对于维数较多的样本集,我们很难找到显式的
ϕ
(
x
)
\phi(\bm{x})
ϕ(x)进行升维,即便我们能够升维,升到什么情况合适?升维后的问题在计算机算法有限时间内是否可解?这些都是难以解决的问题。SVM的创始人聪明的回避的这一点,在他最开始的假设中,
ϕ
(
x
)
\phi(\bm{x})
ϕ(x)就是一个能够将当前样本集映射为无限维度样本集的映射,而我们能够在不知道
ϕ
(
x
)
\phi(\bm{x})
ϕ(x)显式表达式情况下依然对问题进行求解,怎么做呢?
数学上已经证明了对于无限维映射
ϕ
(
x
)
\phi(\bm{x})
ϕ(x),存在函数
K
(
x
1
,
x
2
)
K(\bm{x_1,x_2})
K(x1,x2),有:
K
(
x
1
,
x
2
)
=
ϕ
T
(
x
1
)
ϕ
(
x
2
)
K(\bm{x_1,x_2})=\phi^T(\bm{x_1})\phi(\bm{x_2})
K(x1,x2)=ϕT(x1)ϕ(x2)
我们把这样的函数称为核函数(kernel function)。
常见的函数有很多,包括高斯核函数:
K
(
x
1
,
x
2
)
=
e
−
∣
∣
x
1
−
x
2
∣
∣
2
2
σ
2
K(\bm{x_1,x_2})=e^{-\frac{||\bm{x_1}-\bm{x_2}||^2}{2\sigma^2}}
K(x1,x2)=e−2σ2∣∣x1−x2∣∣2
多项式核函数:
K
(
x
1
,
x
2
)
=
(
x
1
T
x
2
+
1
)
p
K(\bm{x_1,x_2})=(\bm{x_1}^T\bm{x_2}+1)^p
K(x1,x2)=(x1Tx2+1)p
等。在实际使用时,对于不同的场景和需求不同的核函数会有不同的效果。
我们的目的就是用核函数代替
ϕ
(
x
)
\phi(\bm{x})
ϕ(x),使得问题可解,但在此之前,我们需要介绍一个优化理论的中的概念。
原问题与对偶问题
在优化理论中,原问题是这样描述的:
m
i
n
f
(
w
)
s
u
b
j
e
c
t
t
o
:
g
i
(
w
)
≤
0
(
i
=
1
,
2
,
.
.
.
,
k
)
h
i
(
w
)
=
0
(
i
=
1
,
2...
,
m
)
min~f(\bm{w})\\\begin{aligned}subject~to:g_i(\bm{w})\le0~~~(i=1,2,...,k)\\h_i(\bm{w})=0~~~(i=1,2...,m)\end{aligned}
min f(w)subject to:gi(w)≤0 (i=1,2,...,k)hi(w)=0 (i=1,2...,m)
拉格朗日函数
在讨论它的对偶问题之前,我们先定义这样一个函数:
L
(
w
,
α
,
β
)
=
f
(
w
)
+
∑
i
=
1
k
α
i
g
i
(
w
)
+
∑
i
=
1
m
β
i
h
i
(
w
)
L(\bm{w,\alpha,\beta})=f(\bm{w})+\sum_{i=1}^{k}{\alpha_ig_i(\bm{w})}+\sum_{i=1}^{m}{\beta_ih_i(\bm{w})}
L(w,α,β)=f(w)+i=1∑kαigi(w)+i=1∑mβihi(w)
写成向量形式就是:
L
(
w
,
α
,
β
)
=
f
(
w
)
+
α
T
g
(
w
)
+
β
T
h
(
w
)
L(\bm{w,\alpha,\beta})=f(\bm{w})+\bm{\alpha}^Tg(\bm{w})+\bm{\beta}^Th(\bm{w})
L(w,α,β)=f(w)+αTg(w)+βTh(w)
这里的
g
(
w
)
g(\bm{w})
g(w)和
h
(
w
)
h(\bm{w})
h(w)没有带角标,也就是说它们都是向量形式。学过高等数学多元函数极值的同学很容易看出来,前面是目标函数,后面是系数乘以约束条件,这不就是利用拉格朗日乘数法构造的拉格朗日函数嘛,只是这里的约束条件很多,我们可以写成向量形式而已。
对偶问题
我们这样定义上述原问题的对偶问题:
m
a
x
θ
(
α
,
β
)
=
i
n
f
a
l
l
w
{
L
(
w
,
α
,
β
)
}
s
u
b
j
e
c
t
t
o
:
α
i
≥
0
(
i
=
1
,
2
,
.
.
.
,
k
)
max~\theta(\bm{\alpha,\beta})=inf_{all~\bm{}w}\{L(\bm{w,\alpha,\beta})\}\\subject~to:\alpha_i\ge0~(i=1,2,...,k)
max θ(α,β)=infall w{L(w,α,β)}subject to:αi≥0 (i=1,2,...,k)
i
n
f
inf
inf表示求最小值,这里的意思就是,对于给定的
α
\bm{\alpha}
α和
β
\bm{\beta}
β,固定其不变,找到某一个
w
\bm{w}
w使得拉格朗日函数最小,而我们的目标就是在使得这个最小值最大的情况下结合限制条件求
w
\bm{w}
w,
α
\bm{\alpha}
α和
β
\bm{\beta}
β。
强对偶定理与KKT条件
我们有如下定理:
如果
w
∗
\bm{w}*
w∗是原问题的解,
α
∗
\bm{\alpha}*
α∗和
β
∗
\bm{\beta}*
β∗是对偶问题的解,那么:
f
(
w
∗
)
≥
θ
(
α
∗
,
β
∗
)
f(\bm{w}*)\ge\theta(\bm{\alpha}*,\bm{\beta}*)
f(w∗)≥θ(α∗,β∗)
这件事情的证明并不困难,我们知道:
θ
(
α
∗
,
β
∗
)
=
i
n
f
a
l
l
w
{
L
(
w
,
α
∗
,
β
∗
)
}
≤
L
(
w
∗
,
α
∗
,
β
∗
)
=
f
(
w
)
+
(
α
∗
)
T
g
(
w
∗
)
+
(
β
∗
)
T
h
(
w
∗
)
\begin{aligned}\theta(\bm{\alpha}*,\bm{\beta}*)=inf_{all~\bm{}w}\{L(\bm{w,\alpha}*,{\bm{\beta}}*)\}{\le}L(\bm{w*,\alpha*,\beta*})=f(\bm{w})+(\bm{\alpha}*)^Tg(\bm{w*})+(\bm{\beta}*)^Th(\bm{w*})\end{aligned}
θ(α∗,β∗)=infall w{L(w,α∗,β∗)}≤L(w∗,α∗,β∗)=f(w)+(α∗)Tg(w∗)+(β∗)Th(w∗)
而
h
(
w
∗
)
=
0
h(\bm{w*})=0
h(w∗)=0,
(
α
∗
)
T
g
(
w
∗
)
≤
0
(\bm{\alpha}*)^Tg(\bm{w*})\le0
(α∗)Tg(w∗)≤0(翻看上面的约束条件可以很容易得到),因此:
f
(
w
∗
)
≥
θ
(
α
∗
,
β
∗
)
f(\bm{w}*)\ge\theta(\bm{\alpha}*,\bm{\beta}*)
f(w∗)≥θ(α∗,β∗)
如果我们定义:
G
=
f
(
w
∗
)
−
θ
(
α
∗
,
β
∗
)
G=f(\bm{w}*)-\theta(\bm{\alpha}*,\bm{\beta}*)
G=f(w∗)−θ(α∗,β∗)
那么我们把
G
G
G就叫做原问题与对偶问题的间距,对于某些特定的优化问题我们可以证明
G
=
0
G=0
G=0。
我们再介绍优化理论中的另一个定理——强对偶定理:
如果
f
(
w
)
f(\bm{w})
f(w)是凸函数(凸函数就是极值点就是最值点的,即局部最优解等于全局最优解的函数),且
g
(
w
)
=
a
w
+
b
,
h
(
w
)
=
c
w
+
d
g(\bm{w})=a\bm{w}+b,h(\bm{w})=c\bm{w}+d
g(w)=aw+b,h(w)=cw+d,那么:
G
=
0
G=0
G=0
也就是说:
f
(
w
∗
)
=
θ
(
α
∗
,
β
∗
)
f(\bm{w}*)=\theta(\bm{\alpha}*,\bm{\beta}*)
f(w∗)=θ(α∗,β∗)
还记得我们有一项:
(
α
∗
)
T
g
(
w
∗
)
≤
0
(\bm{\alpha}*)^Tg(\bm{w*})\le0
(α∗)Tg(w∗)≤0嘛,此时它是严格等于0的,那么就有要么:
α
i
∗
=
0
\alpha_i*=0
αi∗=0
要么:
g
i
(
w
∗
)
=
0
g_i(\bm{w}*)=0
gi(w∗)=0
我们把上述条件称为KKT条件。
上述定理的证明什么的大家可以参考优化理论的教材,其在数学上是严格证明了的,这里只是介绍与应用。
SVM非线性优化的原问题与对偶问题
补充了相关的优化理论知识后,让我们回归原题,我们对照着优化理论中的原问题把我们的非线性优化问题写出来:
m
i
n
1
2
∣
∣
w
∣
∣
2
−
C
∑
i
=
1
n
ξ
i
s
u
b
j
e
c
t
t
o
:
1
+
ξ
i
−
y
i
w
T
ϕ
(
x
i
)
−
y
i
b
≤
0
ξ
i
≤
0
\begin{aligned}min~\frac12||\bm{w}||^2-C\sum_{i=1}^{n}{\xi_i}\\ subject~to:\begin{aligned}1+\xi_i-y_i\bm{w}^T\phi(\bm{x_i})-y_ib\le0\\\xi_i\le0\end{aligned}\end{aligned}
min 21∣∣w∣∣2−Ci=1∑nξisubject to:1+ξi−yiwTϕ(xi)−yib≤0ξi≤0
我们只干了两件事,先令现在的
ξ
i
\xi_i
ξi为原来
ξ
i
\xi_i
ξi前面加上一个负号,然后移向化成对应的形式,注意这里我们用
ϕ
(
x
i
)
\phi(\bm{x_i})
ϕ(xi)代替了
x
i
\bm{x_i}
xi。需要明确的是,我们这里一一对应过去会发现没有
h
i
(
w
)
h_i(\bm{w})
hi(w),有两个不同的
g
i
(
w
)
g_{i}(\bm{w})
gi(w)和
g
j
(
w
)
g_{j}(\bm{w})
gj(w),二者都为
n
n
n个限制条件。
我们可以一项一项对照着上面的形式写出其对偶问题:
m
a
x
θ
(
α
,
β
)
=
i
n
f
a
l
l
w
,
ξ
i
,
b
{
1
2
∣
∣
w
∣
∣
2
−
C
∑
i
=
1
n
ξ
i
+
∑
i
=
1
n
β
i
ξ
i
+
∑
i
=
1
n
α
i
[
1
+
ξ
i
−
y
i
w
T
ϕ
(
x
i
)
−
y
i
b
]
}
s
u
b
j
e
c
t
t
o
:
α
i
≥
0
β
i
≥
0
max~\theta(\bm{\alpha,\beta})=inf_{all~w,\xi_i,b}\{\frac12||\bm{w}||^2-C\sum_{i=1}^{n}{\xi_i}+\sum_{i=1}^{n}\beta_i\xi_i+\sum_{i=1}^{n}\alpha_i[1+\xi_i-y_i\bm{w}^T\phi(\bm{x_i})-y_ib]\}\\subject~to:\begin{aligned}\alpha_i\ge0\\\beta_i\ge0\end{aligned}
max θ(α,β)=infall w,ξi,b{21∣∣w∣∣2−Ci=1∑nξi+i=1∑nβiξi+i=1∑nαi[1+ξi−yiwTϕ(xi)−yib]}subject to:αi≥0βi≥0
我们需要注意以下几点:
1,优化理论模型中的
w
\bm{w}
w现在对应的是
(
w
,
ξ
i
,
b
)
(\bm{w},\xi_i,b)
(w,ξi,b)
2,优化理论模型中的
α
\bm{\alpha}
α现在对应的是
α
\bm{\alpha}
α和
β
\bm{\beta}
β,
β
\bm{\beta}
β则没有对应,因为这里没有没有
h
i
(
w
)
=
0
h_i(\bm{w})=0
hi(w)=0的条件了
对偶问题的求导
θ
(
α
,
β
)
\theta(\bm{\alpha,\beta})
θ(α,β)是一个求拉格朗日函数的最小值,我们可以证明这里拉格朗日函数是一个凸函数,因此,局部解就等于全局解,我们必然可以利用对各项偏导数为0的方法求出
θ
(
α
,
β
)
\theta(\bm{\alpha,\beta})
θ(α,β),令:
L
w
′
(
w
,
α
,
β
)
=
L
ξ
i
′
(
w
,
α
,
β
)
=
L
b
′
(
w
,
α
,
β
)
=
0
L^{'}_\bm{w}(\bm{w,\alpha,\beta})=L^{'}_{\xi_i}(\bm{w,\alpha,\beta})=L^{'}_b(\bm{w,\alpha,\beta})=0
Lw′(w,α,β)=Lξi′(w,α,β)=Lb′(w,α,β)=0
于是我们可以求出:
L
w
′
(
w
,
α
,
β
)
=
w
−
∑
i
=
1
n
α
i
y
i
ϕ
(
x
i
)
=
0
L
ξ
i
′
(
w
,
α
,
β
)
=
−
C
+
β
i
+
α
i
=
0
L
b
′
(
w
,
α
,
β
)
=
−
∑
i
=
i
n
α
i
y
i
=
0
L^{'}_\bm{w}(\bm{w,\alpha,\beta})=\bm{w}-\sum_{i=1}^n\alpha_iy_i\phi(\bm{x_i})=0\\L^{'}_{\xi_i}(\bm{w,\alpha,\beta})=-C+\beta_i+\alpha_i=0\\L^{'}_b(\bm{w,\alpha,\beta})=-\sum_{i=i}^n\alpha_iy_i=0
Lw′(w,α,β)=w−i=1∑nαiyiϕ(xi)=0Lξi′(w,α,β)=−C+βi+αi=0Lb′(w,α,β)=−i=i∑nαiyi=0
再将求得的条件带回
L
(
w
,
α
,
β
)
L(\bm{w,\alpha,\beta})
L(w,α,β),就可以求出:
θ
(
α
,
β
)
=
∑
i
=
1
n
α
i
−
1
2
∑
i
=
1
n
∑
j
=
1
n
α
i
α
j
y
i
y
j
ϕ
T
(
x
i
)
ϕ
(
x
j
)
\theta(\bm{\alpha,\beta})=\sum_{i=1}^n\alpha_i-\frac12\sum_{i=1}^n\sum_{j=1}^n\alpha_i\alpha_jy_iy_j\phi^T(\bm{x_i})\phi(\bm{x_j})
θ(α,β)=i=1∑nαi−21i=1∑nj=1∑nαiαjyiyjϕT(xi)ϕ(xj)
这个时候我们的核函数就派上用场啦,于是上面式子可以写成如下形式:
θ
(
α
,
β
)
=
∑
i
=
1
n
α
i
−
1
2
∑
i
=
1
n
∑
j
=
1
n
α
i
α
j
y
i
y
j
K
(
x
i
,
x
j
)
\theta(\bm{\alpha,\beta})=\sum_{i=1}^n\alpha_i-\frac12\sum_{i=1}^n\sum_{j=1}^n\alpha_i\alpha_jy_iy_jK(\bm{x_i,x_j})
θ(α,β)=i=1∑nαi−21i=1∑nj=1∑nαiαjyiyjK(xi,xj)
上面的求导和带入步骤并不困难,但是限于篇幅这里就不给出啦,感兴趣的同学可以自己求一遍,需要注意对向量的求导法则,例如;
w
T
=
[
w
1
w
2
,
.
.
.
,
w
n
]
f
w
′
(
w
)
=
[
f
w
1
′
,
f
w
2
′
,
.
.
.
,
f
w
n
′
]
T
\bm{w}^T=[w_1~w_2,...,w_n]\\f^{'}_\bm{w}(\bm{w})=[f^{'}_{w_1},f^{'}_{w_2},...,f^{'}_{w_n}]^T
wT=[w1 w2,...,wn]fw′(w)=[fw1′,fw2′,...,fwn′]T
若
f
(
w
)
=
1
2
∣
∣
w
∣
∣
2
f(\bm{w})=\frac12||\bm{w}||^2
f(w)=21∣∣w∣∣2,则:
f
w
′
(
w
)
=
w
f^{'}_\bm{w}(\bm{w})=\bm{w}
fw′(w)=w
若
f
(
w
)
=
w
T
x
f(\bm{w})=\bm{w}^T\bm{x}
f(w)=wTx,则:
f
w
′
(
w
)
=
x
f^{'}_\bm{w}(\bm{w})=\bm{x}
fw′(w)=x
SVM非线性模型的目标优化
通过上面的推导,我们可以得到非线性模型的对偶问题的目标函数:
m
a
x
θ
(
α
,
β
)
=
∑
i
=
1
n
α
i
−
1
2
∑
i
=
1
n
∑
j
=
1
n
α
i
α
j
y
i
y
j
K
(
x
i
,
x
j
)
max~ \theta(\bm{\alpha,\beta})=\sum_{i=1}^n\alpha_i-\frac12\sum_{i=1}^n\sum_{j=1}^n\alpha_i\alpha_jy_iy_jK(\bm{x_i,x_j})
max θ(α,β)=i=1∑nαi−21i=1∑nj=1∑nαiαjyiyjK(xi,xj)
约束条件是怎么来的呢,原本我们有:
s
u
b
j
e
c
t
t
o
:
α
i
≥
0
β
i
≥
0
subject~to:\begin{aligned}\alpha_i\ge0\\\beta_i\ge0\end{aligned}
subject to:αi≥0βi≥0
我们考虑这个式子:
L
ξ
i
′
(
w
,
α
,
β
)
=
−
C
+
β
i
+
α
i
=
0
L^{'}_{\xi_i}(\bm{w,\alpha,\beta})=-C+\beta_i+\alpha_i=0\\
Lξi′(w,α,β)=−C+βi+αi=0
由于我们的目标优化中没有了
β
i
\beta_i
βi,我们只考虑
α
i
\alpha_i
αi,联立求解就可以得到:
0
≤
α
i
≤
C
0\le\alpha_i\le{C}
0≤αi≤C
再加上:
L
b
′
(
w
,
α
,
β
)
=
−
∑
i
=
i
n
α
i
y
i
=
0
L^{'}_b(\bm{w,\alpha,\beta})=-\sum_{i=i}^n\alpha_iy_i=0
Lb′(w,α,β)=−i=i∑nαiyi=0
于是我们的优化模型就是:
m
a
x
θ
(
α
,
β
)
=
∑
i
=
1
n
α
i
−
1
2
∑
i
=
1
n
∑
j
=
1
n
α
i
α
j
y
i
y
j
K
(
x
i
,
x
j
)
s
u
b
j
e
c
t
t
o
:
0
≤
α
i
≤
C
∑
i
=
1
n
α
i
y
i
=
0
max~ \theta(\bm{\alpha,\beta})=\sum_{i=1}^n\alpha_i-\frac12\sum_{i=1}^n\sum_{j=1}^n\alpha_i\alpha_jy_iy_jK(\bm{x_i,x_j})\\subject~to:\begin{aligned}0\le\alpha_i\le{C}\\\sum_{i=1}^n\alpha_iy_i=0\end{aligned}
max θ(α,β)=i=1∑nαi−21i=1∑nj=1∑nαiαjyiyjK(xi,xj)subject to:0≤αi≤Ci=1∑nαiyi=0
SVM模型的训练过程与预测方法
需要注意的是,我们的优化模型中
x
n
\bm{x_n}
xn和
y
i
y_i
yi是已知的,
α
\bm{\alpha}
α是未知的,把上面的优化问题扔给计算机我们就可以求出
α
\bm{\alpha}
α,至于求出以后我们怎么样预测新样本呢?
考虑这样一件事,当我们来了一个待预测样本
x
n
e
w
\bm{x}_{new}
xnew,
i
f
:
w
T
ϕ
(
x
n
e
w
)
+
b
≥
0
,
y
=
+
1
e
l
s
e
:
y
=
−
1
if:\bm{w}^T\phi(\bm{x}_{new})+b\ge0,y=+1\\else:y=-1
if:wTϕ(xnew)+b≥0,y=+1else:y=−1
我们可以不知道
w
\bm{w}
w,但我们必须知道
w
T
ϕ
(
x
n
e
w
)
+
b
\bm{w}^T\phi(\bm{x}_{new})+b
wTϕ(xnew)+b,怎么求呢?
w
T
ϕ
(
x
n
e
w
)
=
∑
i
=
1
n
[
α
i
y
i
ϕ
(
x
i
)
]
T
ϕ
(
x
n
e
w
)
=
∑
i
=
1
n
α
i
y
i
ϕ
(
x
i
)
T
ϕ
(
x
n
e
w
)
=
∑
i
=
1
n
α
i
y
i
K
(
x
i
,
x
n
e
w
)
\bm{w}^T\phi(\bm{x}_{new})=\sum_{i=1}^n[\alpha_iy_i\phi(\bm{x}_i)]^T\phi(\bm{x}_{new})=\sum_{i=1}^n\alpha_iy_i\phi(\bm{x}_i)^T\phi(\bm{x}_{new})\\=\sum_{i=1}^n\alpha_iy_iK(\bm{x}_i,\bm{x}_{new})~~~~~~~~~~~~~~~~~~~~
wTϕ(xnew)=i=1∑n[αiyiϕ(xi)]Tϕ(xnew)=i=1∑nαiyiϕ(xi)Tϕ(xnew)=i=1∑nαiyiK(xi,xnew)
结合求偏导后的条件,上面的推导是显然的。
那么
b
b
b怎么求呢?还记得优化理论中的KKT条件嘛,对应到SVM实际问题中,我们对于任意的
i
=
1
,
2
,
.
.
.
,
n
i=1,2,...,n
i=1,2,...,n就有如下描述:
1、要么:
β
i
=
0
\beta_i=0
βi=0
要么:
ξ
i
=
0
\xi_i=0
ξi=0
2、要么:
α
i
=
0
\alpha_i=0
αi=0
要么:
1
+
ξ
i
−
y
i
w
T
ϕ
(
x
i
)
−
y
i
b
=
0
1+\xi_i-y_i\bm{w}^T\phi(\bm{x_i})-y_ib=0
1+ξi−yiwTϕ(xi)−yib=0
有两个KKT条件是因为我们相比于优化理论中的模型没有等于零的约束而有两个小于零的约束(这个已经强调很多次啦,一定要记住)。于是我们可以这样求
b
b
b:
取
0
<
α
i
<
C
⇒
β
i
=
C
−
α
i
>
0
⇒
ξ
i
=
0
取0<\alpha_i<C\Rightarrow\beta_i=C-\alpha_i>0\Rightarrow\xi_i=0
取0<αi<C⇒βi=C−αi>0⇒ξi=0
α
i
>
0
⇒
1
+
ξ
i
−
y
i
w
T
ϕ
(
x
i
)
−
y
i
b
=
0
\alpha_i>0\Rightarrow1+\xi_i-y_i\bm{w}^T\phi(\bm{x_i})-y_ib=0
αi>0⇒1+ξi−yiwTϕ(xi)−yib=0
于是:
b
=
1
−
y
i
w
T
ϕ
(
x
i
)
y
i
=
1
−
y
i
∑
j
=
1
n
(
α
j
y
j
ϕ
(
x
j
)
T
)
ϕ
(
x
i
)
y
i
=
1
−
y
i
∑
j
=
1
n
α
j
y
j
K
(
x
i
,
x
j
)
y
i
b=\frac{1-y_i\bm{w}^T\phi(\bm{x}_i)}{y_i}=\frac{1-y_i\sum_{j=1}^{n}(\alpha_jy_j\phi(\bm{x}_j)^T)\phi(\bm{x}_i)}{y_i}\\=\frac{1-y_i\sum_{j=1}^{n}\alpha_jy_jK(\bm{x}_i,\bm{x}_j)}{y_i}
b=yi1−yiwTϕ(xi)=yi1−yi∑j=1n(αjyjϕ(xj)T)ϕ(xi)=yi1−yi∑j=1nαjyjK(xi,xj)
一般来说,对于不同的
0
<
α
i
<
C
0<\alpha_i<C
0<αi<C,都有一个不同的
x
i
\bm{x}_i
xi和
y
i
y_i
yi,于是有不同的
b
b
b,在工程实践中往往是求出所有的
b
b
b取平均,事实证明这样做效果会最好。
于是SVM算法的流程就可以总结如下:
- 训练流程,输入 { x i , y i } ( i = 1 , 2 , . . . , n ) \{\bm{x}_i,y_i\}(i=1,2,...,n) {xi,yi}(i=1,2,...,n),求解: m a x θ ( α , β ) = ∑ i = 1 n α i − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j K ( x i , x j ) s u b j e c t t o : 0 ≤ α i ≤ C ∑ i = 1 n α i y i = 0 max~ \theta(\bm{\alpha,\beta})=\sum_{i=1}^n\alpha_i-\frac12\sum_{i=1}^n\sum_{j=1}^n\alpha_i\alpha_jy_iy_jK(\bm{x_i,x_j})\\subject~to:\begin{aligned}0\le\alpha_i\le{C}\\\sum_{i=1}^n\alpha_iy_i=0\end{aligned} max θ(α,β)=i=1∑nαi−21i=1∑nj=1∑nαiαjyiyjK(xi,xj)subject to:0≤αi≤Ci=1∑nαiyi=0算出 α \bm{\alpha} α。
- 求出 b b b
- 测试流程,先算出 w T ϕ ( x n e w ) \bm{w}^T\phi(\bm{x}_{new}) wTϕ(xnew),而后: i f : w T ϕ ( x n e w ) + b ≥ 0 , y = + 1 e l s e : y = − 1 if:\bm{w}^T\phi(\bm{x}_{new})+b\ge0,y=+1\\else:y=-1 if:wTϕ(xnew)+b≥0,y=+1else:y=−1
后记
以上就是SVM算法的全部内容啦,事实上与SVM相似的SVR(Surport Vector Regression)和上述过程完全类似,只是,当我们找最大间隔时是分类问题,如果我们找最小间隔呢?那就将变成回归拟合的问题啦,感兴趣的同学可以照着上面的过程推导一下。下次将更新神经网络模型,再见啦〜