当前位置:文档之家› svdd算法详解

svdd算法详解

4.3.3实现技术
(1)KKT 条件,工作集选取及停止准则
在求最小包围球的过程中,迭代没有结束前,每轮迭代会有一个新点被选中,核集中加入新的点后,在核集中的点是下面三种情况之一:
1.核向量,满足KKT 条件;
2.处在球内的非核向量,对应的i α为0,也满足KKT 条件;
3.在(,)t t B c R 外面。

刚加入进来的点0l α=违反KKT 条件。

加入新的训练点后,参照传统SVM 方法对核集中的样本点检查是否违反KKT 条件的算法推导如下:
原始问题的KKT 条件:
2
2
(||()||)0i i i R c x αξϕ+--= (4.16)
加上已知条件
0i i βξ=,0i i C αβ--=
根据i α的不同,有三种情况:
● 0i α=,有22||()||0i i R c x ξϕ+--≥,又i C β=,则0i ξ=,因此有
2
2
||()||i c x R
ϕ-≤ (4.17)
● 0i C α<<,有22||()||0i i R c x ξϕ+--=,又0i β>,则0i ξ=,因此有
2
2
||()||i c x R
ϕ-= (4.18)
● i C α=,有22||()||0i i R c x ξϕ+--=,又0i β=,则0i ξ≥,因此有
2
2
||()||i c x R
ϕ-≥ (4.19)
每次迭代以对KKT 条件破坏最多的两个样本为工作集,因此,选取以下两个样本下标
2
arg m ax(||()|||)
i i s c x C ϕα=-<
2
arg m in(||()|||0)i i t c x ϕα=->
若记
2
||()||
s i g c x ϕ=-,2||()||t i g c x ϕ=-
则根据KKT 条件,我们有s t g g ≤。

实际中我们考虑(0)s t g g δδ≤+>,因此在算法停止前,都有
s t g g δ
>+ (4.20)
在运算的过程中因为有
,(,)2(,)(,)t
i t
s i j i j i i s s s i j S x S g k x x k x x k x x ααα∈∈=-+∑

,(,)2(,)(,)t
i t
t i j i j i i t t t i j S x S g k x x k x x k x x ααα∈∈=
-+∑

所以实际上是:(,)(,)2
i t
i t
i i t i i s x S x S k x x k x x δαα∈∈-
>
∑∑
(2)规模为2问题的解析解
找出核集中违反KKT 条件的训练点后,更新其对应的Lagrange 因子值。

这里我们依然采用SMO 算法,解规模为2的原问题的对偶问题。

不失一般性,在(4.14)对偶问题中将,s t αα看成待求变量,其他看成已知参数,得到求解,s t αα的优化问题如下:
2
2
,max {22[()()]()}s ss t tt s t st s s t t i i i s t
L k k k x x x const
αααααϕαϕαϕ≠=-+++++∑(4.21)
S.t. s t ααγ+=,0,s t C αα≤≤
其中old
old s
t
α
α
γ
+=,1
()m
i
i
i c x αϕ==

2
22
m ax (2)2()t t ss t tt t t st L k k k γ
γαααγαα=--+---
,,2()()()2()()t s i i t t i i i s t
i s t
x x x x const
γαϕαϕαϕαϕ≠≠---+∑∑
若记,()()()(()())old old old j j i i j s s t t i s t
x x x c x x υϕαϕϕαϕαϕ≠==--∑
则 ,()()s s i i i s t
x x υϕαϕ≠=∑,,()()t t i i i s t
x x υϕαϕ≠=∑
2222222222ss t ss t ss t tt t st t st s t s t t L k k k k k k const γγαααγααγυαυαυ=-+---+-+-+ 2
(2)2()s t s
s t t
t s s s t s t
t k k
k k k c o n s t αγγυυα=--+-+-+ 因为 ()()o l d o l d
o l d
o l d
s s s t s t s t s s
s
t
s t
k k k k γγυυαααα-+-=+-+
()(()(
))()(()o l d
o l d
o l d
o l d
o l d
o l d
s s
s t
t
t
s
s t
t
x c
x x x c x x
ϕαϕαϕϕαϕαϕ+-----
old
old
old
old
s ss t ss s st t st k k k k αααα=+--
11
(,)(,)m
m
old old old
old
i i s s
ss t
st i i t s st t tt i i K x x k k K x x k k αα
α
ααα==+---++∑∑
11
(,)(,)(2)m
m
old
i
i s i i t st ss tt t
i i K x x K x x k k k α
αα===
----∑∑
21
1
(2)2[(,)(,)(2)]m
m
old
st ss tt t
i i s i i t st ss tt t
t i i L k k k K x x K x x k k k const
ααααα===--+----+∑∑

0t
L α∂=∂, 可得
1
1
(,)(,)
2m
m
i
i t i i s old
i i t t
st ss tt
K x x K x x k k k α
ααα==-=+
--∑∑ (4.22)
有 20st ss tt k k k --≤,在迭代结束前都有1
1
(,)(,)0m
m
i i t i i s i i K x x K x x αα==-<∑∑
则当20st ss tt k k k --=,1
1
[(,)(,)]m
m
i i s i i t t i i L K x x K x x const ααα===-+∑∑,L 为线性函数,
因为0i C α≤≤,()()0t t s t c x c x ϕϕ->,所以t C α=。

最后,由优化问题的等式约束得出
s t αγα=- (4.23)
这样就得出了,s t αα的解析解,不过这是在没有考虑优化问题的不等式约束
0,s t C
αα≤≤的情况下得到的解析解。

存在不等式约束为0,s t C αα≤≤,因此,考虑不等式约束,需要对求出的,s t
αα进行如下裁剪:
若0s α<,则0,s t ααγ==
若0t α<,则0,t s ααγ== 若s C α>,则,s t C C ααγ==-
若t C α>,则,t s C C ααγ==-。

相关主题