赞
踩
训练样本集
D
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
(
x
m
,
y
m
)
}
,
y
i
∈
{
−
1
,
+
1
}
D=\{(x_1,y_1),(x_2,y_2),...(x_m,y_m)\},y_i\in\{-1,+1\}
D={(x1,y1),(x2,y2),...(xm,ym)},yi∈{−1,+1}
分类学习的最基本想法就是基于训练集D在样本空间中找到一个划分超平面,将不同类别的样本分开。
能将训练样本划分开的平面可能有很多个,应该选择位于两类训练样本“正中间”的划分超平面,因为这个超平面的所产生的分类结果是最鲁棒的,泛化能力最强。
分离超平面对应于方程:
w
T
x
+
b
=
0
w^Tx+b=0
wTx+b=0
其中
w
=
(
w
1
;
w
2
;
.
.
.
w
d
)
w=(w_1;w_2;...w_d)
w=(w1;w2;...wd)为法向量,指向正类,决定了超平面的方向;b为位移项(截距),决定了超平面与原点的距离。可用(w,b)表示。
样本空间中任意一点到超平面(w,b)的距离可写为:
r
=
∣
w
T
x
+
b
∣
∣
∣
w
∣
∣
r=\frac{|w^Tx+b|}{||w||}
r=∣∣w∣∣∣wTx+b∣
复习:点
p
(
x
0
,
y
0
)
p(x_0,y_0)
p(x0,y0)到直线
a
x
+
b
y
+
c
=
0
ax+by+c=0
ax+by+c=0的距离:
d
=
∣
a
x
0
+
b
y
0
+
c
∣
a
2
+
b
2
d=\frac{|ax_0+by_0+c|}{\sqrt{a^2+b^2}}
d=a2+b2
∣ax0+by0+c∣
假设超平面(w,b)能将训练样本正确分类,则有:
a
=
{
w
T
x
i
+
b
>
0
,
y
i
=
+
1
;
w
T
x
i
+
b
<
0
,
y
i
=
−
1
(6.1)
a =
距离超平面最近的几个训练样本,被称为“支持向量”。
假设支持向量到超平面的距离为r(其他样本点肯定大于r),所以有:
∣
w
T
x
+
b
∣
∣
∣
w
∣
∣
≥
r
\frac{|w^Tx+b|}{||w||}\ge{r}
∣∣w∣∣∣wTx+b∣≥r
根据(6.1)对正负两类去绝对值得:
{
w
T
x
i
+
b
∣
∣
w
∣
∣
≥
r
,
y
i
=
+
1
;
w
T
x
i
+
b
∣
∣
w
∣
∣
≤
r
,
y
i
=
−
1
\left\{
两边同时除以r得:
{
w
r
T
x
i
+
b
r
≥
+
1
,
y
i
=
+
1
;
w
r
T
x
i
+
b
r
≤
−
1
,
y
i
=
−
1
其
中
w
r
=
w
∣
∣
w
∣
∣
r
,
b
r
=
b
∣
∣
w
∣
∣
r
\left\{
线性缩放,例如2x+2y=0与x+y=0是同一条直线。
w
r
和
b
r
w_r和b_r
wr和br仍是直线的法向量和截距,用w表示
w
r
w_r
wr,b表示
b
r
br
br
所以得到:
{
w
T
x
i
+
b
≥
+
1
,
y
i
=
+
1
;
w
T
x
i
+
b
≤
−
1
,
y
i
=
−
1
(6.3)
\left\{
合并:
y
i
(
w
T
x
+
b
)
≥
1
y_i(w^Tx+b) \ge 1
yi(wTx+b)≥1
支持向量使等号成立。即
∣
w
T
x
+
b
∣
=
1
|w^Tx+b|=1
∣wTx+b∣=1
所以,间隔为两个异类支持向量到超平面的距离之和为:
γ
=
2
∗
∣
w
T
x
+
b
∣
∣
∣
w
∣
∣
=
2
∣
∣
w
∣
∣
(6.4)
\gamma=2*\frac{|w^Tx+b|}{||w||} = \frac{2}{||w||} \tag{6.4}
γ=2∗∣∣w∣∣∣wTx+b∣=∣∣w∣∣2(6.4)
想要找到“最大间隔”的划分超平面,就是要找满足(6.3)中约束的参数w和b,使得
γ
\gamma
γ最大,即:
max
w
,
b
2
∣
∣
w
∣
∣
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
.
.
.
,
m
.
(6.5)
最大化间隔就是使
∣
∣
w
∣
∣
||w||
∣∣w∣∣最小化,转换为求解凸二次规划问题,即最小化
∣
∣
w
∣
∣
2
||w||^2
∣∣w∣∣2,乘以
1
2
\frac{1}{2}
21为了求导方便,于是重写(6.5)式:
min
w
,
b
1
2
∣
∣
w
∣
∣
2
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
.
.
.
,
m
.
(6.6)
这就是支持向量机(SVM)的基本型。
我们希望求解(6.6)得到大间隔划分超平面所对应的模型
f
(
x
)
=
w
T
x
+
b
(6.7)
f(x)=w^Tx+b \tag{6.7}
f(x)=wTx+b(6.7)
其中w和b是模型参数,。(6.6)是一个凸二次规划问题,可以直接用现成的优化计算包求解,这里是使用拉格朗日乘子法得到其对偶问题。具体来说,
从对偶问题(6.11)解出的
α
i
\alpha_i
αi是(6.8)中的拉格朗日乘子,它恰对应着训练样本
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)。注意(6.6)中有不等式约束,因此上述过程需满足KKT条件,即要求:
{
α
i
≥
0
;
y
i
f
(
x
i
)
−
1
≥
0
;
α
i
(
y
i
f
(
x
i
)
−
1
)
=
0
\left\{
于是,对任意训练样本
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)总有
α
i
=
0
或
y
i
f
(
x
i
)
=
1
\alpha_i=0或y_if(x_i)=1
αi=0或yif(xi)=1。
可以发现对偶问题式(6.11)是一个二次规划问题,可以使用通用的二次规划算法求解,但问题规模正比于样本数,会造成很大的开销。为了避免这个障碍,可以使用高效的SMO(Sequential Minimal Optimization)算法。
SMO算法的中心思想:每次选出两个
α
\alpha
α进行优化(之所以是两个是因为
α
\alpha
α的约束条件决定了其与标签乘积的累加等于0,因此必须一次同时优化两个,否则就会破坏约束条件),然后固定其他的
α
\alpha
α值。重复此过程,直到达到某个终止条件程序退出并得到我们需要的优化结果。
在参数初始化后,SMO不断执行如下两个步骤直至收敛:
SMO具体过程:
强推:Python3《机器学习实战》学习笔记(八):支持向量机原理篇之手撕线性SVM
注意到只要选取的
α
i
\alpha_i
αi和
α
j
\alpha_j
αj中有一个不满足KKT条件,目标函数迭代后会增大。而且KKT条件违背的程度越大,则变量更新后导致目标函数增幅就越大。
因此,SMO算法先选取一个违背KKT条件程度最大的变量
α
i
\alpha_i
αi,然后再选一个使目标函数增长最快的变量
α
j
\alpha_j
αj,但由于找出
α
j
\alpha_j
αj的开销较大,所以SMO算法采用了一个启发式:使选取的两变量对应的样本之间间隔最大。这样两个变量有很大的差别,与选取两个相似变量相比,这种方法能为目标函数带来更大的变化,从而更快搜索到全局最大值。
SMO算法之所以高效,恰由于在固定其他参数后,仅优化两个参数的过程能做到非常高效。具体来说,仅考虑
α
i
\alpha_i
αi和
α
j
\alpha_j
αj时,(6.11)的约束可以重写为:
α
i
y
i
+
α
j
y
j
=
c
,
α
i
≥
0
,
α
j
≥
0
\alpha_iy_i+\alpha_jy_j=c,\;\alpha_i\ge0,\alpha_j\ge0
αiyi+αjyj=c,αi≥0,αj≥0
其中
c
=
−
∑
k
≠
i
,
j
α
k
y
k
c=-\sum_{k\not=i,j}\alpha_ky_k
c=−k=i,j∑αkyk
c是使
∑
i
=
1
m
α
i
y
i
=
0
\sum_{i=1}^m\alpha_iy_i=0
∑i=1mαiyi=0成立的常数,用
α
i
y
i
+
α
j
y
j
=
c
\alpha_iy_i+\alpha_jy_j=c
αiyi+αjyj=c,消去(6.11)中的变量
α
j
\alpha_j
αj,(
α
j
=
(
c
−
α
i
y
i
)
÷
y
j
\alpha_j =(c-\alpha_iy_i)\div y_j
αj=(c−αiyi)÷yj)则得到一个关于
α
i
\alpha_i
αi的单变量二次规划问题,仅有的约束是
α
i
≥
0
\alpha_i\ge0
αi≥0。这样的二次规划问题具有闭式解,于是不必调用数值优化算法即可高效地计算出更新后的
α
i
\alpha_i
αi和
α
j
\alpha_j
αj。
w:根据公式(6.9)
b:对于任意支持向量
(
x
s
,
y
s
)
(x_s,y_s)
(xs,ys)都有
y
s
f
(
x
s
)
=
1
y_sf(x_s)=1
ysf(xs)=1,即
y
s
(
∑
i
∈
S
α
i
y
i
x
i
T
x
s
+
b
)
=
1
(6.17)
y_s(\sum_{i\in S}\alpha_iy_ix_i^Tx_s+b)=1 \tag{6.17}
ys(i∈S∑αiyixiTxs+b)=1(6.17)
得到:
b
=
1
y
s
−
∑
i
∈
S
α
i
y
i
x
i
T
x
s
b=\frac{1}{y_s}-\sum_{i\in S}\alpha_iy_ix_i^Tx_s
b=ys1−i∈S∑αiyixiTxs
其中
S
=
{
i
∣
α
i
≥
0
,
i
=
1
,
2
,
.
.
.
,
m
}
S=\{i|\alpha_i\ge0,\;i=1,2,...,m\}
S={i∣αi≥0,i=1,2,...,m}为所有支持向量的下标集。理论上,可选取任意支持向量并通过求解(6.17)获得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_ix_i^Tx_s)
b=∣S∣1s∈S∑(ys1−i∈S∑αiyixiTxs)
前面的讨论我们假设训练样本是线性可分的,即存在一个划分超平面能将训练样本正确分类。然而在现实任务中,原始样本空间内也许并不存在一个能正确划分两类样本的超平面。
解决方法:将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。幸运的是,如果原始空间是有限维,即属性数有限,那就一定存在一个高维特征空间使样本线性可分。
令
ϕ
(
x
)
\phi(x)
ϕ(x)表示将
x
x
x映射后的特征向量,于是,在特征空间中划分超平面对应的模型可表示为:
f
(
x
)
=
w
T
ϕ
(
x
)
+
b
f(x)=w^T\phi(x)+b
f(x)=wTϕ(x)+b
和之前一样,先写出目标函数的拉格朗日函数,接着写出其对偶问题,最后运用SOM求解α。
w和b是模型参数,类似(6.6),有:
min
w
,
b
1
2
∣
∣
w
∣
∣
2
s
.
t
.
y
i
(
w
T
ϕ
(
x
)
+
b
)
≥
1
,
i
=
1
,
2
,
.
.
.
,
m
其对偶问题:
max
α
∑
i
=
1
m
α
i
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
i
y
i
y
j
ϕ
(
x
i
)
T
ϕ
(
x
j
)
s
.
t
.
∑
i
=
1
m
α
i
y
i
=
0
,
α
i
≥
0
,
i
=
1
,
2
,
.
.
.
,
m
.
(6.21)
求解(6.21)涉及到计算
ϕ
(
x
i
)
T
ϕ
(
x
j
)
\phi(x_i)^T\phi(x_j)
ϕ(xi)Tϕ(xj),这是样本
x
i
与
x
j
x_i与x_j
xi与xj映射到特征空间之后的内积。特征空间位数可能很高,甚至是无穷维,因此直接计算
ϕ
(
x
i
)
T
ϕ
(
x
j
)
\phi(x_i)^T\phi(x_j)
ϕ(xi)Tϕ(xj)通常是困难的。便引出了核函数(Kernel)的概念所以我们设想这样一个函数:
k
(
x
i
,
x
j
)
=
⟨
ϕ
(
x
i
)
,
ϕ
(
x
j
)
⟩
=
ϕ
(
x
i
)
T
ϕ
(
x
j
)
k(x_i,x_j)=\langle \phi(x_i),\phi(x_j) \rangle=\phi(x_i)^T\phi(x_j)
k(xi,xj)=⟨ϕ(xi),ϕ(xj)⟩=ϕ(xi)Tϕ(xj)
即
x
i
与
x
j
x_i与x_j
xi与xj在特征空间的内积等于它们在原始空间中通过函数
k
(
⋅
,
⋅
)
k(·,·)
k(⋅,⋅)计算的结果。可以用它来替换高维或者无穷维特征空间中的内积,于是(6.21)可重写为:
max
α
∑
i
=
1
m
α
i
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
i
y
i
y
j
k
(
x
i
,
x
j
)
s
.
t
.
∑
i
=
1
m
α
i
y
i
=
0
,
α
i
≥
0
,
i
=
1
,
2
,
.
.
.
,
m
.
求解后得到:
f
(
x
)
=
w
T
ϕ
(
x
)
+
b
=
∑
i
=
1
m
α
i
y
i
ϕ
(
x
i
)
T
ϕ
(
x
)
+
b
=
∑
i
=
1
m
α
i
y
i
k
(
x
,
x
i
)
+
b
(6.24)
这里的函数
k
(
⋅
,
⋅
)
k(·,·)
k(⋅,⋅)就是核函数(kernel function),可以不必直接计算高维甚至无穷维特征空间中的内积。(6.24)显出模型最优解可通过训练样本的核函数展开,这一展示亦称“支持向量展式”。
现实任务中通常不知道映射
ϕ
(
⋅
)
\phi(·)
ϕ(⋅)的具体形式,也就不知道核函数
k
(
⋅
,
⋅
)
k(·,·)
k(⋅,⋅)是否存在,或者是什么样的。
几种常用核函数:特别地,文本数据一般用线性核,情况不明可尝试高斯核。
除了这些常用的核函数,要产生核函数还可以使用组合的方式:
若
κ
1
和
κ
2
κ_1 和 κ_2
κ1和κ2都是核函数,则
a
κ
1
+
b
κ
2
aκ_1+bκ_2
aκ1+bκ2 也是核函数,其中 a>0,b>0。
若
κ
1
和
κ
2
κ_1 和 κ_2
κ1和κ2都是核函数,则其直积
κ
1
⊗
κ
2
(
x
,
z
)
=
κ
1
(
x
,
z
)
κ
2
(
x
,
z
)
κ_1⊗κ_2(x,z)=κ_1(x,z)κ_2(x,z)
κ1⊗κ2(x,z)=κ1(x,z)κ2(x,z)也是核函数。
若
κ
1
κ_1
κ1是核函数,则对于任意函数
g
(
x
)
,
κ
(
x
,
z
)
=
g
(
x
)
κ
1
(
x
,
z
)
g
(
z
)
g(x),κ(x,z)=g(x)κ_1(x,z)g(z)
g(x),κ(x,z)=g(x)κ1(x,z)g(z)也是核函数。
核函数举例:
每个样本有两个属性x和y,两个样本点
v
1
=
(
x
1
,
y
1
)
,
v
2
=
(
x
2
,
y
2
)
v_1=(x_1,y_1),v_2=(x_2,y_2)
v1=(x1,y1),v2=(x2,y2),其映射后的特征向量
ϕ
(
x
,
y
)
=
(
x
2
,
2
x
y
,
y
2
)
\phi(x,y)=(x^2,\sqrt2xy,y^2)
ϕ(x,y)=(x2,2
xy,y2),对应核函数
k
(
v
1
,
v
2
)
=
⟨
v
1
,
v
2
⟩
2
k(v_1,v_2)=\langle v_1,v_2\rangle^2
k(v1,v2)=⟨v1,v2⟩2
证明:
v
1
,
v
2
v_1,v_2
v1,v2在特征空间的内积为
⟨
ϕ
(
v
1
)
,
ϕ
(
v
2
)
⟩
=
ϕ
(
v
1
)
T
ϕ
(
v
2
)
=
(
x
1
2
,
2
x
1
y
1
,
y
1
2
)
T
(
x
2
2
,
2
x
2
y
2
,
y
2
2
)
=
x
1
2
x
2
2
+
2
x
1
x
2
y
1
y
2
+
y
1
2
y
2
2
=
(
x
1
x
2
+
y
1
y
2
)
2
=
⟨
v
1
,
v
2
⟩
2
=
k
(
v
1
,
v
2
)
前面讨论的都是假定训练样本在样本空间或特征空间是线性可分的,即存在一个超平面能将不同类的样本完全划分开。但是,现实任务很难找到合适的核函数,即使找到,也难说这不是过拟合造成的结果。
解决办法:软间隔——允许支持向量机在一些样本上出错
前面介绍的是硬间隔——所有样本都必须划分正确。
硬间隔:必须满足约束
y
i
(
w
T
x
i
+
b
)
≥
1
(6.28)
\;y_i(w^Tx_i+b)\ge1\tag{6.28}
yi(wTxi+b)≥1(6.28)
软间隔:允许某些样本不满足约束(6.28)。
当然,在最大化间隔的同时,不满足约束的样本应该尽可能少。于是,优化目标为:
含义:如果分类正确,那么函数间隔必定大于等于1,此时损失为0;如果分类错误,那么函数间隔必定小于0,此时损失为1。
当 C 为无穷大时,(6.29)迫使所有样本均满足约束(6.28),因为此时对误分类的惩罚无限大,也即要求全部样本分类正确。当 C 取有限值时,(6.29)允许一些样本不满足约束。
0/1损失函数非凸、非连,所以式(6.29)不易直接求解。于是在实际任务中,我们采用一些凸的连续函数来取替它,这样的函数就称为替代损失函数。
三种常用的替代损失函数:
若用hinge损失,则(6.29)变成:
min
w
,
b
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
m
a
x
(
0
,
1
−
y
i
(
w
T
x
i
+
b
)
)
(6.34)
\min_{w,b}\;\frac{1}{2}||w||^2+C\sum_{i=1}^mmax(0,1-y_i(w^Tx_i+b))\tag{6.34}
w,bmin21∣∣w∣∣2+Ci=1∑mmax(0,1−yi(wTxi+b))(6.34)
引入“松弛变量”
ξ
i
≥
0
\;\xi_i\ge0
ξi≥0,可将(6.34)重写为:
min
w
,
b
,
ξ
i
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
ξ
i
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
−
ξ
i
,
ξ
i
≥
0
,
i
=
1
,
2
,
.
.
.
,
m
.
(6.35)
\min_{w,b,\xi_i}\;\frac{1}{2}||w||^2+C\sum_{i=1}^m\xi_i\tag{6.35}\\ s.t. \;\;y_i(w^Tx_i+b)\ge1-\xi_i,\\ \;\;\;\;\;\;\;\xi_i\ge0,\;i=1,2,...,m.
w,b,ξimin21∣∣w∣∣2+Ci=1∑mξis.t.yi(wTxi+b)≥1−ξi,ξi≥0,i=1,2,...,m.(6.35)
这就是常用的“软间隔支持向量机”
显然,(6.35)中每个样本都有一个对应的松弛变量,用以表示该样本不满足约束(6.28)的程度。这也是一个二次规划问题。
软间隔支持向量机,KKT条件要求:
{
α
i
≥
0
,
μ
i
≥
0
,
y
i
f
(
x
i
)
−
1
+
ξ
i
≥
0
,
α
i
(
y
i
f
(
x
i
)
−
1
+
ξ
i
)
=
0
,
ξ
i
≥
0
,
μ
i
ξ
i
=
0
\left\{
KKT条件理解:
特别地,在 R. Collobert. 的论文Large Scale Machine Learning 中提到,常数 C 一般取训练集大小的倒数( C = 1 m C=\frac{1}{m} C=m1)。
上面是采用hinge损失函数。若果使用对率损失函数
ℓ
l
o
g
\ell_{log}
ℓlog来代替0/1损失,则几乎就得到了对率回归模型(3.27)。
支持向量机与对率回归的优化目标相近,通常情况下它们的性能也相当。
无论使用何种损失函数,SVM的目标函数都可以描述为以下形式(6.42):
结构风险(structural risk):用于描述模型
f
f
f的某些性质。用来描述划分超平面“间隔”大小。
经验风险(empirical risk):用于描述模型与训练数据的契合程度。用来表述训练集上的误差。
参数 C 用于权衡这两种风险。
从最小化经验风险的角度来看,
Ω
(
f
)
Ω(f)
Ω(f)表述了我们希望得到具有何种性质的模型(例如复杂度较小的模型),这为引入领域知识和用户意图提供了途径;另一方面,Ω(f) 还有助于削减假设空间,从而降低了最小化训练误差的过拟合风险。
从这个角度来说,(6.42)称为“正则化”(regularization)问题,
Ω
(
f
)
Ω(f)
Ω(f)为正则化项,C 为正则化常数。
L
p
L_p
Lp范数是常用的正则化项,其中
L
2
L_2
L2范数
∣
∣
w
∣
∣
2
||w||_2
∣∣w∣∣2倾向于w的分量取值尽量均衡,即非零分量个数尽量稠密,而
L
0
L_0
L0范数
∣
∣
w
∣
∣
0
||w||_0
∣∣w∣∣0和
L
1
L_1
L1范数
∣
∣
w
∣
∣
1
||w||_1
∣∣w∣∣1则倾向于w的分量尽量稀疏,即非零分量个数尽量少。
正则化可理解为一种“罚函数法”,即对不希望得到的结果施以惩罚,从而使得优化过程趋向于希望目标。
前面学习的模型大多都是在最小化经验风险的基础上,再考虑结构风险(避免过拟合)。
而SVM是从最小化结构风险来展开的。
同样是希望学得线性模型 f ( x ) = w T x + b f(x)=w^Tx+b f(x)=wTx+b来做预测,使得 f ( x ) 与 y f(x)与y f(x)与y尽可能接近。
SVR问题的目标函数可形式化为:
min
w
,
b
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
ℓ
ϵ
(
f
(
x
i
)
−
y
i
)
(6.43)
\min_{w,b}\;\frac{1}{2}||w||^2+C\sum_{i=1}^m\ell_\epsilon(f(x_i)-y_i) \tag{6.43}
w,bmin21∣∣w∣∣2+Ci=1∑mℓϵ(f(xi)−yi)(6.43)
其中
C
C
C为正则化常数,
ℓ
ϵ
\ell_\epsilon
ℓϵ是ϵ−不敏感损失(ϵ−insensitive loss)函数。
ℓ
ϵ
(
z
)
=
{
0
,
i
f
∣
z
∣
≤
ϵ
;
∣
z
∣
−
ϵ
,
o
t
h
e
r
s
i
z
e
.
(6.44)
\ell_\epsilon(z)=
引入松弛变量
ξ
i
、
ξ
^
i
\xi_i、\hat\xi_i
ξi、ξ^i,分别表示间隔带两侧的松弛程度,它们可有所不同。将(6.43)重写为:
min
w
,
b
,
ξ
i
,
ξ
^
i
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
(
ξ
i
+
ξ
^
i
)
s
.
t
.
f
(
x
i
)
−
y
i
≤
ϵ
+
ξ
i
,
y
i
−
f
(
x
i
)
≤
ϵ
+
ξ
^
i
,
ξ
i
≥
0
,
ξ
^
i
≥
0
,
i
=
1
,
2
,
.
.
.
,
m
.
引入拉格朗日乘子
μ
i
≥
0
,
μ
^
i
≥
0
,
α
i
≥
0
,
α
^
i
≥
0
\mu_i\ge0,\hat\mu_i\ge0,\alpha_i\ge0,\hat\alpha_i\ge0
μi≥0,μ^i≥0,αi≥0,α^i≥0,得到拉格朗日函数:
讲求得的偏导带入(6.46),得到SVR得对偶问题:
KKT条件:
然后使用SMO算法求解拉格朗日乘子,最后得到SVR的解:
补充:为什么要使用对偶问题(SVM)
1.对偶问题将原始问题中的约束转为了对偶问题中的等式约束
2.方便核函数的引入
3.改变了问题的复杂度。由求特征向量w转化为求比例系数a,在原始问题下,求解的复杂度与样本的维度有关,即w的维度。在对偶问题下,只与样本数量有关。
(对偶问题的理解)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。