本课程来自深度之眼,部分截图来自课程视频以及李航老师的《统计学习方法》第二版。
公式输入请参考: 在线Latex公式
前言
学习第7章支持向量机,理解线性可分支持向量机、线性支持向量机和非线性支持向量机。
详细说明:第7章介绍了支持向量机如何用于二分类问题。通过学习第1节,掌握线性可分支持向量机与感知机的区别,了解对应的凸优化问题、对偶问题及相应的算法,掌握软间隔最大化对应的优化问题、对偶问题及相应的算法,其中合页损失函数不做学习要求,了解核函数在非线性支持向量机中的应用;介绍了训练样本较大时的序列最小最优化算法。通过学习第2节,对最优超平面的存在唯一性进行了证明。
学习目标:
0.导读视频。
1.理解线性可分支持向量机硬间隔最大化的思想、对应的优化问题、对偶问题和相应算法。
2.理解硬间隔最大化解的存在唯一性。
3. 理解线性支持向量机软间隔最大化的思想、对应的优化问题、对偶问题和相应算法。
4.了解核函数在非线性支持向量机中的应用和对应的算法。
5.了解序列最小最优化算法的基本思想。
6.掌握支持向量机的算法实现。
总体思路就是:线性分类、软间隔分类、非线性分类
好多苹果。。。
基础知识
最优超平面
上图中超平面A是最优的。因为它与两个类的距离都足够大。
结论:
我们试图要去找到一个超平面,这个超平面可以使得与它最近的样本点的距离必须大于其他所有超平面划分时与最近的样本点的距离。
在svm中,这叫间隔最大化。
非线性划分
对于如下图所示的数据(非线性可分),SVM如何做到划分的呢?
就是考虑在高维空间中进行划分:
老师这里给了一个例子来帮助理解。
一个棍子,是二维的(直径不大)若棍子上有两个点。
1.当有人拿着棍子指着你时,你只能看到棍子的横截面,是一个点,它是一维的。我们无法将两个点区分开来。因为它们重叠了。
2.当有人拿着棍子指着别人时,我们能看到整根棍子,这时候是二维的。我们可以一刀把棍子劈开来,把红豆和绿豆区分来开。所以,红豆和绿豆虽然在一维的时候不能分开,但在二维时就线性可分型了。
但是如果棍子的有很多个点,这个时候二维仍然不能切分:
3.这时候我们把棍子真正看成一个三维中的棍子,是有体积的。如果把棍子立在地上,很有可能红豆都在靠南侧,绿豆都在靠北侧,那么我们像劈柴一样把这个棍子劈开,也一样线性可分。
4.如果三维还不能线性可分,那就升到4维。总会从某一个维度开始,数据集变得线性可分了(万物皆可线性划分)。高维中的超平面,映射到低维空间中时,可能会变成曲线或其他形式的划分形式。这也就是为什么,在SVM中我们同样使用超平面来划分,但SVM可以划分非线形的数据集。因为它本质上仍然是线形超平面,不过是高维中的线形超平面。
这里要注意:如果数据在N维空间线性可分,在N+1维也是线性可分的。
小结
1.SVM使用间隔最大化思想构造最优超平面。
2.构造出来的超平面使得其与最近的点的距离最大。
3.SVM也可划分非线形数据集。
4.它通过高维中的线形超平面在低维中的投影来完成非线形的划分。因此从直观上来讲,我们的模型必定有一个升维的操作。
线性SVM
相关概念的数学表达
函数间隔:
γ
^
i
=
y
i
(
w
x
i
+
b
)
\hat\gamma_i=y_i(wx_i+b)
γ^i=yi(wxi+b)
几何间隔:
γ
i
=
y
i
(
w
∣
∣
w
∣
∣
⋅
x
i
+
b
∣
∣
w
∣
∣
)
=
γ
^
i
∣
∣
w
∣
∣
\gamma_i = y_i\left(\cfrac{w}{||w||}\cdot x_i+\cfrac{b}{||w||}\right)=\cfrac{\hat\gamma_i}{||w||}
γi=yi(∣∣w∣∣w⋅xi+∣∣w∣∣b)=∣∣w∣∣γ^i
最大间隔分离超平面:
max
w
,
b
γ
s.t.
y
i
(
w
∣
∣
w
∣
∣
⋅
x
i
+
b
∣
∣
w
∣
∣
)
≥
γ
i
=
1
,
2
,
⋯
,
N
\underset{w,b}{\max}\gamma \\ \text{s.t.}\quad y_i\left(\cfrac{w}{||w||}\cdot x_i+\cfrac{b}{||w||}\right)\ge\gamma\quad i = 1,2,\cdots,N
w,bmaxγs.t.yi(∣∣w∣∣w⋅xi+∣∣w∣∣b)≥γi=1,2,⋯,N
这里的约束条件中加上
y
i
y_i
yi是使得整个条件左边大于0,因为如下图所示,在超平面的一边的几何间隔是正数,乘以
y
i
=
1
y_i=1
yi=1还是正数,同样的在超平面的一边的几何间隔是负数,乘以
y
i
=
−
1
y_i=-1
yi=−1还是正数。
为了将约束里面的二范数化简,可将约束的几何间隔换成函数间隔后消除二范数,变成:
max
w
,
b
γ
^
∣
∣
w
∣
∣
s.t.
y
i
(
w
⋅
x
i
+
b
)
≥
γ
^
i
=
1
,
2
,
⋯
,
N
\underset{w,b}{\max}\cfrac{\hat\gamma}{||w||} \\ \text{s.t.}\quad y_i\left(w\cdot x_i+b\right)\ge\hat\gamma\quad i = 1,2,\cdots,N
w,bmax∣∣w∣∣γ^s.t.yi(w⋅xi+b)≥γ^i=1,2,⋯,N
上面出现的函数间隔是可以通过缩放系数来调整的间隔大小的。因此把
γ
^
\hat\gamma
γ^缩放到1,变成:
max
w
,
b
1
∣
∣
w
∣
∣
s.t.
y
i
(
w
⋅
x
i
+
b
)
≥
1
i
=
1
,
2
,
⋯
,
N
\underset{w,b}{\max}\cfrac{1}{||w||} \\ \text{s.t.}\quad y_i\left(w\cdot x_i+b\right)\ge1\quad i = 1,2,\cdots,N
w,bmax∣∣w∣∣1s.t.yi(w⋅xi+b)≥1i=1,2,⋯,N
然后转成最小化问题:
min
w
,
b
1
2
∣
∣
w
∣
∣
2
s.t.
y
i
(
w
⋅
x
i
+
b
)
−
1
≥
0
i
=
1
,
2
,
⋯
,
N
\underset{w,b}{\min}\cfrac{1}{2}||w||^2 \\ \text{s.t.}\quad y_i\left(w\cdot x_i+b\right)-1\ge0\quad i = 1,2,\cdots,N
w,bmin21∣∣w∣∣2s.t.yi(w⋅xi+b)−1≥0i=1,2,⋯,N
超平面参数求解
根据上面的式子构造拉格朗日(这里的约束有
N
N
N个):
L
(
w
,
b
,
α
)
=
1
2
∣
∣
w
∣
∣
2
−
∑
i
=
1
N
α
i
y
i
(
w
⋅
x
i
+
b
)
+
∑
i
=
1
N
α
i
(1)
L(w,b,\alpha)=\cfrac{1}{2}||w||^2-\sum_{i=1}^N\alpha_iy_i\left(w\cdot x_i+b\right)+\sum_{i=1}^N\alpha_i\tag1
L(w,b,α)=21∣∣w∣∣2−i=1∑Nαiyi(w⋅xi+b)+i=1∑Nαi(1)
在拉格朗日的式子中
α
\alpha
α是参数,要通过找到拉格朗日的式子获得最大值的参数
α
\alpha
α后,再去求使得目标最小的参数
w
,
b
w,b
w,b:
min
w
,
b
max
α
L
(
w
,
b
,
α
)
\underset{w,b}{\min}\underset{\alpha}{\max}L(w,b,\alpha)
w,bminαmaxL(w,b,α)
这个不好求,由于凸函数的缘故,可以转化为:
max
α
min
w
,
b
L
(
w
,
b
,
α
)
\underset{\alpha}{\max}\underset{w,b}{\min}L(w,b,\alpha)
αmaxw,bminL(w,b,α)
1.求极值,就是要求偏导并使其等于0:
∂
L
∂
w
=
w
−
∑
i
=
1
N
α
i
y
i
x
i
=
0
\cfrac{\partial L}{\partial w}=w-\sum_{i=1}^N\alpha_iy_ix_i=0
∂w∂L=w−i=1∑Nαiyixi=0
∂
L
∂
b
=
∑
i
=
1
N
α
i
y
i
=
0
\cfrac{\partial L}{\partial b}=\sum_{i=1}^N\alpha_iy_i=0
∂b∂L=i=1∑Nαiyi=0
解出来:
w
=
∑
i
=
1
N
α
i
y
i
x
i
∑
i
=
1
N
α
i
y
i
=
0
(2)
w=\sum_{i=1}^N\alpha_iy_ix_i\\ \sum_{i=1}^N\alpha_iy_i=0\tag2
w=i=1∑Nαiyixii=1∑Nαiyi=0(2)
将2代入1,这里为了区分,把部分
w
w
w下标换成
j
j
j:
L
(
w
,
b
,
α
)
=
1
2
∑
i
=
1
N
α
i
y
i
x
i
∑
j
=
1
N
α
j
y
j
x
j
−
∑
i
=
1
N
α
i
y
i
(
∑
j
=
1
N
α
j
y
j
x
j
x
i
+
b
)
+
∑
i
=
1
N
α
i
=
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
x
i
x
j
−
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
x
i
x
j
−
∑
i
=
1
N
α
i
y
i
b
+
∑
i
=
1
N
α
i
=
−
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
x
i
x
j
+
∑
i
=
1
N
α
i
\begin{aligned}L(w,b,\alpha)&=\cfrac{1}{2}\sum_{i=1}^N\alpha_iy_ix_i\sum_{j=1}^N\alpha_jy_jx_j-\sum_{i=1}^N\alpha_iy_i\left(\sum_{j=1}^N\alpha_jy_jx_jx_i+b\right)+\sum_{i=1}^N\alpha_i\\ &=\cfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jx_ix_j-\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jx_ix_j-\sum_{i=1}^N\alpha_iy_ib+\sum_{i=1}^N\alpha_i\\ &=-\cfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jx_ix_j+\sum_{i=1}^N\alpha_i\end{aligned}
L(w,b,α)=21i=1∑Nαiyixij=1∑Nαjyjxj−i=1∑Nαiyi(j=1∑Nαjyjxjxi+b)+i=1∑Nαi=21i=1∑Nj=1∑Nαiαjyiyjxixj−i=1∑Nj=1∑Nαiαjyiyjxixj−i=1∑Nαiyib+i=1∑Nαi=−21i=1∑Nj=1∑Nαiαjyiyjxixj+i=1∑Nαi
也就是
min
w
,
b
L
(
w
,
b
,
α
)
=
−
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
x
i
x
j
+
∑
i
=
1
N
α
i
\underset{w,b}{\min}L(w,b,\alpha)=-\cfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jx_ix_j+\sum_{i=1}^N\alpha_i
w,bminL(w,b,α)=−21i=1∑Nj=1∑Nαiαjyiyjxixj+i=1∑Nαi
2.求
min
w
,
b
L
(
w
,
b
,
α
)
\underset{w,b}{\min}L(w,b,\alpha)
w,bminL(w,b,α)对
α
\alpha
α的最大,就是:
max
α
−
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
x
i
x
j
+
∑
i
=
1
N
α
i
s.t.
∑
i
=
1
N
α
i
y
i
=
0
α
i
≥
0
,
i
=
1
,
2
,
⋯
,
N
\underset{\alpha}{\max}-\cfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jx_ix_j+\sum_{i=1}^N\alpha_i\\ \text{s.t. }\sum_{i=1}^N\alpha_iy_i=0\\ \alpha_i\ge0,i=1,2,\cdots,N
αmax−21i=1∑Nj=1∑Nαiαjyiyjxixj+i=1∑Nαis.t. i=1∑Nαiyi=0αi≥0,i=1,2,⋯,N
这里
w
w
w没有了,约束就剩下一个,最后那个条件是拉格朗日法附带的条件。
3.将max转化为min问题:
min
α
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
x
i
x
j
−
∑
i
=
1
N
α
i
s.t.
∑
i
=
1
N
α
i
y
i
=
0
α
i
≥
0
,
i
=
1
,
2
,
⋯
,
N
\underset{\alpha}{\min}\cfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jx_ix_j-\sum_{i=1}^N\alpha_i\\ \text{s.t. }\sum_{i=1}^N\alpha_iy_i=0\\ \alpha_i\ge0,i=1,2,\cdots,N
αmin21i=1∑Nj=1∑Nαiαjyiyjxixj−i=1∑Nαis.t. i=1∑Nαiyi=0αi≥0,i=1,2,⋯,N
接下来求 α \alpha α后面一块讲。
软间隔最大化
之前的超平面目标和约束条件是:
min
w
,
b
1
2
∣
∣
w
∣
∣
2
s.t.
y
i
(
w
⋅
x
i
+
b
)
−
1
≥
0
i
=
1
,
2
,
⋯
,
N
\underset{w,b}{\min}\cfrac{1}{2}||w||^2 \\ \text{s.t.}\quad y_i\left(w\cdot x_i+b\right)-1\ge0\quad i = 1,2,\cdots,N
w,bmin21∣∣w∣∣2s.t.yi(w⋅xi+b)−1≥0i=1,2,⋯,N
但是在使用超平面划分数据后,仍然有小部分数据越过了超平面,这个时候就需要加入松弛因子:
y
i
(
w
⋅
x
i
+
b
)
≥
1
−
ξ
i
y_i\left(w\cdot x_i+b\right)\ge1-\xi_i
yi(w⋅xi+b)≥1−ξi。使得对这些样本有一定的容忍,因此目标和约束条件变成:
min
w
,
b
,
ξ
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
N
ξ
i
s.t.
y
i
(
w
⋅
x
i
+
b
)
≥
1
−
ξ
i
i
=
1
,
2
,
⋯
,
N
ξ
i
≥
0
,
i
=
1
,
2
,
⋯
,
N
\underset{w,b,\xi}{\min}\cfrac{1}{2}||w||^2 +C\sum_{i=1}^N\xi_i\\ \text{s.t.}\quad y_i\left(w\cdot x_i+b\right)\ge1-\xi_i\quad i = 1,2,\cdots,N\\ \xi_i\ge0,\quad i = 1,2,\cdots,N
w,b,ξmin21∣∣w∣∣2+Ci=1∑Nξis.t.yi(w⋅xi+b)≥1−ξii=1,2,⋯,Nξi≥0,i=1,2,⋯,N
同样参考上面:超平面参数求解的过程可以解出最后的结果:
min
α
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
x
i
x
j
−
∑
i
=
1
N
α
i
s.t.
∑
i
=
1
N
α
i
y
i
=
0
0
≤
α
i
≤
C
,
i
=
1
,
2
,
⋯
,
N
\underset{\alpha}{\min}\cfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jx_ix_j-\sum_{i=1}^N\alpha_i\\ \text{s.t. }\sum_{i=1}^N\alpha_iy_i=0\\ 0\le \alpha_i\le C,i=1,2,\cdots,N
αmin21i=1∑Nj=1∑Nαiαjyiyjxixj−i=1∑Nαis.t. i=1∑Nαiyi=00≤αi≤C,i=1,2,⋯,N
接下来求 α \alpha α后面一块讲。
核函数
把之间的结果拉过来,整理一下:
min
α
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
(
x
i
⋅
x
j
)
−
∑
i
=
1
N
α
i
s.t.
∑
i
=
1
N
α
i
y
i
=
0
0
≤
α
i
≤
C
,
i
=
1
,
2
,
⋯
,
N
\underset{\alpha}{\min}\cfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)-\sum_{i=1}^N\alpha_i\\ \text{s.t. }\sum_{i=1}^N\alpha_iy_i=0\\ 0\le \alpha_i\le C,i=1,2,\cdots,N
αmin21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαis.t. i=1∑Nαiyi=00≤αi≤C,i=1,2,⋯,N
式子中间有
∑
i
=
1
N
∑
j
=
1
N
x
i
⋅
x
j
\sum_{i=1}^N\sum_{j=1}^Nx_i\cdot x_j
∑i=1N∑j=1Nxi⋅xj,这个计算量很大,相当于所有样本之间两两做点乘。例如在手写数字数据集Mnist中,训练集有6万个样本,6万乘6万勉强能接受。
但每个样本时784维的,6万个样本两两做点积,是非常慢的。如果样本是更高维度的呢?
此外,我们需要将样本映射到高维去,加入映射函数为
ϕ
(
x
)
\phi(x)
ϕ(x),那么
ϕ
(
x
i
)
\phi(x_i)
ϕ(xi)和
ϕ
(
x
j
)
\phi(x_j)
ϕ(xj)的维度数目进一步扩大,它们的点积会让运算变得及其复杂。(因为维度太高了)
因此,我们希望存在一个函数
K
(
x
i
,
x
j
)
=
ϕ
(
x
i
)
⋅
ϕ
(
x
j
)
K(x_i,x_j)=\phi(x_i)\cdot\phi(x_j)
K(xi,xj)=ϕ(xi)⋅ϕ(xj),但函数
K
K
K的计算方式更简单。也就是说,我将样本通过函数升维得到
ϕ
(
x
i
)
\phi(x_i)
ϕ(xi)和
ϕ
(
x
j
)
\phi(x_j)
ϕ(xj),接下来要计算它们的点积,能不能有个很简单的计算公式,计算出来的结果和
ϕ
(
x
i
)
⋅
ϕ
(
x
j
)
\phi(x_i)\cdot\phi(x_j)
ϕ(xi)⋅ϕ(xj)一样?那样我就不用再去算
ϕ
(
x
i
)
⋅
ϕ
(
x
j
)
\phi(x_i)\cdot\phi(x_j)
ϕ(xi)⋅ϕ(xj)的结果了,直接用简单方式计算,也就是核函数。
常用的核函数是高斯核函数:
K
(
x
,
z
)
=
exp
(
−
∣
∣
x
−
z
∣
∣
2
2
σ
2
)
K(x,z)=\exp\left(-\cfrac{||x-z||^2}{2\sigma^2}\right)
K(x,z)=exp(−2σ2∣∣x−z∣∣2)
上面的约束和目标变成了:
min
α
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
K
(
x
i
,
x
j
)
−
∑
i
=
1
N
α
i
s.t.
∑
i
=
1
N
α
i
y
i
=
0
0
≤
α
i
≤
C
,
i
=
1
,
2
,
⋯
,
N
\underset{\alpha}{\min}\cfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jK(x_i, x_j)-\sum_{i=1}^N\alpha_i\\ \text{s.t. }\sum_{i=1}^N\alpha_iy_i=0\\ 0\le \alpha_i\le C,i=1,2,\cdots,N
αmin21i=1∑Nj=1∑NαiαjyiyjK(xi,xj)−i=1∑Nαis.t. i=1∑Nαiyi=00≤αi≤C,i=1,2,⋯,N
下面就用SMO来求解之前都没有讲解的,如何求
α
\alpha
α
序列最小最优化算法(SMO)
SMO: Sequential minimal optimization
思路:我们最后求解出来的
α
\alpha
α,一定是让整个结果满足KKT条件的。如果不满足,那一定不是最优解。所以我们可以用SMO算法不断地调整
α
\alpha
α的值,直到所有
α
\alpha
α都满足KKT条件,这时候就得到了最优解。
KKT条件在附录450页,证明过程比较复杂,最后结果是5个不等式。
假设整个式子中共有N个
α
(
α
1
,
α
2
,
⋯
,
α
N
)
\alpha(\alpha_1,\alpha_2,\cdots,\alpha_N)
α(α1,α2,⋯,αN),此时不能只优化一个维度的
α
\alpha
α,因为有约束条件
∑
i
=
1
N
α
i
y
i
=
0
\sum_{i=1}^N\alpha_iy_i=0
∑i=1Nαiyi=0,如果优化
α
1
\alpha_1
α1,其余维度固定,由于
α
1
y
1
+
∑
i
=
2
N
α
i
y
i
=
0
\alpha_1y_1+\sum_{i=2}^N\alpha_iy_i=0
α1y1+∑i=2Nαiyi=0因此
α
1
\alpha_1
α1也固定住了,因此这里我们选择一次优化两个维度:
α
1
y
1
+
α
2
y
2
=
−
∑
i
=
3
N
α
i
y
i
\alpha_1y_1+\alpha_2y_2=-\sum_{i=3}^N\alpha_iy_i
α1y1+α2y2=−i=3∑Nαiyi
由于原式只有
α
1
,
α
2
\alpha_1,\alpha_2
α1,α2两个变量,其他可以作为常数去掉。
min
α
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
K
(
x
i
,
x
j
)
−
∑
i
=
1
N
α
i
\underset{\alpha}{\min}\cfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jK(x_i, x_j)-\sum_{i=1}^N\alpha_i
αmin21i=1∑Nj=1∑NαiαjyiyjK(xi,xj)−i=1∑Nαi
变成:
1
2
∑
i
=
1
2
∑
j
=
1
2
α
i
α
j
y
i
y
j
K
(
x
i
,
x
j
)
−
∑
i
=
1
2
α
i
+
1
2
α
1
y
1
∑
j
=
3
N
α
j
y
j
K
(
x
1
,
x
j
)
+
1
2
α
2
y
2
∑
j
=
3
N
α
j
y
j
K
(
x
2
,
x
j
)
+
1
2
α
1
y
1
∑
i
=
3
N
α
i
y
i
K
(
x
i
,
x
1
)
+
1
2
α
2
y
2
∑
i
=
3
N
α
i
y
i
K
(
x
i
,
x
2
)
=
1
2
α
1
α
1
y
1
y
1
K
(
x
1
,
x
1
)
+
1
2
α
1
α
2
y
1
y
2
K
(
x
1
,
x
2
)
+
1
2
α
2
α
1
y
2
y
1
K
(
x
2
,
x
1
)
+
1
2
α
2
α
2
y
2
y
2
K
(
x
2
,
x
2
)
−
∑
i
=
1
2
α
i
+
1
2
α
1
y
1
∑
j
=
3
N
α
j
y
j
K
(
x
1
,
x
j
)
+
1
2
α
2
y
2
∑
j
=
3
N
α
j
y
j
K
(
x
2
,
x
j
)
+
1
2
α
1
y
1
∑
i
=
3
N
α
i
y
i
K
(
x
i
,
x
1
)
+
1
2
α
2
y
2
∑
i
=
3
N
α
i
y
i
K
(
x
i
,
x
2
)
=
1
2
α
1
2
K
(
x
1
,
x
1
)
+
α
1
α
2
y
1
y
2
K
(
x
1
,
x
2
)
+
1
2
α
2
2
K
(
x
2
,
x
2
)
−
∑
i
=
1
2
α
i
+
1
2
α
1
y
1
∑
j
=
3
N
α
j
y
j
K
(
x
1
,
x
j
)
+
1
2
α
2
y
2
∑
j
=
3
N
α
j
y
j
K
(
x
2
,
x
j
)
+
1
2
α
1
y
1
∑
i
=
3
N
α
i
y
i
K
(
x
i
,
x
1
)
+
1
2
α
2
y
2
∑
i
=
3
N
α
i
y
i
K
(
x
i
,
x
2
)
\cfrac{1}{2}\sum_{i=1}^2\sum_{j=1}^2\alpha_i\alpha_jy_iy_jK(x_i, x_j)-\sum_{i=1}^2\alpha_i\\+\cfrac{1}{2}\alpha_1y_1\sum_{j=3}^N\alpha_jy_jK(x_1, x_j)+\cfrac{1}{2}\alpha_2y_2\sum_{j=3}^N\alpha_jy_jK(x_2, x_j)+\\\cfrac{1}{2}\alpha_1y_1\sum_{i=3}^N\alpha_iy_iK(x_i, x_1)+\cfrac{1}{2}\alpha_2y_2\sum_{i=3}^N\alpha_iy_iK(x_i, x_2)\\ =\cfrac{1}{2}\alpha_1\alpha_1y_1y_1K(x_1, x_1)+\cfrac{1}{2}\alpha_1\alpha_2y_1y_2K(x_1, x_2)+\cfrac{1}{2}\alpha_2\alpha_1y_2y_1K(x_2, x_1)+\cfrac{1}{2}\alpha_2\alpha_2y_2y_2K(x_2, x_2)-\sum_{i=1}^2\alpha_i\\+\cfrac{1}{2}\alpha_1y_1\sum_{j=3}^N\alpha_jy_jK(x_1, x_j)+\cfrac{1}{2}\alpha_2y_2\sum_{j=3}^N\alpha_jy_jK(x_2, x_j)+\\\cfrac{1}{2}\alpha_1y_1\sum_{i=3}^N\alpha_iy_iK(x_i, x_1)+\cfrac{1}{2}\alpha_2y_2\sum_{i=3}^N\alpha_iy_iK(x_i, x_2)\\ =\cfrac{1}{2}\alpha_1^2K(x_1, x_1)+\alpha_1\alpha_2y_1y_2K(x_1, x_2)+\cfrac{1}{2}\alpha_2^2K(x_2, x_2)-\sum_{i=1}^2\alpha_i\\+\cfrac{1}{2}\alpha_1y_1\sum_{j=3}^N\alpha_jy_jK(x_1, x_j)+\cfrac{1}{2}\alpha_2y_2\sum_{j=3}^N\alpha_jy_jK(x_2, x_j)+\\\cfrac{1}{2}\alpha_1y_1\sum_{i=3}^N\alpha_iy_iK(x_i, x_1)+\cfrac{1}{2}\alpha_2y_2\sum_{i=3}^N\alpha_iy_iK(x_i, x_2)
21i=1∑2j=1∑2αiαjyiyjK(xi,xj)−i=1∑2αi+21α1y1j=3∑NαjyjK(x1,xj)+21α2y2j=3∑NαjyjK(x2,xj)+21α1y1i=3∑NαiyiK(xi,x1)+21α2y2i=3∑NαiyiK(xi,x2)=21α1α1y1y1K(x1,x1)+21α1α2y1y2K(x1,x2)+21α2α1y2y1K(x2,x1)+21α2α2y2y2K(x2,x2)−i=1∑2αi+21α1y1j=3∑NαjyjK(x1,xj)+21α2y2j=3∑NαjyjK(x2,xj)+21α1y1i=3∑NαiyiK(xi,x1)+21α2y2i=3∑NαiyiK(xi,x2)=21α12K(x1,x1)+α1α2y1y2K(x1,x2)+21α22K(x2,x2)−i=1∑2αi+21α1y1j=3∑NαjyjK(x1,xj)+21α2y2j=3∑NαjyjK(x2,xj)+21α1y1i=3∑NαiyiK(xi,x1)+21α2y2i=3∑NαiyiK(xi,x2)
把求和里面的变量改下名字,K里面的先后顺序可以互换,合并后可以写为:
min
α
1
,
α
2
W
(
α
1
,
α
2
)
=
1
2
α
1
2
K
(
x
1
,
x
1
)
+
α
1
α
2
y
1
y
2
K
(
x
1
,
x
2
)
+
1
2
α
2
2
K
(
x
2
,
x
2
)
−
(
α
1
+
α
2
)
+
α
1
y
1
∑
i
=
3
N
α
i
y
i
K
(
x
1
,
x
i
)
+
α
2
y
2
∑
i
=
3
N
α
i
y
i
K
(
x
2
,
x
i
)
s.t.
α
1
y
1
+
α
2
y
2
=
−
∑
i
=
3
N
α
i
y
i
=
ζ
0
≤
α
i
≤
C
,
i
=
1
,
2
\underset{\alpha_1,\alpha_2}{\min}W(\alpha_1,\alpha_2)=\cfrac{1}{2}\alpha_1^2K(x_1, x_1)+\alpha_1\alpha_2y_1y_2K(x_1, x_2)+\cfrac{1}{2}\alpha_2^2K(x_2, x_2)\\-(\alpha_1+\alpha_2)+\alpha_1y_1\sum_{i=3}^N\alpha_iy_iK(x_1, x_i)+\alpha_2y_2\sum_{i=3}^N\alpha_iy_iK(x_2, x_i)\\ \text{s.t.}\quad \alpha_1y_1+\alpha_2y_2=-\sum_{i=3}^N\alpha_iy_i=\zeta \\ 0\le\alpha_i\le C,\quad i=1,2
α1,α2minW(α1,α2)=21α12K(x1,x1)+α1α2y1y2K(x1,x2)+21α22K(x2,x2)−(α1+α2)+α1y1i=3∑NαiyiK(x1,xi)+α2y2i=3∑NαiyiK(x2,xi)s.t.α1y1+α2y2=−i=3∑Nαiyi=ζ0≤αi≤C,i=1,2
根据上面的约束条件,可以得到:
α
1
y
1
+
α
2
y
2
=
ζ
→
α
1
=
ζ
−
α
2
y
2
y
1
\alpha_1y_1+\alpha_2y_2=\zeta\rightarrow \alpha_1 = \cfrac{\zeta-\alpha_2y_2}{y_1}
α1y1+α2y2=ζ→α1=y1ζ−α2y2
因此根据上面的
W
(
α
1
,
α
2
)
W(\alpha_1,\alpha_2)
W(α1,α2)可以知道,该函数可以看做是一个关于
α
2
\alpha_2
α2的二次函数(因为
α
1
\alpha_1
α1可以用
α
2
\alpha_2
α2表示),也就是最后可以写成:
w
=
a
α
2
2
+
b
α
2
+
c
w=a\alpha_2^2+b\alpha_2+c
w=aα22+bα2+c
然后结合最后一个约束条件,而且
y
y
y的取值只有两种情况,第一种是:
y
1
≠
y
2
→
α
1
−
α
2
=
ζ
y_1\ne y_2\rightarrow \alpha_1 -\alpha_2 = \zeta
y1=y2→α1−α2=ζ
另外一种是:
y
1
=
y
2
→
α
1
+
α
2
=
ζ
y_1= y_2\rightarrow \alpha_1 +\alpha_2 = \zeta
y1=y2→α1+α2=ζ
以
α
1
\alpha_1
α1为x轴,
α
2
\alpha_2
α2为y轴,那么第一种情况对应的图像是:
方形四条边分别是由:
左
α
1
=
0
,
下
α
2
=
0
,
右
α
1
=
C
,
上
α
2
=
C
左\alpha_1 = 0,下\alpha_2 = 0,右\alpha_1 = C,上\alpha_2 = C
左α1=0,下α2=0,右α1=C,上α2=C围成的。红线是第一种情况的
α
1
−
α
2
=
ζ
\alpha_1 -\alpha_2 = \zeta
α1−α2=ζ约束。a点坐标是
(
α
1
=
ζ
,
α
2
=
0
)
(\alpha_1=\zeta,\alpha_2 = 0)
(α1=ζ,α2=0),b点坐标是
(
α
1
=
C
,
α
2
=
C
−
ζ
)
(\alpha_1=C,\alpha_2 = C-\zeta)
(α1=C,α2=C−ζ)
对于第二种情况图像如下,就不描述了:
于是就可以经过一番操作得到最后
α
1
,
α
2
\alpha_1,\alpha_2
α1,α2的具体范围,得到他们的范围后,怎么再从
α
\alpha
α向量里面选择两个维度来进行优化呢?如果按顺序
α
1
,
α
2
\alpha_1,\alpha_2
α1,α2,
α
3
,
α
4
⋯
\alpha_3,\alpha_4\cdots
α3,α4⋯这下去不是不行,就是很低效,因此这里的思想是找最需要优化的两个维度,最需要优化那么它违反KTT条件最严重。当然KTT条件有好几个,实作的时候直接找违反其中一个条件的速度也还不错。KTT条件不列了。找到第一个维度
α
\alpha
α后,就是找第二个维度,第二个维度的选择是在第一个维度违反KKT条件最严重的条件下,再找一个维度,使得
∣
E
1
−
E
2
∣
|E_1-E_2|
∣E1−E2∣最大。
E
1
E1
E1代表模型预测值和真实值的差距。
就是把
w
=
∑
i
=
1
N
α
i
y
i
x
i
w=\sum_{i=1}^N\alpha_iy_ix_i
w=∑i=1Nαiyixi代入
w
⋅
x
+
b
−
y
1
w\cdot x+b-y_1
w⋅x+b−y1里面展开即可。
两个维度都找到并优化后,然后找下一对维度,直到找不到不违反KTT的维度为止。
总结
1.SVM首先从最大间隔出发,设计了可构造最优超平面的线形模型。
2.考虑到存在噪音或有部分点让人很为难,添加了软间隔。变成了具有软间隔功能的线形模型。
3.通过对数据的升维,使得模型变成了非线形。可以用于非线形数据集。
4.升维后无穷维的点积运算难以实现,引入了核函数简化运算。