0 概述
在正式推导SVM之前,我们先解释一下到底什么是SVM算法。SVM 是一种二类分类模型。它的基本思想是在特征空间中寻找间隔最大的分离超平面使数据得到高效的二分类,具体来讲,有三种情况:
SVM算法解决的问题可以分为三类:
- 数据原本线性可分
直接使用硬间隔的方法解决 - 数据近似线性可分
引入松弛变量,能容忍一定程度的错误 - 数据线性不可分
这部分就需要使用核技巧来解决
1 SVM推导
1.1 问题描述
如下图所示,在一个多维平面上散落着正样本和负样本(我们这里画的是二维,你可以想象一下),如果能够找到一个超平面,恰好能够将正负样本分开,那么这个超平面就可以用来对样本进行分类。
如图,超平面
H
1
H_1
H1和
H
2
H_2
H2不是我们要找的,我们要找的就是
H
3
H_3
H3。那么问题来了,如果
H
3
H_3
H3这种能将正负样本分开的超平面存在,那么我们如何找到它?
1.2 问题转化
我们需要将问题转化为数学的形式进行分析。如上图所示,我们使用超平面公式:
y
=
ω
T
x
+
b
y=\omega^Tx+b
y=ωTx+b表示
H
3
H_3
H3。那么任意一个样本点
p
(
x
i
,
y
i
)
p(x_i,y_i)
p(xi,yi)到超平面的几何距离为:
∣
ω
T
x
i
+
b
∣
∣
∣
ω
∣
∣
\frac{|\omega^Tx_i+b|}{||\omega||}
∣∣ω∣∣∣ωTxi+b∣假设
H
3
H_3
H3就是我们想要的那个超平面,即能够将正负样本分开,那么对于任意的
p
(
x
i
,
y
i
)
p(x_i,y_i)
p(xi,yi)均有:
d
i
s
t
a
n
c
e
(
x
i
,
y
i
)
=
y
i
ω
T
x
i
+
b
∣
∣
ω
∣
∣
>
0
distance(x_i,y_i)=y_i\frac{\omega^Tx_i+b}{||\omega||}\gt0
distance(xi,yi)=yi∣∣ω∣∣ωTxi+b>0
因此有以下结论:
- 正样本 y i = 1 y_i=1 yi=1,几何间隔大于0,有 ω T x i + b > 0 \omega^Tx_i+b\gt0 ωTxi+b>0,即正样本均在法向量指向的一侧(正的一侧);
- 负样本 y i = − 1 y_i=-1 yi=−1,几何间隔小于0,有 ω T x i + b < 0 \omega^Tx_i+b\lt0 ωTxi+b<0,即负样本均在法向量指向的相反一侧(负的一侧)。
这个问题等价于对于能将正负样本分开的超平面,存在以下结论: d i s t a n c e ( x i , y i ) > 0 , ∀ ( x i , y i ) distance(x_i,y_i)\gt0,\forall(x_i,y_i) distance(xi,yi)>0,∀(xi,yi)
可以想象,这种超平面肯定会有无数多个的,但我们希望最优的那个超平面不仅能将样本分开,且分得越开越好,即距离超平面最近的那个样本的距离最远,即最小的
d
i
s
t
a
n
c
e
distance
distance最大,最小是对样本点而言的,最大是对超平面参数而言的。我们就将上述数学问题转化为最优化问题了。
进一步地,假设我们已经找到了这个最优的超平面
H
3
H_3
H3,其参数为
(
ω
,
b
)
(\omega,b)
(ω,b),并且也找到了使距离最小的样本点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi),最后能够得到几何间隔:
y
i
ω
T
x
i
+
b
∣
∣
ω
∣
∣
y_i\frac{\omega^Tx_i+b}{||\omega||}
yi∣∣ω∣∣ωTxi+b
本来我们即可对上述式子求最大化了,但是非常不巧的是,不同的超平面对应的距离最近的样本点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)又不一样,那就想想办法将上式分子部分消除掉。
回顾前文描述,我们假设了参数
(
ω
,
b
)
(\omega,b)
(ω,b)对应的超平面是我们要找的那个,那么就有
d
i
s
t
a
n
c
e
(
x
i
,
y
i
)
=
y
i
ω
T
x
i
+
b
∣
∣
ω
∣
∣
>
0
distance(x_i,y_i)=y_i\frac{\omega^Tx_i+b}{||\omega||}\gt0
distance(xi,yi)=yi∣∣ω∣∣ωTxi+b>0,即
y
i
(
ω
T
x
i
+
b
)
>
0
y_i(\omega^Tx_i+b)\gt0
yi(ωTxi+b)>0,那么这个最优超平面的参数
(
ω
,
b
)
(\omega,b)
(ω,b)经过适当的等倍缩放之后一定存在
y
i
(
ω
T
x
i
+
b
)
=
1
y_i(\omega^Tx_i+b)=1
yi(ωTxi+b)=1,那么最小距离就变成了:
1
∣
∣
ω
∣
∣
\frac{1}{||\omega||}
∣∣ω∣∣1
最终问题变成了求解:
m
a
x
ω
,
b
1
∣
∣
ω
∣
∣
,
∀
y
i
(
ω
T
x
i
+
b
)
≥
1
max_{\omega,b}\frac{1}{||\omega||},\forall y_i(\omega^Tx_i+b)\geq1
maxω,b∣∣ω∣∣1,∀yi(ωTxi+b)≥1
转化一下:
m
i
n
ω
,
b
1
2
∣
∣
ω
∣
∣
2
,
∀
y
i
(
ω
T
x
i
+
b
)
≥
1
min_{\omega,b}\frac{1}{2}||\omega||^2,\forall y_i(\omega^Tx_i+b)\geq1
minω,b21∣∣ω∣∣2,∀yi(ωTxi+b)≥1
加上常数是为了求导方便。
1.3 拉格朗日函数求解
要求解最小化问题,最直观的想法是构建一个函数,使该函数在可行解区域内与原目标函数完全一致,而在可行解区域外的数值非常大,甚至无穷大。那么这个没有约束条件的新目标函数的优化问题就与原来有约束条件的原始目标函数的优化问题等价。这就是拉格朗日方程的目的,它将约束条件放到目标函数中,从而将有约束的优化问题转换为无约束的优化问题。
下式就是原问题转化为无约束的优化问题的公式:
Γ
(
ω
,
b
,
α
)
=
1
2
∣
∣
ω
∣
∣
2
−
∑
i
=
1
n
α
i
(
y
i
(
ω
T
x
i
+
b
)
−
1
)
\Gamma(\omega,b,\alpha)=\frac{1}{2}||\omega||^2-\sum_{i=1}^{n}\alpha_i(y_i(\omega^Tx_i+b)-1)
Γ(ω,b,α)=21∣∣ω∣∣2−i=1∑nαi(yi(ωTxi+b)−1)
其中
α
i
≥
0
\alpha_i\geq0
αi≥0为拉格朗日乘子,是构建新目标函数时引入的系数变量。现在我们令:
Θ
(
ω
)
=
m
a
x
α
i
≥
0
Γ
(
ω
,
b
,
α
)
\Theta(\omega)=max_{\alpha_i\geq0}\Gamma(\omega,b,\alpha)
Θ(ω)=maxαi≥0Γ(ω,b,α)
当样本点不满足约束条件,即在可行域外
y
i
(
ω
T
x
i
+
b
)
<
1
y_i(\omega^Tx_i+b)\lt1
yi(ωTxi+b)<1,此时
α
i
=
+
∞
,
Θ
(
ω
)
=
+
∞
\alpha_i=+\infty,\Theta(\omega)=+\infty
αi=+∞,Θ(ω)=+∞。
当样本点满足约束条件时,即在可行域内
y
i
(
ω
T
x
i
+
b
)
≥
1
y_i(\omega^Tx_i+b)\geq1
yi(ωTxi+b)≥1,此时
Θ
(
ω
)
=
1
2
∣
∣
ω
∣
∣
2
\Theta(\omega)=\frac{1}{2}||\omega||^2
Θ(ω)=21∣∣ω∣∣2。
即:
Θ
(
ω
)
=
{
1
2
∣
∣
ω
∣
∣
2
,
x
∈
可
行
域
+
∞
,
x
∈
非
可
行
域
\Theta(\omega)=\begin{cases}\frac{1}{2}||\omega||^2,x\in可行域 \\ +\infty,x\in非可行域\end{cases}
Θ(ω)={21∣∣ω∣∣2,x∈可行域+∞,x∈非可行域
现在问题变为求解新目标函数
Θ
(
ω
)
\Theta(\omega)
Θ(ω)的最小值:
m
i
n
ω
,
b
Θ
(
ω
)
=
m
i
n
ω
m
a
x
α
i
≥
0
Γ
(
ω
,
b
,
α
)
=
p
∗
min_{\omega,b}\Theta(\omega)=min_{\omega}max_{\alpha_i\geq0}\Gamma(\omega,b,\alpha)=p^*
minω,bΘ(ω)=minωmaxαi≥0Γ(ω,b,α)=p∗
根据朗格朗日对偶性:
m
i
n
ω
,
b
Θ
(
ω
)
=
m
a
x
α
i
≥
0
m
i
n
ω
Γ
(
ω
,
b
,
α
)
=
d
∗
min_{\omega,b}\Theta(\omega)=max_{\alpha_i\geq0}min_{\omega}\Gamma(\omega,b,\alpha)=d^*
minω,bΘ(ω)=maxαi≥0minωΓ(ω,b,α)=d∗
1.4 对偶问题求解
求解的问题为:
m
a
x
α
i
≥
0
m
i
n
ω
Γ
(
ω
,
b
,
α
)
=
d
∗
Γ
(
ω
,
b
,
α
)
=
1
2
∣
∣
ω
∣
∣
2
−
∑
i
=
1
n
α
i
(
y
i
(
ω
T
x
i
+
b
)
−
1
)
max_{\alpha_i\geq0}min_{\omega}\Gamma(\omega,b,\alpha)=d^* \\ \Gamma(\omega,b,\alpha)=\frac{1}{2}||\omega||^2-\sum_{i=1}^{n}\alpha_i(y_i(\omega^Tx_i+b)-1)
maxαi≥0minωΓ(ω,b,α)=d∗Γ(ω,b,α)=21∣∣ω∣∣2−i=1∑nαi(yi(ωTxi+b)−1)
先求里面的
m
i
n
min
min部分,首先固定
α
\alpha
α,分别对
ω
,
b
\omega,b
ω,b求导,并令导数为0,得到:
∂
Γ
∂
ω
=
0
⇒
ω
=
∑
i
=
1
n
α
i
y
i
x
i
∂
Γ
∂
b
=
0
⇒
∑
i
=
1
n
α
i
y
i
=
0
\frac{\partial\Gamma}{\partial\omega}=0 \Rightarrow \omega=\sum_{i=1}^{n}\alpha_iy_ix_i \\ \frac{\partial\Gamma}{\partial b}=0 \Rightarrow \sum_{i=1}^{n}\alpha_iy_i=0
∂ω∂Γ=0⇒ω=i=1∑nαiyixi∂b∂Γ=0⇒i=1∑nαiyi=0
又由
K
K
T
KKT
KKT条件:
α
i
(
y
i
(
ω
T
x
i
+
b
)
−
1
)
=
0
α
i
≥
0
\alpha_i(y_i(\omega^Tx_i+b)-1)=0 \\ \alpha_i \geq 0
αi(yi(ωTxi+b)−1)=0αi≥0
得到要么
α
i
=
0
\alpha_i=0
αi=0,要么
y
i
(
ω
T
x
i
+
b
)
−
1
=
0
y_i(\omega^Tx_i+b)-1=0
yi(ωTxi+b)−1=0,但是如果
α
i
=
0
\alpha_i=0
αi=0,明显不对,此时
ω
=
0
\omega=0
ω=0,还求什么解?所以一定是
y
i
(
ω
T
x
i
+
b
)
−
1
=
0
y_i(\omega^Tx_i+b)-1=0
yi(ωTxi+b)−1=0,进而求得:
b
=
1
−
y
j
ω
T
x
j
y
j
=
1
y
j
−
ω
T
x
j
=
y
j
−
∑
i
=
1
,
j
=
1
n
α
i
T
y
i
x
i
T
x
j
b = \frac{1-y_j\omega^Tx_j}{y_j} \\ = \frac{1}{y_j} - \omega^Tx_j \\ = y_j - \sum_{i=1,j=1}^{n}\alpha_{i}^{T}y_ix_{i}^{T}x_j
b=yj1−yjωTxj=yj1−ωTxj=yj−i=1,j=1∑nαiTyixiTxj
变换一下符号,将
x
j
,
y
j
x_j,y_j
xj,yj看作训练集的数,进一步地得到那个超平面方程:
∑
i
=
1
n
α
i
T
y
i
x
i
T
y
+
1
−
∑
i
=
1
n
α
i
T
y
i
x
i
T
x
y
=
0
\sum_{i=1}^{n}\alpha_i^Ty_ix_i^Ty+1-\sum_{i=1}^n\alpha_i^Ty_ix_i^Txy=0
i=1∑nαiTyixiTy+1−i=1∑nαiTyixiTxy=0
y
y
y的取值是
±
1
\pm1
±1,所以整个超平面是只依赖于输入样本和训练样本的内积的
同时将
ω
\omega
ω和
b
b
b的结果带回
Γ
(
ω
,
b
,
α
)
\Gamma(\omega,b,\alpha)
Γ(ω,b,α):
Γ
(
ω
,
b
,
α
)
=
1
2
∣
∣
ω
∣
∣
2
−
∑
i
=
1
n
α
i
(
y
i
(
ω
T
x
i
+
b
)
−
1
)
=
1
2
ω
T
ω
−
ω
T
∑
i
=
1
n
α
i
y
i
x
i
−
b
∑
i
=
1
n
α
i
y
i
+
∑
i
=
1
n
α
i
=
1
2
ω
T
∑
i
=
1
n
α
i
y
i
x
i
−
ω
T
∑
i
=
1
n
α
i
y
i
x
i
−
b
×
0
+
∑
i
=
1
n
α
i
=
∑
i
=
1
n
α
i
−
1
2
{
∑
i
=
1
n
α
i
y
i
x
i
}
T
∑
i
=
1
n
α
i
y
i
x
i
=
∑
i
=
1
n
α
i
−
1
2
∑
i
=
1
,
j
=
1
n
α
i
α
j
y
i
y
j
x
i
T
x
j
\Gamma(\omega,b,\alpha)=\frac{1}{2}||\omega||^2-\sum_{i=1}^{n}\alpha_i(y_i(\omega^Tx_i+b)-1) \\ =\frac{1}{2}\omega^T\omega-\omega^T\sum_{i=1}^{n}\alpha_iy_ix_i - b\sum_{i=1}^{n}\alpha_iy_i + \sum_{i=1}^{n}\alpha_i \\ =\frac{1}{2}\omega^T\sum_{i=1}^{n}\alpha_iy_ix_i - \omega^T\sum_{i=1}^{n}\alpha_iy_ix_i - b\times0+\sum_{i=1}^{n}\alpha_i \\ =\sum_{i=1}^{n}\alpha_i-\frac{1}{2}\lbrace \sum_{i=1}^{n}\alpha_iy_ix_i \rbrace ^T\sum_{i=1}^{n}\alpha_iy_ix_i \\ = \sum_{i=1}^{n}\alpha_i-\frac{1}{2} \sum_{i=1,j=1}^{n}\alpha_i\alpha_jy_iy_jx_i^Tx_j
Γ(ω,b,α)=21∣∣ω∣∣2−i=1∑nαi(yi(ωTxi+b)−1)=21ωTω−ωTi=1∑nαiyixi−bi=1∑nαiyi+i=1∑nαi=21ωTi=1∑nαiyixi−ωTi=1∑nαiyixi−b×0+i=1∑nαi=i=1∑nαi−21{i=1∑nαiyixi}Ti=1∑nαiyixi=i=1∑nαi−21i=1,j=1∑nαiαjyiyjxiTxj
上式中只有一个变量
α
\alpha
α了,内侧的最小值已经求解完成,我们再求外侧的最大值:
m
a
x
α
i
≥
0
∑
i
=
1
n
α
i
−
1
2
∑
i
=
1
,
j
=
1
n
α
i
α
j
y
i
y
j
x
i
T
x
j
s
.
t
.
α
≥
0
,
i
=
1
,
2
,
.
.
.
,
n
∑
i
=
1
n
α
i
y
i
=
0
max_{\alpha_i\geq0}\sum_{i=1}^{n}\alpha_i-\frac{1}{2} \sum_{i=1,j=1}^{n}\alpha_i\alpha_jy_iy_jx_i^Tx_j \\ s.t.\alpha\geq0,i=1,2,...,n \\ \sum_{i=1}^{n}\alpha_iy_i=0
maxαi≥0i=1∑nαi−21i=1,j=1∑nαiαjyiyjxiTxjs.t.α≥0,i=1,2,...,ni=1∑nαiyi=0
转化为等价问题:
m
i
n
α
i
≥
0
1
2
∑
i
=
1
,
j
=
1
n
α
i
α
j
y
i
y
j
x
i
T
x
j
−
∑
i
=
1
n
α
i
s
.
t
.
α
≥
0
,
i
=
1
,
2
,
.
.
.
,
n
∑
i
=
1
n
α
i
y
i
=
0
min_{\alpha_i\geq0}\frac{1}{2} \sum_{i=1,j=1}^{n}\alpha_i\alpha_jy_iy_jx_i^Tx_j - \sum_{i=1}^{n}\alpha_i \\ s.t.\alpha\geq0,i=1,2,...,n \\ \sum_{i=1}^{n}\alpha_iy_i=0
minαi≥021i=1,j=1∑nαiαjyiyjxiTxj−i=1∑nαis.t.α≥0,i=1,2,...,ni=1∑nαiyi=0
接着我们可以使用序列最小优化(SMO)算法求得得到
α
\alpha
α,再根据
α
\alpha
α,我们就可以求解出
ω
\omega
ω和
b
b
b,进而求得
H
3
H_3
H3。
感谢阅读。
如果觉得文章对你有所帮助,欢迎打赏哦~