序列最小最优化算法
支持向量机的学习问题可以转化为求解凸二次规划问题
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
(
1
)
\begin{aligned} &\min_\alpha\quad \frac{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\\ &s.t. \quad \sum_{i=1}^n\alpha_iy_i=0,\quad 0\leq\alpha_i\leq C,i=1,2,...,n \end{aligned}\quad\quad(1)
αmin21i=1∑nj=1∑nαiαjyiyjK(xi,xj)−i=1∑nαis.t.i=1∑nαiyi=0,0≤αi≤C,i=1,2,...,n(1)
这样的凸二次规划问题具有全局最优解,下面介绍求解该问题的序列最小最优化(sequential minimal optimization, SMO)算法。
SMO算法是一种启发式算法,其基本思想是:如果所有变量的解都满足此最优化问题的KKT条件,那么这个最优化问题的解就得到了;否则,选择两个变量,固定其他变量,针对这两个变量求解这个二次规划问题(2)(不妨设选取的变量为 α 1 , α 2 \alpha_1,\alpha_2 α1,α2),称之为原始问题(1)的子问题,用子问题的解更新原来的解,更新后的解应更接近二次规划问题的解,因为它使得原始问题的目标函数值变得更小。
min α 1 , α 2 W ( α 1 , α 2 ) = 1 2 K 11 α 1 2 + 1 2 K 22 α 2 2 + y 1 y 2 K 12 α 1 α 2 − ( α 1 + α 2 ) + y 1 α 1 ∑ i = 3 n y i α i K i 1 + y 2 α 2 ∑ i = 3 n y i α i K i 2 s . t . α 1 y 1 + α 2 y 2 = − ∑ i = 3 n y i α i = ζ 0 ≤ α i ≤ C , i = 1 , 2 ( 2 ) \begin{aligned} \min_{\alpha_1,\alpha_2}\quad W(\alpha_1,\alpha_2)&=\frac{1}{2}K_{11}\alpha_1^2+\frac{1}{2}K_{22}\alpha_2^2+y_1y_2K_{12}\alpha_1\alpha_2-(\alpha_1+\alpha_2)\\ &+y_1\alpha_1\sum_{i=3}^ny_i\alpha_iK_{i1}+y_2\alpha_2\sum_{i=3}^ny_i\alpha_iK_{i2}\\ s.t.\quad &\alpha_1y_1+\alpha_2y_2=-\sum_{i=3}^ny_i\alpha_i=\zeta\\ &0\leq \alpha_i\leq C,\quad i=1,2 \end{aligned}\quad\quad(2) α1,α2minW(α1,α2)s.t.=21K11α12+21K22α22+y1y2K12α1α2−(α1+α2)+y1α1i=3∑nyiαiKi1+y2α2i=3∑nyiαiKi2α1y1+α2y2=−i=3∑nyiαi=ζ0≤αi≤C,i=1,2(2)
其中 K i j = K ( x i , x j ) , i , j = 1 , 2 , . . . , n K_{ij}=K(x_i,x_j),i,j=1,2,...,n Kij=K(xi,xj),i,j=1,2,...,n, ζ \zeta ζ为常数。
整个SMO算法包括两部分:求解两个变量二次规划的解析方法和选择变量的启发式方法。
两个变量二次规划的求解方法
现要求解优化问题(2)。由于只有两个变量 ( α 1 , α 2 ) (\alpha_1,\alpha_2) (α1,α2),约束可以用二维空间中的图形表示,
不等式约束条件将
(
α
1
,
α
2
)
(\alpha_1,\alpha_2)
(α1,α2)限制在矩形
[
0
,
C
]
×
[
0
,
C
]
[0,C]\times[0,C]
[0,C]×[0,C]内,等式约束条件将
(
α
1
,
α
2
)
(\alpha_1,\alpha_2)
(α1,α2)限制在平行于矩形
[
0
,
C
]
×
[
0
,
C
]
[0,C]\times[0,C]
[0,C]×[0,C]的对角线的直线上,因此要求的是目标函数在一条平行于矩形对角线的线段上的最优值。这使得两个变量的最优化问题成为实质上的单变量的最优化问题,不妨考虑为变量
α
2
\alpha_2
α2的最优化问题(
α
1
\alpha_1
α1可根据约束条件由
α
2
\alpha_2
α2求得)。
假设问题(2)的初始可行解为 α 1 o l d , α 2 o l d \alpha_1^{old}, \alpha_2^{old} α1old,α2old,最优解为 α 1 o n e w , α 2 n e w \alpha_1^{onew}, \alpha_2^{new} α1onew,α2new,并且假设只考虑等式约束、不考虑不等式约束时 α 2 \alpha_2 α2的最优解为 α 2 n e w , u n c \alpha_2^{new,unc} α2new,unc。
α 1 o l d , α 2 o l d \alpha_1^{old}, \alpha_2^{old} α1old,α2old为可行解:
- 当 y 1 ≠ y 2 y_1\neq y_2 y1=y2时, α 1 o l d − α 2 o l d = ζ \alpha_1^{old}-\alpha_2^{old}=\zeta α1old−α2old=ζ; 当 y 1 = y 2 y_1=y_2 y1=y2时, α 1 o l d + α 2 o l d = ζ \alpha_1^{old}+\alpha_2^{old}=\zeta α1old+α2old=ζ
引进记号:
g
(
x
)
=
∑
i
=
1
n
α
i
y
i
K
(
x
i
,
x
)
+
b
g(x)=\sum_{i=1}^n\alpha_iy_iK(x_i,x)+b
g(x)=i=1∑nαiyiK(xi,x)+b
E i = g ( x i ) − y i = ( ∑ j = 1 n α j y j K ( x j , x i ) + b ) − y i , i = 1 , 2 E_i=g(x_i)-y_i=\left(\sum_{j=1}^n\alpha_jy_jK(x_j,x_i)+b\right)-y_i,\quad i=1,2 Ei=g(xi)−yi=(j=1∑nαjyjK(xj,xi)+b)−yi,i=1,2
v i = ∑ j = 3 n α j y j K ( x i , x j ) = g ( x i ) − ∑ j = 1 2 α j y j K ( x i , x j ) − b , i = 1 , 2 v_i=\sum_{j=3}^n\alpha_jy_jK(x_i,x_j)=g(x_i)-\sum_{j=1}^2\alpha_jy_jK(x_i,x_j)-b,\quad i=1,2 vi=j=3∑nαjyjK(xi,xj)=g(xi)−j=1∑2αjyjK(xi,xj)−b,i=1,2
则目标函数可写为:
W
(
α
1
,
α
2
)
=
1
2
K
11
α
1
2
+
1
2
K
22
α
2
2
+
y
1
y
2
K
12
α
1
α
2
−
(
α
1
+
α
2
)
+
y
1
α
1
∑
i
=
3
n
y
i
α
i
K
i
1
+
y
2
α
2
∑
i
=
3
n
y
i
α
i
K
i
2
=
1
2
K
11
α
1
2
+
1
2
K
22
α
2
2
+
y
1
y
2
K
12
α
1
α
2
−
(
α
1
+
α
2
)
+
y
1
α
1
v
1
+
y
2
α
2
v
2
\begin{aligned} W(\alpha_1,\alpha_2)&=\frac{1}{2}K_{11}\alpha_1^2+\frac{1}{2}K_{22}\alpha_2^2+y_1y_2K_{12}\alpha_1\alpha_2-(\alpha_1+\alpha_2)\\ &+y_1\alpha_1\sum_{i=3}^ny_i\alpha_iK_{i1}+y_2\alpha_2\sum_{i=3}^ny_i\alpha_iK_{i2}\\ &=\frac{1}{2}K_{11}\alpha_1^2+\frac{1}{2}K_{22}\alpha_2^2+y_1y_2K_{12}\alpha_1\alpha_2-(\alpha_1+\alpha_2)+y_1\alpha_1v_1+y_2\alpha_2v_2 \end{aligned}
W(α1,α2)=21K11α12+21K22α22+y1y2K12α1α2−(α1+α2)+y1α1i=3∑nyiαiKi1+y2α2i=3∑nyiαiKi2=21K11α12+21K22α22+y1y2K12α1α2−(α1+α2)+y1α1v1+y2α2v2
由
α
1
y
1
=
ζ
−
α
2
y
2
\alpha_1y_1=\zeta-\alpha_2y_2
α1y1=ζ−α2y2及
y
1
2
=
y
2
2
=
1
y_1^2=y_2^2=1
y12=y22=1,可写
α
1
=
(
ζ
−
y
2
α
2
)
y
1
\alpha_1=(\zeta-y_2\alpha_2)y_1
α1=(ζ−y2α2)y1
带入上式得到只含
α
2
\alpha_2
α2的目标函数
W
(
α
2
)
=
1
2
K
11
(
ζ
−
y
2
α
2
)
2
+
1
2
K
22
α
2
2
+
y
2
K
12
(
ζ
−
y
2
α
2
)
α
2
−
(
ζ
−
y
2
α
2
)
y
1
−
α
2
+
(
ζ
−
y
2
α
2
)
v
1
+
y
2
α
2
v
2
\begin{aligned} W(\alpha_2)&=\frac{1}{2}K_{11}(\zeta-y_2\alpha_2)^2+\frac{1}{2}K_{22}\alpha_2^2+y_2K_{12}(\zeta-y_2\alpha_2)\alpha_2\\ &-(\zeta-y_2\alpha_2)y_1-\alpha_2+(\zeta-y_2\alpha_2)v_1+y_2\alpha_2v_2 \end{aligned}
W(α2)=21K11(ζ−y2α2)2+21K22α22+y2K12(ζ−y2α2)α2−(ζ−y2α2)y1−α2+(ζ−y2α2)v1+y2α2v2
关于
α
2
\alpha_2
α2求导数,
∂
W
(
α
2
)
∂
α
2
=
−
y
2
K
11
(
ζ
−
y
2
α
2
)
+
K
22
α
2
+
y
2
K
12
(
ζ
−
y
2
α
2
)
−
K
12
α
2
+
y
1
y
2
−
1
−
y
2
v
1
+
y
2
v
2
=
K
11
α
2
+
K
22
α
2
−
2
K
12
α
2
−
K
11
ζ
y
2
+
K
12
ζ
y
2
+
y
1
y
2
−
1
−
y
2
v
1
+
y
2
v
2
\begin{aligned} \frac{\partial W(\alpha_2)}{\partial \alpha_2}&=-y_2K_{11}(\zeta-y_2\alpha_2)+K_{22}\alpha_2+y_2K_{12}(\zeta-y_2\alpha_2)-K_{12}\alpha_2+y_1y_2-1-y_2v_1+y_2v_2\\ &=K_{11}\alpha_2+K_{22}\alpha_2-2K_{12}\alpha_2-K_{11}\zeta y_2+K_{12}\zeta y_2+y_1y_2-1-y_2v_1+y_2v_2 \end{aligned}
∂α2∂W(α2)=−y2K11(ζ−y2α2)+K22α2+y2K12(ζ−y2α2)−K12α2+y1y2−1−y2v1+y2v2=K11α2+K22α2−2K12α2−K11ζy2+K12ζy2+y1y2−1−y2v1+y2v2
令其等于0,
(
K
11
+
K
22
−
2
K
12
)
α
2
=
y
2
(
y
2
−
y
1
+
ζ
K
11
−
ζ
K
12
+
v
1
−
v
2
)
=
y
2
[
y
2
−
y
1
+
ζ
K
11
−
ζ
K
12
+
(
g
(
x
1
)
−
∑
j
=
1
2
y
j
α
j
K
1
j
−
b
)
−
(
g
(
x
2
)
−
∑
j
=
1
2
y
j
α
j
K
2
j
−
b
)
]
\begin{aligned} (K_{11}+K_{22}-2K_{12})\alpha_2&=y_2(y_2-y_1+\zeta K_{11}-\zeta K_{12}+v_1-v_2)\\ &=y_2\left[y_2-y_1+\zeta K_{11}-\zeta K_{12}+\left(g(x_1)-\sum_{j=1}^2y_j\alpha_jK_{1j}-b\right)-\left(g(x_2)-\sum_{j=1}^2y_j\alpha_jK_{2j}-b\right)\right] \end{aligned}
(K11+K22−2K12)α2=y2(y2−y1+ζK11−ζK12+v1−v2)=y2[y2−y1+ζK11−ζK12+(g(x1)−j=1∑2yjαjK1j−b)−(g(x2)−j=1∑2yjαjK2j−b)]
将
ζ
=
α
1
o
l
d
y
1
+
α
2
o
l
d
y
2
\zeta=\alpha_1^{old}y_1+\alpha_2^{old}y_2
ζ=α1oldy1+α2oldy2带入,得到
(
K
11
+
K
22
−
2
K
12
)
α
2
=
y
2
(
(
K
11
+
K
22
−
2
K
12
)
α
2
o
l
d
y
2
+
y
2
−
y
1
+
g
(
x
1
)
−
g
(
x
2
)
)
=
(
K
11
+
K
22
−
2
K
12
)
α
2
o
l
d
+
y
2
(
E
1
−
E
2
)
\begin{aligned} (K_{11}+K_{22}-2K_{12})\alpha_2&=y_2((K_{11}+K_{22}-2K_{12})\alpha_2^{old}y_2+y_2-y_1+g(x_1)-g(x_2))\\ &=(K_{11}+K_{22}-2K_{12})\alpha_2^{old}+y_2(E_1-E_2) \end{aligned}
(K11+K22−2K12)α2=y2((K11+K22−2K12)α2oldy2+y2−y1+g(x1)−g(x2))=(K11+K22−2K12)α2old+y2(E1−E2)
令
η
=
K
11
+
K
22
−
2
K
12
\eta=K_{11}+K_{22}-2K_{12}
η=K11+K22−2K12,得
α
2
n
e
w
,
u
n
c
=
α
2
o
l
d
+
y
2
(
E
1
−
E
2
)
η
(
3
)
\alpha_2^{new,unc}=\alpha_2^{old}+\frac{y_2(E_1-E_2)}{\eta }\quad\quad(3)
α2new,unc=α2old+ηy2(E1−E2)(3)
α
2
n
e
w
\alpha_2^{new}
α2new既满足等式约束
α
1
y
1
+
α
2
y
2
=
k
\alpha_1y_1+\alpha_2y_2=k
α1y1+α2y2=k,又满足不等式约束
0
≤
α
2
≤
C
0\leq \alpha_2\leq C
0≤α2≤C,综合起来有:
L
≤
α
2
n
e
w
≤
H
(
4
)
L\leq \alpha_2^{new}\leq H\quad\quad(4)
L≤α2new≤H(4)
其中
L
L
L与
H
H
H是
α
2
n
e
w
\alpha_2^{new}
α2new所在的对角线段点的界:
- 当 y 1 ≠ y 2 y_1\neq y_2 y1=y2时, L = max ( 0 , α 2 o l d − α 1 o l d ) , H = min ( C , C + α 2 o l d − α 1 o l d ) L=\max(0,\alpha_2^{old}-\alpha_1^{old}),\quad H=\min(C,C+\alpha_2^{old}-\alpha_1^{old}) L=max(0,α2old−α1old),H=min(C,C+α2old−α1old)
- 当 y 1 = y 2 y_1= y_2 y1=y2时, L = max ( 0 , α 2 o l d + α 1 o l d − C ) , H = min ( C , α 2 o l d + α 1 o l d ) L=\max(0,\alpha_2^{old}+\alpha_1^{old}-C),\quad H=\min(C,\alpha_2^{old}+\alpha_1^{old}) L=max(0,α2old+α1old−C),H=min(C,α2old+α1old)
结合(3)(4)有,
α
2
n
e
w
=
{
H
,
α
2
n
e
w
,
u
n
c
>
H
α
2
n
e
w
,
u
n
c
,
L
≤
α
2
n
e
w
,
u
n
c
≤
H
L
,
α
2
n
e
w
,
u
n
c
<
L
(
5
)
\alpha_2^{new}=\begin{cases} H,\quad\quad\quad\quad \alpha_2^{new,unc}>H\\ \alpha_2^{new,unc},\quad L\leq \alpha_2^{new,unc}\leq H\\ L,\quad \quad\quad\quad \alpha_2^{new,unc}<L \end{cases}\quad\quad(5)
α2new=⎩⎪⎨⎪⎧H,α2new,unc>Hα2new,unc,L≤α2new,unc≤HL,α2new,unc<L(5)
由
α
2
n
e
w
\alpha_2^{new}
α2new求得
α
1
n
e
w
\alpha_1^{new}
α1new是
α
1
n
e
w
=
α
1
o
l
d
+
y
1
y
2
(
α
2
o
l
d
−
α
2
n
e
w
)
(
6
)
\alpha_1^{new}=\alpha_1^{old}+y_1y_2(\alpha_2^{old}-\alpha_2^{new})\quad\quad(6)
α1new=α1old+y1y2(α2old−α2new)(6)
变量的选择方法
SMO算法在每个子问题中选择两个变量优化,其中至少一个变量是违反KKT条件的。
1.第一个变量的选择
SMO呈选择第一个变量的过程为外层循环。
外层循环在训练样本中选取违反KKT条件最严重的样本点,并将其对应的变量作为第1个变量。回忆在支持向量机中由KKT条件推得的命题,
- 0 < α ∗ < C ⟹ y i g ( x i ) = 1 0<\alpha^*<C\Longrightarrow y_ig(x_i)=1 0<α∗<C⟹yig(xi)=1
- α ∗ = 0 ⟹ y i g ( x i ) ≥ 1 \alpha^*=0\Longrightarrow y_ig(x_i)\geq1 α∗=0⟹yig(xi)≥1
- α ∗ = C ⟹ y i g ( x i ) ≤ 1 \alpha^*=C\Longrightarrow y_ig(x_i)\leq1 α∗=C⟹yig(xi)≤1
其中 g ( x i ) = ∑ j = 1 n α j ∗ y j K ( x j , x i ) + b ∗ g(x_i)=\sum_{j=1}^n\alpha^*_jy_jK(x_j, x_i)+b^* g(xi)=∑j=1nαj∗yjK(xj,xi)+b∗。
外层循环首先遍历所有满足条件 0 < α ∗ < C 0<\alpha^*<C 0<α∗<C的样本点,也就是此时的支持向量,检查它们是否满足 y i g ( x i ) = 1 y_ig(x_i)=1 yig(xi)=1,如果这些支持向量均满足,再找违反另外两个命题的样本点。
2.第二个变量的选择
SMO呈选择第一个变量的过程为外层循环。
假设再外层循环中已经找到第一个变量 α 1 \alpha_1 α1,现要在内层循环中找到第二个变量 α 2 \alpha_2 α2。第二个变量的选择标准是希望能使 α 2 \alpha_2 α2有足够大的变化。
由(3)式知, α 2 n e w \alpha_2^{new} α2new是依赖于 ∣ E 1 − E 2 ∣ |E_1-E_2| ∣E1−E2∣的,为了加快计算速度,一种简单的做法是选择 α 2 \alpha_2 α2,使其对应的 ∣ E 1 − E 2 ∣ |E_1-E_2| ∣E1−E2∣最大。因为 α 1 \alpha_1 α1已定, E 1 E_1 E1也确定了。如果 E 1 E_1 E1是正的,则选择最小的 E i E_i Ei作为 E 2 E_2 E2,如果 E 1 E_1 E1是负的,则选择最大的 E i E_i Ei作为 E 2 E_2 E2。为了节省计算时间,将所有 E 1 E_1 E1值保存在一个列表中。
在特殊情况下,如果内层循环通过以上方式找到的 α 2 \alpha_2 α2不能让目标函数有足够的下降, 则采用以下启发式规则继续选择 α 2 \alpha_2 α2,遍历间隔边界上的支持向量点,依次将其对应的变量作为 α 2 \alpha_2 α2试用,直到目标函数有足够的下降。 若找不到合适的 α 2 \alpha_2 α2,那么遍历训练数据集,如果仍然找不到合适的 α 2 \alpha_2 α2,则放弃之前选的 α 1 \alpha_1 α1,再通过外层循环寻求另外的 α 1 \alpha_1 α1。
3. 计算阈值 b b b和差值 E i E_i Ei
在每次完成两个变量的优化后,都要重新计算阈值
b
b
b。
当
0
<
α
1
n
e
w
<
C
0<\alpha_1^{new}<C
0<α1new<C时,有
y
1
g
(
x
1
)
=
1
y_1g(x_1)=1
y1g(x1)=1,即
∑
i
=
1
n
α
i
y
i
K
i
1
+
b
=
y
1
\sum_{i=1}^n\alpha_iy_iK_{i1}+b=y_1
i=1∑nαiyiKi1+b=y1
于是
b
1
n
e
w
=
y
1
−
∑
i
=
3
n
α
i
y
i
K
i
1
−
α
1
n
e
w
y
1
K
11
−
α
2
n
e
w
y
2
K
21
b_1^{new}=y_1-\sum_{i=3}^n\alpha_iy_iK_{i1}-\alpha_1^{new}y_1K_{11}-\alpha_2^{new}y_2K_{21}
b1new=y1−i=3∑nαiyiKi1−α1newy1K11−α2newy2K21
E 1 = g ( x 1 ) − y 1 = ∑ i = 3 n α i y i K i 1 + α 1 o l d y 1 K 11 + α 2 o l d y 2 K 21 + b o l d − y 1 E_1=g(x_1)-y_1=\sum_{i=3}^n\alpha_iy_iK_{i1}+\alpha_1^{old}y_1K_{11}+\alpha_2^{old}y_2K_{21}+b^{old}-y_1 E1=g(x1)−y1=i=3∑nαiyiKi1+α1oldy1K11+α2oldy2K21+bold−y1
由
E
1
E_1
E1表达式,
y
1
−
∑
i
=
3
n
α
i
y
i
K
i
1
=
−
E
1
+
α
1
o
l
d
y
1
K
11
+
α
2
o
l
d
y
2
K
21
+
b
o
l
d
y_1-\sum_{i=3}^n\alpha_iy_iK_{i1}=-E_1+\alpha_1^{old}y_1K_{11}+\alpha_2^{old}y_2K_{21}+b^{old}
y1−i=3∑nαiyiKi1=−E1+α1oldy1K11+α2oldy2K21+bold
带入
b
1
n
e
w
b_1^{new}
b1new表达式,
b
1
n
e
w
=
−
E
1
−
y
1
K
11
(
α
1
n
e
w
−
α
1
o
l
d
)
−
y
2
K
21
)
(
α
2
n
e
w
−
α
2
o
l
d
)
+
b
o
l
d
b_1^{new}=-E_1-y_1K_{11}(\alpha_1^{new}-\alpha_1^{old})-y_2K_{21})(\alpha_2^{new}-\alpha_2^{old})+b^{old}
b1new=−E1−y1K11(α1new−α1old)−y2K21)(α2new−α2old)+bold
同样,如果
0
<
α
2
n
e
w
<
C
0<\alpha_2^{new}<C
0<α2new<C,有
b
2
n
e
w
=
−
E
2
−
y
1
K
11
(
α
1
n
e
w
−
α
1
o
l
d
)
−
y
2
K
21
)
(
α
2
n
e
w
−
α
2
o
l
d
)
+
b
o
l
d
b_2^{new}=-E_2-y_1K_{11}(\alpha_1^{new}-\alpha_1^{old})-y_2K_{21})(\alpha_2^{new}-\alpha_2^{old})+b^{old}
b2new=−E2−y1K11(α1new−α1old)−y2K21)(α2new−α2old)+bold
如果 α 1 n e w \alpha_1^{new} α1new, α 2 n e w \alpha_2^{new} α2new同时满足条件 0 < α i n e w < C , i = 1 , 2 0<\alpha_i^{new}<C,i=1,2 0<αinew<C,i=1,2,那么 b 1 n e w = b 2 n e w b_1^{new}=b_2^{new} b1new=b2new。
如果 α 1 n e w \alpha_1^{new} α1new, α 2 n e w \alpha_2^{new} α2new是0或C,则 b 1 n e w b_1^{new} b1new和 b 2 n e w b_2^{new} b2new以及它们之间的数都是符合KKT条件的阈值,这是选择它们的中点作为 b n e w b^{new} bnew。
在每次完成两个变量的优化之后,还必须更新对应的
E
i
E_i
Ei值,并将它们保存在列表中。
E
i
E_i
Ei值的更新要用到
b
n
e
w
b^{new}
bnew值,及所有支持向量对应的
α
j
\alpha_j
αj:
E
i
n
e
w
=
∑
S
y
j
α
j
K
(
x
i
,
x
j
)
+
b
n
e
w
−
y
i
E_i^{new}=\sum_{S}y_j\alpha_jK(x_i,x_j)+b^{new}-y_i
Einew=S∑yjαjK(xi,xj)+bnew−yi
其中, S S S是所有支持向量 x j x_j xj的集合。
SMO算法
输入:训练数据集
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
n
,
y
n
)
}
T=\{(x_1,y_1),(x_2,y_2),...,(x_n,y_n)\}
T={(x1,y1),(x2,y2),...,(xn,yn)},其中
x
i
∈
X
=
R
n
,
y
i
∈
Y
=
{
+
1
,
−
1
}
,
i
=
1
,
2
,
.
.
.
,
n
x_i\in\mathcal{X}=\mathbb{R}^n,y_i\in\mathcal{Y}=\{+1,-1\},i=1,2,...,n
xi∈X=Rn,yi∈Y={+1,−1},i=1,2,...,n,精度
ϵ
\epsilon
ϵ
输出:近似解
α
^
\hat{\alpha}
α^
- 取初值 α ( 0 ) = 0 \alpha^{(0)}=0 α(0)=0,令 k = 0 k=0 k=0;
- 选取优化变量
α
1
(
k
)
,
α
2
(
k
)
\alpha_1^{(k)},\alpha_2^{(k)}
α1(k),α2(k),解析求解两个变量的最优化问题,
min α 1 , α 2 W ( α 1 , α 2 ) = 1 2 K 11 α 1 2 + 1 2 K 22 α 2 2 + y 1 y 2 K 12 α 1 α 2 − ( α 1 + α 2 ) + y 1 α 1 ∑ i = 3 n y i α i K i 1 + y 2 α 2 ∑ i = 3 n y i α i K i 2 s . t . α 1 y 1 + α 2 y 2 = − ∑ i = 3 n y i α i = ζ 0 ≤ α i ≤ C , i = 1 , 2 \begin{aligned} \min_{\alpha_1,\alpha_2}\quad &W(\alpha_1,\alpha_2)=\frac{1}{2}K_{11}\alpha_1^2+\frac{1}{2}K_{22}\alpha_2^2+y_1y_2K_{12}\alpha_1\alpha_2-(\alpha_1+\alpha_2)\\ &+y_1\alpha_1\sum_{i=3}^ny_i\alpha_iK_{i1}+y_2\alpha_2\sum_{i=3}^ny_i\alpha_iK_{i2}\\ s.t.\quad &\alpha_1y_1+\alpha_2y_2=-\sum_{i=3}^ny_i\alpha_i=\zeta\\ &0\leq \alpha_i\leq C,\quad i=1,2 \end{aligned} α1,α2mins.t.W(α1,α2)=21K11α12+21K22α22+y1y2K12α1α2−(α1+α2)+y1α1i=3∑nyiαiKi1+y2α2i=3∑nyiαiKi2α1y1+α2y2=−i=3∑nyiαi=ζ0≤αi≤C,i=1,2
求得最优解
α
1
(
k
+
1
)
,
α
2
(
k
+
1
)
\alpha_1^{(k+1)},\alpha_2^{(k+1)}
α1(k+1),α2(k+1),更新
α
\alpha
α为
α
(
k
+
1
)
\alpha^{(k+1)}
α(k+1);
3. 若在精度
ϵ
\epsilon
ϵ范围内满足停止条件
∑
i
=
1
n
α
i
y
i
=
0
,
0
≤
α
i
≤
C
,
i
=
1
,
2
,
.
.
.
,
n
\sum_{i=1}^n\alpha_iy_i=0,\quad 0\leq\alpha_i\leq C,i=1,2,...,n
i=1∑nαiyi=0,0≤αi≤C,i=1,2,...,n
y
i
⋅
g
(
x
i
)
=
{
≥
1
,
{
x
i
∣
α
i
=
0
}
=
1
,
{
x
i
∣
0
<
α
i
<
C
}
≤
1
,
{
x
i
∣
α
i
=
C
}
y_i\cdot g(x_i)=\begin{cases} \geq1,\quad \{x_i|\alpha_i=0\}\\ =1,\quad\{x_i|0<\alpha_i<C\}\\ \leq1,\quad\{x_i|\alpha_i=C\} \end{cases}
yi⋅g(xi)=⎩⎪⎨⎪⎧≥1,{xi∣αi=0}=1,{xi∣0<αi<C}≤1,{xi∣αi=C}
其中,
g
(
x
i
)
=
∑
j
=
1
n
α
j
y
j
K
(
x
j
,
x
i
)
+
b
g(x_i)=\sum_{j=1}^n\alpha_jy_jK(x_j,x_i)+b
g(xi)=j=1∑nαjyjK(xj,xi)+b
则转4;否则令
k
=
k
+
1
k=k+1
k=k+1,转2.
4. 取
α
^
=
α
(
k
+
1
)
\hat{\alpha}=\alpha^{(k+1)}
α^=α(k+1)
参考:
统计学习方法——李航