给定训练样本集D={(x1→,y1),(x2→,y2),…,(xn→,yn)}
D
=
{
(
x
1
→
,
y
1
)
,
(
x
2
→
,
y
2
)
,
…
,
(
x
n
→
,
y
n
)
}
,yi∈{+1,−1}
y
i
∈
{
+
1
,
−
1
}
,i
i
表示第i个样本,n
n
表示样本容量。分类学习最基本的想法就是基于训练集D在特征空间中找到一个最佳划分超平面将正负样本分开,而SVM算法解决的就是如何找到最佳超平面的问题。超平面可通过如下的线性方程来描述:
w⃗ Tx⃗ +b=0(1)
(1)
w
→
T
x
→
+
b
=
0
其中
w⃗
w
→
表示法向量,决定了超平面的方向;
b
b
表示偏移量,决定了超平面与原点之间的距离。
对于训练数据集D假设找到了最佳超平面
w∗→x⃗ +b∗=0
w
∗
→
x
→
+
b
∗
=
0
,定义决策分类函数
f(x⃗ )=sign(w∗→x⃗ +b∗)(2)
(2)
f
(
x
→
)
=
s
i
g
n
(
w
∗
→
x
→
+
b
∗
)
空间中超平面可记为
(w⃗ ,b)
(
w
→
,
b
)
,根据点到平面的距离公式,空间中任意点
x⃗
x
→
到超平面
(w⃗ ,b)
(
w
→
,
b
)
的距离可写为:
r=w⃗ x⃗ +b||w⃗ ||(3)
(3)
r
=
w
→
x
→
+
b
|
|
w
→
|
|
假设超平面
(w⃗ ,b)
(
w
→
,
b
)
能将训练样本正确分类,那么对于正样本一侧的任意一个样本
(xi→,yi)∈D
(
x
i
→
,
y
i
)
∈
D
,应该需要满足该样本点往超平面的法向量
w⃗
w
→
的投影到原点的距离大于一定值
c
c
的时候使得该样本点被预测为正样本一类,即存在数值c使得当
w⃗ Txi→>c
w
→
T
x
i
→
>
c
时
yi=+1
y
i
=
+
1
。
w⃗ Txi→>c
w
→
T
x
i
→
>
c
又可写为
w⃗ Txi→+b>0
w
→
T
x
i
→
+
b
>
0
。在训练的时候我们要求限制条件更严格点以使最终得到的分类器鲁棒性更强,所以我们要求
w⃗ Txi→+b>1
w
→
T
x
i
→
+
b
>
1
。也可以写为大于其它距离,但都可以通过同比例缩放
w⃗
w
→
和
b
b
来使得使其变为1,因此为计算方便这里直接选择1。同样对于负样本应该有w⃗ Txi→+b<−1时
yi=−1
y
i
=
−
1
。即:
{w⃗ Txi→+b≥+1,w⃗ Txi→+b≤−1,yi=+1yi=−1(4)
(4)
{
w
→
T
x
i
→
+
b
≥
+
1
,
y
i
=
+
1
w
→
T
x
i
→
+
b
≤
−
1
,
y
i
=
−
1
亦即:
yi(w⃗ Txi→+b)≥+1(5)
(5)
y
i
(
w
→
T
x
i
→
+
b
)
≥
+
1
如图3所示,距离最佳超平面
w⃗ x⃗ +b=0
w
→
x
→
+
b
=
0
最近的几个训练样本点使上式中的等号成立,它们被称为“支持向量”(support vector)。记超平面
w⃗ x⃗ +b=+1
w
→
x
→
+
b
=
+
1
和
w⃗ x⃗ +b=−1
w
→
x
→
+
b
=
−
1
之间的距离为
γ
γ
,该距离又被称为“间隔”(margin),SVM的核心之一就是想办法将“间隔”
γ
γ
最大化。下面我们推导一下
γ
γ
与哪些因素有关:
记超平面
w⃗ x⃗ +b=+1
w
→
x
→
+
b
=
+
1
上的正样本为
x+→
x
+
→
,超平面
w⃗ x⃗ +b=−1
w
→
x
→
+
b
=
−
1
上的负样本为
x−→
x
−
→
,则根据向量的加减法规则
x+→
x
+
→
减去
x−→
x
−
→
得到的向量在最佳超平面的法向量
w⃗
w
→
方向的投影即为“间隔”
γ
γ
:
γ=(x+→−x−→)w⃗ ||w⃗ ||=x+→w⃗ ||w⃗ ||−x−→w⃗ ||w⃗ ||(6)
(6)
γ
=
(
x
+
→
−
x
−
→
)
w
→
|
|
w
→
|
|
=
x
+
→
w
→
|
|
w
→
|
|
−
x
−
→
w
→
|
|
w
→
|
|
而
w⃗ x+→+b=+1
w
→
x
+
→
+
b
=
+
1
,
w⃗ x−→+b=−1
w
→
x
−
→
+
b
=
−
1
,即:
{w⃗ x+→=1−bw⃗ x+→=−1−b(7)
(7)
{
w
→
x
+
→
=
1
−
b
w
→
x
+
→
=
−
1
−
b
将(7)带入(6)可得:
γ=2||w⃗ ||(8)
(8)
γ
=
2
|
|
w
→
|
|
也就是说使两类样本距离最大的因素仅仅和最佳超平面的法向量有关!
要找到具有“最大间隔”(maximum margin)的最佳超平面,就是找到能满足式(4)中约束的参数
w⃗
w
→
、
b
b
使得γ最大,即:
{maxw⃗ ,b2||w⃗ ||s.t.yi(w⃗ Txi→+b)≥+1,i=1,2,…,n(9)
(9)
{
max
w
→
,
b
2
|
|
w
→
|
|
s
.
t
.
y
i
(
w
→
T
x
i
→
+
b
)
≥
+
1
,
i
=
1
,
2
,
…
,
n
显然(9)等价于
{minw⃗ ,b12||w⃗ ||2s.t.yi(w⃗ Txi→+b)≥+1,i=1,2,…,n(10)
(10)
{
min
w
→
,
b
1
2
|
|
w
→
|
|
2
s
.
t
.
y
i
(
w
→
T
x
i
→
+
b
)
≥
+
1
,
i
=
1
,
2
,
…
,
n
这就是SVM的基本型。
2.1 拉格朗日对偶问题
根据SVM的基本型求解出w⃗
w
→
和b
b
即可得到最佳超平面对应的模型:
f(x⃗ )=sign(w⃗ x⃗ +b)(11)
该求解问题本身是一个凸二次规划(convex quadratic propgramming)问题,可以通过开源的优化计算包进行求解,但是这样就无法体现SVM的精髓,我们可以将该凸二次规划问题通过拉格朗日对偶性来解决。 对于式(10)的每条约束添加拉格朗日乘子αi≥0
α
i
≥
0
,则该问题的拉格朗日函数可写为:
L(w⃗ ,b,α⃗ )=12||w⃗ ||2−∑i=1nαi(yi(w⃗ Txi+b)−1)(12)
(12)
L
(
w
→
,
b
,
α
→
)
=
1
2
|
|
w
→
|
|
2
−
∑
i
=
1
n
α
i
(
y
i
(
w
→
T
x
i
+
b
)
−
1
)
其中
α⃗ =(α1,α2,…,αn)
α
→
=
(
α
1
,
α
2
,
…
,
α
n
)
分别是对应着各个样本的拉格朗日乘子。
将
L(w⃗ ,b,α⃗ )
L
(
w
→
,
b
,
α
→
)
对
w⃗
w
→
和
b
b
求偏导并将偏导数等于零可得:
由(14)可知我们并不关心单个样本是如何的,我们只关心样本间两两的乘积,这也为后面核方法提供了很大的便利。
求解出
α⃗
α
→
之后,再求解出
w⃗
w
→
和
b
b
即可得到SVM决策模型:
f(x⃗ )=w⃗ Tx⃗ +b=∑i=1nαiyixi→Tx⃗ +b(15)
2.2 SVM问题的KKT条件
在(10)中有不等式约束,因此上述过程满足Karush-Kuhn-Tucker(KKT)条件:
⎧⎩⎨⎪⎪αi≥0yi(w⃗ Tx⃗ +b)−1≥0,i=1,2,…,nαi(yi(w⃗ Tx⃗ +b)−1)=0(16)
(16)
{
α
i
≥
0
y
i
(
w
→
T
x
→
+
b
)
−
1
≥
0
,
i
=
1
,
2
,
…
,
n
α
i
(
y
i
(
w
→
T
x
→
+
b
)
−
1
)
=
0
对于任意样本
(xi→,yi)
(
x
i
→
,
y
i
)
总有
αi=0
α
i
=
0
或
yi(w⃗ Tx⃗ +b)−1=0
y
i
(
w
→
T
x
→
+
b
)
−
1
=
0
。如果
αi=0
α
i
=
0
则由式(15)可知该样本点对求解最佳超平面没有任何影响。当
αi>0
α
i
>
0
时必有
yi(w⃗ Tx⃗ +b)−1=0
y
i
(
w
→
T
x
→
+
b
)
−
1
=
0
,表明对应的样本点在最大间隔边界上,即对应着支持向量。也由此得出了SVM的一个重要性质:
训练完成之后,大部分的训练样本都不需要保留,最终的模型仅与支持向量有关。
那么对于式(14)该如何求解
α⃗
α
→
呢?很明显这是一个二次规划问题,可使用通用的二次规划算法来求解,但是SVM的算法复杂度是
O(n2)
O
(
n
2
)
,在实际问题中这种开销太大了。为了有效求解该二次规划问题,人们通过利用问题本身的特性,提出了很多高效算法,Sequential Minimal Optimization(SMO)就是一个常用的高效算法。在利用SMO算法进行求解的时候就需要用到上面的KKT条件。利用SMO算法求出
α⃗
α
→
之后根据:
{w⃗ =∑ni=1αiyixi→yi(w⃗ Tx⃗ +b)−1=0(17)
(17)
{
w
→
=
∑
i
=
1
n
α
i
y
i
x
i
→
y
i
(
w
→
T
x
→
+
b
)
−
1
=
0
具体来说,硬间隔支持向量机要求所有的样本均被最佳超平面正确划分,而软间隔支持向量机允许某些样本点不满足间隔大于等于1的条件
yi(w⃗ xi→+b)≥1
y
i
(
w
→
x
i
→
+
b
)
≥
1
,当然在最大化间隔的时候也要限制不满足间隔大于等于1的样本的个数使之尽可能的少。于是我们引入一个惩罚系数
C>0
C
>
0
,并对每个样本点
(xi→,yi)
(
x
i
→
,
y
i
)
引入一个松弛变量(slack variables)
ξ≥0
ξ
≥
0
,此时可将式(10)改写为
⎧⎩⎨⎪⎪⎪⎪minw⃗ ,b(12||w⃗ ||2+C∑ni=1ξi)s.t.yi(w⃗ Txi→+b)≥1−ξi,i=1,2,…,nξi≥0(19)
(19)
{
min
w
→
,
b
(
1
2
|
|
w
→
|
|
2
+
C
∑
i
=
1
n
ξ
i
)
s
.
t
.
y
i
(
w
→
T
x
i
→
+
b
)
≥
1
−
ξ
i
,
i
=
1
,
2
,
…
,
n
ξ
i
≥
0
上式中约束条件改为
yi(w⃗ xi→+b)≥1−ξi
y
i
(
w
→
x
i
→
+
b
)
≥
1
−
ξ
i
,表示间隔加上松弛变量大于等于1;优化目标改为
minw⃗ ,b(12||w⃗ ||2+C∑ni=1ξi)
min
w
→
,
b
(
1
2
|
|
w
→
|
|
2
+
C
∑
i
=
1
n
ξ
i
)
表示对每个松弛变量都要有一个代价损失
Cξi
C
ξ
i
,
C
C
越大对误分类的惩罚越大、C越小对误分类的惩罚越小。
式(19)是软间隔支持向量机的原始问题。可以证明
w⃗
w
→
的解是唯一的,
b
b
的解不是唯一的,b的解是在一个区间内。假设求解软间隔支持向量机间隔最大化问题得到的最佳超平面是
w∗→x⃗ +b∗=0
w
∗
→
x
→
+
b
∗
=
0
,对应的分类决策函数为
f(x⃗ )=sign(w∗→x⃗ +b∗)(20)
(20)
f
(
x
→
)
=
s
i
g
n
(
w
∗
→
x
→
+
b
∗
)
f(x⃗ )
f
(
x
→
)
称为软间隔支持向量机。
类似式(12)利用拉格朗日乘子法可得到上式的拉格朗日函数
L(w⃗ ,b,α⃗ ,ξ⃗ ,μ⃗ )=12||w⃗ ||2+C∑i=1nξi−∑i=1nαi(yi(w⃗ Txi→+b)−1+ξi)−∑i=1nμiξi(21)
(21)
L
(
w
→
,
b
,
α
→
,
ξ
→
,
μ
→
)
=
1
2
|
|
w
→
|
|
2
+
C
∑
i
=
1
n
ξ
i
−
∑
i
=
1
n
α
i
(
y
i
(
w
→
T
x
i
→
+
b
)
−
1
+
ξ
i
)
−
∑
i
=
1
n
μ
i
ξ
i
其中
αi≥0
α
i
≥
0
、
μi≥0
μ
i
≥
0
是拉格朗日乘子。
令
L(w⃗ ,b,α⃗ ,ξ⃗ ,μ⃗ )
L
(
w
→
,
b
,
α
→
,
ξ
→
,
μ
→
)
分别对
w⃗
w
→
,
b
b
,ξ⃗ 求偏导并将偏导数为零可得:
⎧⎩⎨⎪⎪w⃗ =∑ni=1αiyixi→∑ni=1αiyi=0C=αi+μi(22)
(22)
{
w
→
=
∑
i
=
1
n
α
i
y
i
x
i
→
∑
i
=
1
n
α
i
y
i
=
0
C
=
α
i
+
μ
i
将式(22)带入式(21)便可得到式(19)的对偶问题:
⎧⎩⎨⎪⎪⎪⎪maxα⃗ ∑ni=1αi−12∑ni=1∑nj=1αiαjyiyjxi→Txj→s.t.∑ni=1αiyi=0,i=1,2,…,n0≤αi≤C(23)
(23)
{
max
α
→
∑
i
=
1
n
α
i
−
1
2
∑
i
=
1
n
∑
j
=
1
n
α
i
α
j
y
i
y
j
x
i
→
T
x
j
→
s
.
t
.
∑
i
=
1
n
α
i
y
i
=
0
,
i
=
1
,
2
,
…
,
n
0
≤
α
i
≤
C
对比软间隔支持向量机的对偶问题和硬间隔支持向量机的对偶问题可发现二者的唯一差别就在于对偶变量的约束不同,软间隔支持向量机对对偶变量的约束是
0≤αi≤C
0
≤
α
i
≤
C
,硬间隔支持向量机对对偶变量的约束是
0≤αi
0
≤
α
i
,于是可采用和硬间隔支持向量机相同的解法求解式(23)。同理在引入核方法之后同样能得到与式(23)同样的支持向量展开式。
类似式(16)对于软间隔支持向量机,KKT条件要求:
⎧⎩⎨⎪⎪⎪⎪⎪⎪αi≥0,μi≥0yi(w⃗ x⃗ +b)−1+ξi≥0αi(yi(w⃗ x⃗ +b)−1+ξi)=0ξi≥0,μiξi=0(24)
(24)
{
α
i
≥
0
,
μ
i
≥
0
y
i
(
w
→
x
→
+
b
)
−
1
+
ξ
i
≥
0
α
i
(
y
i
(
w
→
x
→
+
b
)
−
1
+
ξ
i
)
=
0
ξ
i
≥
0
,
μ
i
ξ
i
=
0
同硬间隔支持向量机类似,对任意训练样本
(xi→,yi)
(
x
i
→
,
y
i
)
,总有
αi=0
α
i
=
0
或
yi(w⃗ x⃗ +b−1+ξi)
y
i
(
w
→
x
→
+
b
−
1
+
ξ
i
)
,若
αi=0
α
i
=
0
,则该样本不会对最佳决策面有任何影响;若
αi>0
α
i
>
0
则必有
yi(w⃗ x⃗ +b)=1−ξi
y
i
(
w
→
x
→
+
b
)
=
1
−
ξ
i
,也就是说该样本是支持向量。由式(22)可知若
αi<C
α
i
<
C
则
μi>0
μ
i
>
0
进而有
ξi=0
ξ
i
=
0
,即该样本处在最大间隔边界上;若
αi=C
α
i
=
C
则
μi=0
μ
i
=
0
此时如果
xii≤1
x
i
i
≤
1
则该样本处于最大间隔内部,如果
ξi>1
ξ
i
>
1
则该样本处于最大间隔外部即被分错了。由此也可看出,软间隔支持向量机的最终模型仅与支持向量有关。
4. 非线性支持向量机
现实任务中原始的样本空间D
D
中很可能并不存在一个能正确划分两类样本的超平面。例如图4中所示的问题就无法找到一个超平面将两类样本进行很好的划分。
对于这样的问题可以通过将样本从原始空间映射到特征空间使得样本在映射后的特征空间里线性可分。例如对图5做特征映射z=x2+y2可得到如图6所示的样本分布,这样就很好进行线性划分了。
图5
图6
令
ϕ(x⃗ )
ϕ
(
x
→
)
表示将样本点
x⃗
x
→
映射后的特征向量,类似于线性可分支持向量机中的表示方法,在特征空间中划分超平面所对应的模型可表示为
⎧⎩⎨⎪⎪⎪⎪maxα∑ni=1αi−12∑ni=1∑nj=1αiαjyiyjϕ(xi→T)ϕ(xj→)s.t.αi≥0,i=1,2,…,n∑ni=1αiyi=0(27)
(27)
{
max
α
∑
i
=
1
n
α
i
−
1
2
∑
i
=
1
n
∑
j
=
1
n
α
i
α
j
y
i
y
j
ϕ
(
x
i
→
T
)
ϕ
(
x
j
→
)
s
.
t
.
α
i
≥
0
,
i
=
1
,
2
,
…
,
n
∑
i
=
1
n
α
i
y
i
=
0
求解(27)需要计算
ϕ(xi→T)ϕ(xj→)
ϕ
(
x
i
→
T
)
ϕ
(
x
j
→
)
,即样本映射到特征空间之后的内积,由于特征空间可能维度很高,甚至可能是无穷维,因此直接计算
ϕ(xi→T)ϕ(xj→)
ϕ
(
x
i
→
T
)
ϕ
(
x
j
→
)
通常是很困难的,在上文中我们提到其实我们根本不关心单个样本的表现,只关心特征空间中样本间两两的乘积,因此我们没有必要把原始空间的样本一个个地映射到特征空间中,只需要想法办求解出样本对应到特征空间中样本间两两的乘积即可。为了解决该问题可设想存在核函数:
κ(xi→,xj→)=ϕ(xi→T)ϕ(xj→)(28)
(28)
κ
(
x
i
→
,
x
j
→
)
=
ϕ
(
x
i
→
T
)
ϕ
(
x
j
→
)
也就是说
xi→
x
i
→
与
xj→
x
j
→
在特征空间的内积等于它们在原始空间中通过函数
κ(⋅,⋅)
κ
(
⋅
,
⋅
)
计算的结果,这给求解带来很大的方便。于是式(27)可写为:
⎧⎩⎨⎪⎪maxα∑ni=1αi−12∑ni=1∑nj=1αiαjyiyjκ(xi→,xj→)s.t.αi≥0,i=1,2,…,n∑ni=1αiyi=0(29)
(29)
{
max
α
∑
i
=
1
n
α
i
−
1
2
∑
i
=
1
n
∑
j
=
1
n
α
i
α
j
y
i
y
j
κ
(
x
i
→
,
x
j
→
)
s
.
t
.
α
i
≥
0
,
i
=
1
,
2
,
…
,
n
∑
i
=
1
n
α
i
y
i
=
0
f(x⃗ )=w⃗ Tϕ(x⃗ )+b=∑i=1nαiyiϕ(x⃗ )Tϕ(x⃗ )+b=∑i=1nαiyiκ(xi→,xj→)+b(30)
(30)
f
(
x
→
)
=
w
→
T
ϕ
(
x
→
)
+
b
=
∑
i
=
1
n
α
i
y
i
ϕ
(
x
→
)
T
ϕ
(
x
→
)
+
b
=
∑
i
=
1
n
α
i
y
i
κ
(
x
i
→
,
x
j
→
)
+
b
剩余的问题同样是求解
αi
α
i
,然后求解
w⃗
w
→
和
b
b
即可得到最佳超平面。
支持向量回归
支持向量机不仅可以用来解决分类问题还可以用来解决回归问题,称为支持向量回归(Support Vector Regression,SVR)。
对于样本(x⃗ ,y)通常根据模型的输出
f(x⃗ )
f
(
x
→
)
与真实值(即groundtruth)
yi
y
i
之间的差别来计算损失,当且仅当
f(x⃗ )=yi
f
(
x
→
)
=
y
i
时损失才为零。SVR的基本思路是允许预测值
f(x⃗ )
f
(
x
→
)
与
yi
y
i
之间最多有
ε
ε
的偏差,当
|f(x⃗ )−yi|≤ε
|
f
(
x
→
)
−
y
i
|
≤
ε
时认为预测正确不计算损失,仅当
|f(x⃗ )−yi|>ε
|
f
(
x
→
)
−
y
i
|
>
ε
时才计算损失。SVR问题可描述为:
minw⃗ ,b(12||w⃗ ||2+C∑i=1nLε(f(x⃗ )−yi))(31)
(31)
min
w
→
,
b
(
1
2
|
|
w
→
|
|
2
+
C
∑
i
=
1
n
L
ε
(
f
(
x
→
)
−
y
i
)
)
其中,
C≥0
C
≥
0
为惩罚项,
Lε
L
ε
为损失函数,定义为:
Lε(z)={0,|z|≤ε|z|−ξ,otherwise(32)
(32)
L
ε
(
z
)
=
{
0
,
|
z
|
≤
ε
|
z
|
−
ξ
,
o
t
h
e
r
w
i
s
e
进一步地引入松弛变量
ξi
ξ
i
,
ξ^i
ξ
^
i
,则新的最优化问题为:
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪minw⃗ ,b,ξ,ξ^i(12||w⃗ ||2+C∑ni=1(ξi+ξ^i))s.t.f(xi→)−yi≤ε+ξi,i=1,2,…,nyi−f(x⃗ )≤ε+ξ^iξi≥0,ξ^i≥0(33)
(33)
{
min
w
→
,
b
,
ξ
,
ξ
^
i
(
1
2
|
|
w
→
|
|
2
+
C
∑
i
=
1
n
(
ξ
i
+
ξ
^
i
)
)
s
.
t
.
f
(
x
i
→
)
−
y
i
≤
ε
+
ξ
i
,
i
=
1
,
2
,
…
,
n
y
i
−
f
(
x
→
)
≤
ε
+
ξ
^
i
ξ
i
≥
0
,
ξ
^
i
≥
0
这就是SVR的原始问题。类似地引入拉格朗日乘子
μi≥0
μ
i
≥
0
,
μ^i≥0
μ
^
i
≥
0
,
αi≥0
α
i
≥
0
,
α^i≥0
α
^
i
≥
0
,则对应的拉格朗日函数为:
L(w⃗ ,b,α⃗ ,α^⃗ ,ξ⃗ ,ξ^⃗ ,μ⃗ ,μ^⃗ )=12||w⃗ ||2+C∑i=1n(ξ+ξ^)−∑i=1nμiξi−∑i=1nμ^iξ^i+∑i=1nαi(f(xi→)−yi−ε−ξ)+∑i=1nα^i(yi−f(xi→)−ε−ξ^i)(34)
(34)
L
(
w
→
,
b
,
α
→
,
α
^
→
,
ξ
→
,
ξ
^
→
,
μ
→
,
μ
^
→
)
=
1
2
|
|
w
→
|
|
2
+
C
∑
i
=
1
n
(
ξ
+
ξ
^
)
−
∑
i
=
1
n
μ
i
ξ
i
−
∑
i
=
1
n
μ
^
i
ξ
^
i
+
∑
i
=
1
n
α
i
(
f
(
x
i
→
)
−
y
i
−
ε
−
ξ
)
+
∑
i
=
1
n
α
^
i
(
y
i
−
f
(
x
i
→
)
−
ε
−
ξ
^
i
)
⎧⎩⎨⎪⎪⎪⎪⎪⎪w⃗ =∑ni=1()xi→∑ni=1(α^i−αi)=0C=αi+μiC=α^i+μ^i(35)
(35)
{
w
→
=
∑
i
=
1
n
(
)
x
i
→
∑
i
=
1
n
(
α
^
i
−
α
i
)
=
0
C
=
α
i
+
μ
i
C
=
α
^
i
+
μ
^
i
将式(35)代入式(34)即可得到SVR的对偶问题:
{maxα,α^∑ni=1(yi(α^i−αi)−ε(α^i+αi)−12∑ni=1∑nj=1(α^i−αi)(α^j−αj)xi→Txj→)s.t.∑ni=1(α^i−αi)=00≤αi,α^i≤C(36)
(36)
{
max
α
,
α
^
∑
i
=
1
n
(
y
i
(
α
^
i
−
α
i
)
−
ε
(
α
^
i
+
α
i
)
−
1
2
∑
i
=
1
n
∑
j
=
1
n
(
α
^
i
−
α
i
)
(
α
^
j
−
α
j
)
x
i
→
T
x
j
→
)
s
.
t
.
∑
i
=
1
n
(
α
^
i
−
α
i
)
=
0
0
≤
α
i
,
α
^
i
≤
C
其KKT条件为:
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪αi(f(xi→)−yi−ε−ξi)=0α^i(f(xi→)−yi−ε−ξ^i)=0αiα^i=0,ξiξ^i=0(C−αi)ξi=0,(C−α^i)ξ^i=0(37)
(37)
{
α
i
(
f
(
x
i
→
)
−
y
i
−
ε
−
ξ
i
)
=
0
α
^
i
(
f
(
x
i
→
)
−
y
i
−
ε
−
ξ
^
i
)
=
0
α
i
α
^
i
=
0
,
ξ
i
ξ
^
i
=
0
(
C
−
α
i
)
ξ
i
=
0
,
(
C
−
α
^
i
)
ξ
^
i
=
0
SVR的解形如:
f(x⃗ )=∑i=1n(α^i−αi)xi→Tx⃗ +b(38)
(38)
f
(
x
→
)
=
∑
i
=
1
n
(
α
^
i
−
α
i
)
x
i
→
T
x
→
+
b
进一步地如果引入核函数则SVR可表示为:
f(x⃗ )=∑i=1n(α^i−αi)κ(xi→,x⃗ )+b(39)
(39)
f
(
x
→
)
=
∑
i
=
1
n
(
α
^
i
−
α
i
)
κ
(
x
i
→
,
x
→
)
+
b
其中
κ(xi→,x⃗ )=ϕ(xi→)Tϕ(x⃗ )
κ
(
x
i
→
,
x
→
)
=
ϕ
(
x
i
→
)
T
ϕ
(
x
→
)
为核函数。
常用核函数
名称
表达式
参数
线性核
κ(xi→,xj→)=xi→Txj→
κ
(
x
i
→
,
x
j
→
)
=
x
i
→
T
x
j
→
多项式核
κ(xi→,xj→)=(xi→Txj→)n
κ
(
x
i
→
,
x
j
→
)
=
(
x
i
→
T
x
j
→
)
n
n≥1
n
≥
1
为多项式的次数
高斯核(RBF)
κ(xi→,xj→)=exp(−∥xi→−xj→∥22σ2)
κ
(
x
i
→
,
x
j
→
)
=
e
x
p
(
−
‖
x
i
→
−
x
j
→
‖
2
2
σ
2
)
σ>0
σ
>
0
为高斯核的带宽
拉普拉斯核
κ(xi→,xj→)=exp(−∥xi−xj∥σ)
κ
(
x
i
→
,
x
j
→
)
=
e
x
p
(
−
‖
x
i
−
x
j
‖
σ
)
σ
σ
>0
Sigmoid核
κ(xi→,xj→)=tanh(βxi→Txj→+θ)
κ
(
x
i
→
,
x
j
→
)
=
t
a
n
h
(
β
x
i
→
T
x
j
→
+
θ
)
thah为双曲正切函数
5. SVM的优缺点
优点: SVM在中小量样本规模的时候容易得到数据和特征之间的非线性关系,可以避免使用神经网络结构选择和局部极小值问题,可解释性强,可以解决高维问题。 缺点: SVM对缺失数据敏感,对非线性问题没有通用的解决方案,核函数的正确选择不容易,计算复杂度高,主流的算法可以达到O(n2)
O
(
n
2
)
的复杂度,这对大规模的数据是吃不消的。