硬间隔SVM的SMO序列优化算法
上一篇文章(1)我们讨论了硬间隔SVM的推导及其对偶形式,其对偶问题可以化简成以下形式:
该问题可以看作是一个以 α α 为优化变量的二阶规划问题,二阶规划问题有很多成熟的解法,针对SVM的优化有一种最为高效的SMO序列优化算法。
SMO序列优化算法
SMO序列优化算法先将
α
α
的所有变量进行初始化,比如令
α1,α2,...,αN=0,
α
1
,
α
2
,
.
.
.
,
α
N
=
0
,
再将
α
α
的其中两个分量看作变量,比如
α1,α2
α
1
,
α
2
(在选取两个分量
αi,αj
α
i
,
α
j
的时候,通常先取违反上文中KKT条件最严重的为
αi
α
i
,然后选取离
xi
x
i
间隔最远的
xj
x
j
对应的
αj
α
j
为第二个变量),其余的
α3,α4,...,αN
α
3
,
α
4
,
.
.
.
,
α
N
固定住,则根据约束条件
∑Ni=1αiyi=0
∑
i
=
1
N
α
i
y
i
=
0
可以得到
α1=−y1∑Ni=2αiyi
α
1
=
−
y
1
∑
i
=
2
N
α
i
y
i
。上述问题即可以化为两个变量的二次规划问题(令
Kij=xi⋅xj
K
i
j
=
x
i
⋅
x
j
):
在上述二次规划问题中,由于 α1y1+α2y2=ζ α 1 y 1 + α 2 y 2 = ζ ,那么可以得到 α1=(ζ−y2α2)y1 α 1 = ( ζ − y 2 α 2 ) y 1 ,将该约束条件代入 W(α1,α2) W ( α 1 , α 2 ) 中即可以得到单变量的二次规划问题,如果先不考虑不等式约束条件,则可以直接得到解析解,不必利用数值计算的方式求解,这样可以大大提升计算速度。
令
vi=∑Nj=3αjyjK(xi,xj)
v
i
=
∑
j
=
3
N
α
j
y
j
K
(
x
i
,
x
j
)
,则将
α1=(ζ−y2α2)y1
α
1
=
(
ζ
−
y
2
α
2
)
y
1
代入
W(α1,α2)
W
(
α
1
,
α
2
)
可以得到:
直接令
∂W∂α2=0
∂
W
∂
α
2
=
0
,那么可以得到
α2
α
2
的解析解为
α^2=α2+y2(E1−E2)η
α
^
2
=
α
2
+
y
2
(
E
1
−
E
2
)
η
,其中
Ei=∑Nj=1αjyjKij+b−yi
E
i
=
∑
j
=
1
N
α
j
y
j
K
i
j
+
b
−
y
i
,
η=K11+K22−2K12
η
=
K
11
+
K
22
−
2
K
12
。此时得到的
α^2
α
^
2
还没有考虑不等式约束
α1,α2≥0
α
1
,
α
2
≥
0
,由
α1=(ζ−y2α2)y1≥0
α
1
=
(
ζ
−
y
2
α
2
)
y
1
≥
0
与
α2≥0
α
2
≥
0
可以解不等式得到
α2
α
2
的上界
H
H
与下界,即经过剪辑可以得到
α2
α
2
的解析解为:
另外根据 α∗1=(ζ−y2α∗2)y1 α 1 ∗ = ( ζ − y 2 α 2 ∗ ) y 1 则可以得到 α∗1 α 1 ∗ ,这样便完成了SMO算法的一组变量的更新。重复进行变量选择,解析求解,变量剪辑的过程,直到 α α 的所有变量都能满足文章(1)中的KKT条件为止,然后再根据文章(1)中 w w 与的计算公式便可以得到训练好的超平面,这样便完成了硬间隔SVM的数学推导过程,后面的文章还会继续介绍软间隔SVM的推导与核方法的应用。To be continue…