背景
SVM 的学习问题可以形式化为如下凸二次规划的对偶问题:
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
\min\limits_{\alpha} \;\; \frac{1}{2}\sum\limits_{i=1}^{N}\sum\limits_{j=1}^{N}\alpha_i\alpha_jy_iy_jK(x_i,x_j) - \sum\limits_{i=1}^{N}\alpha_i\\ s.t. \; \sum\limits_{i=1}^{N}\alpha_iy_i = 0 \\ 0 \leq \alpha_i \leq C
αmin21i=1∑Nj=1∑NαiαjyiyjK(xi,xj)−i=1∑Nαis.t.i=1∑Nαiyi=00≤αi≤C
在这个问题中,变量是拉格朗日乘子,一个变量
α
i
\alpha_i
αi 对应一个样本点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi),变量总数等于训练样本总数。这个问题我们通过序列最小最优算法(SMO)来解决。
SMO算法思路:选择两个变量,固定其他变量,针对这两个变量构建一个二次规划问题,这两个变量分别是:(1)违反KTT条件最严重的那个。(2)另一个由约束条件确定。
SMO算法包括下面两个部分:
- 求解两个变量二次规划的解析方法
- 选择变量的启发式方法
两个变量二次规划的求解方法
假设选择两个变量是
α
1
,
α
2
\alpha_1,\alpha_2
α1,α2 ,其他变量
α
i
(
i
=
3
,
4
…
,
N
)
\alpha_i(i=3,4\ldots,N)
αi(i=3,4…,N) 是固定的。固定项为常数,可以直接省略。所以SMO的最优化问题可以写成:
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
l
+
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} 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_{il}+y_2\alpha_2\sum_{i=3}^Ny_i\alpha_iK_{i2}\\ s.t. \ \ \ &\alpha_1y_1+\alpha_2y_2=-\sum_{i=3}^Ny_i\alpha_i=\varsigma\\ &0\leqslant\alpha_i\leqslant C, i=1,2 \end{aligned}
α1,α2minW(α1,α2)=s.t. 21K11α12+21K22α22+y1y2K12α1α2+(α1+α2)+y1α1i=3∑NyiαiKil+y2α2i=3∑NyiαiKi2α1y1+α2y2=−i=3∑Nyiαi=ς0⩽αi⩽C,i=1,2
其中,
K
i
j
=
K
(
x
i
,
x
j
)
,
ς
K_{ij}=K(x_i,x_j),\varsigma
Kij=K(xi,xj),ς 是常数。 最优化问题有两个约束:不等式约束和等式约束。
根据约束条件 α 1 y 1 + α 2 y 2 = k \alpha_1y_1+\alpha_2y_2=k α1y1+α2y2=k , y i y_i yi 的取值只能是1,-1。 且 0 ⩽ α i ⩽ C , 0\leqslant\alpha_i\leqslant C, 0⩽αi⩽C, 所以 ( α 1 , α 2 ) (\alpha_1,\alpha_2) (α1,α2) 在平行于盒子 [ 0 , C ] × [ 0 , C ] [0,C]\times [0,C] [0,C]×[0,C] 的对角线上。如下图所示:
因此要求的目标函数在一条平行于对角线的线段的最优值。这使得两个变量的最优化问题成为实质上的单变量优化问题( α 1 = k − α 2 \alpha_1 = k-\alpha_2 α1=k−α2)。
假设原始问题的初始可行解为 α 1 o l d , α 2 o l d \alpha_1^{old},\alpha_2^{old} α1old,α2old,本次迭代的最优解为 α 1 n e w , α 2 n e w \alpha_1^{new},\alpha_2^{new} α1new,α2new,假设沿着约束方向 α 2 \alpha_2 α2未经剪辑(未考虑不等式约束)的解是 α 2 n e w , u n c \alpha_2^{new,unc} α2new,unc 。
由于设L、H为
α
2
n
e
w
\alpha_2^{new}
α2new 所在对角线的端点。则
α
2
n
e
w
\alpha_2^{new}
α2new 的取值范围必须满足条件:
L
≤
α
2
n
e
w
≤
H
L \leq \alpha_2^{new} \leq H
L≤α2new≤H
当
y
1
≠
y
2
y_1 \neq y_2
y1=y2 时,如上左图,则:
L
=
m
a
x
(
0
,
α
2
o
l
d
−
α
1
o
l
d
)
H
=
m
i
n
(
C
,
C
+
α
2
o
l
d
−
α
1
o
l
d
)
L = max(0, \alpha_2^{old}-\alpha_1^{old}) \;\;\;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
=
m
a
x
(
0
,
α
2
o
l
d
+
α
1
o
l
d
−
C
)
H
=
m
i
n
(
C
,
α
2
o
l
d
+
α
1
o
l
d
)
L = max(0, \alpha_2^{old}+\alpha_1^{old}-C) \;\;\; H = min(C, \alpha_2^{old}+\alpha_1^{old})
L=max(0,α2old+α1old−C)H=min(C,α2old+α1old)
所以,最终的
α
2
n
e
w
\alpha_2^{new}
α2new 应该要满足以下情况:
α
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
\alpha_2^{new}= \begin{cases} H& { \alpha_2^{new,unc} > H}\\ \alpha_2^{new,unc}& {L \leq \alpha_2^{new,unc} \leq H}\\ L& {\alpha_2^{new,unc} < L} \end{cases}
α2new=⎩⎪⎨⎪⎧Hα2new,uncLα2new,unc>HL≤α2new,unc≤Hα2new,unc<L
那么应该如何求
α
2
n
e
w
,
u
n
c
\alpha_2^{new,unc}
α2new,unc ?,通过对目标函数求导可以解决。
引入变量:
g
(
x
)
=
∑
j
=
1
m
α
j
∗
y
j
K
(
x
,
x
j
)
+
b
∗
E
i
=
g
(
x
i
)
−
y
i
=
∑
j
=
1
m
α
j
∗
y
j
K
(
x
i
,
x
j
)
+
b
−
y
i
v
i
=
∑
j
=
3
m
y
j
α
j
K
(
x
i
,
x
j
)
=
g
(
x
i
)
−
∑
j
=
1
2
y
j
α
j
K
(
x
i
,
x
j
)
−
b
g(x) =\sum\limits_{j=1}^{m}\alpha_j^{*}y_jK(x, x_j)+ b^{*}\\E_i = g(x_i)-y_i = \sum\limits_{j=1}^{m}\alpha_j^{*}y_jK(x_i, x_j)+ b - y_i \\ v_i = \sum\limits_{j=3}^{m}y_j\alpha_jK(x_i,x_j) = g(x_i) - \sum\limits_{j=1}^{2}y_j\alpha_jK(x_i,x_j) -b
g(x)=j=1∑mαj∗yjK(x,xj)+b∗Ei=g(xi)−yi=j=1∑mαj∗yjK(xi,xj)+b−yivi=j=3∑myjαjK(xi,xj)=g(xi)−j=1∑2yjαjK(xi,xj)−b
注:
E
i
E_i
Ei 是样本的真实值与预测值的误差。
将
v
1
,
v
2
v_1,v_2
v1,v2 带入目标函数:
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
v
1
+
y
2
α
2
v
2
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_1v_1 + y_2\alpha_2v_2
W(α1,α2)=21K11α12+21K22α22+y1y2K12α1α2−(α1+α2)+y1α1v1+y2α2v2
由
α
1
y
1
+
α
2
y
2
=
ς
,
y
i
2
=
1
\alpha_1y_1 + \alpha_2y_2 = \varsigma, \quad y_i^2=1
α1y1+α2y2=ς,yi2=1 得:
α
1
=
y
1
(
ς
−
α
2
y
2
)
\alpha_1 = y_1(\varsigma - \alpha_2y_2)
α1=y1(ς−α2y2)
带入
W
(
α
1
,
α
2
)
W(\alpha_1,\alpha_2)
W(α1,α2) 消去
α
1
\alpha_1
α1 ,得:
W
(
α
2
)
=
1
2
K
11
(
ς
−
α
2
y
2
)
2
+
1
2
K
22
α
2
2
+
y
2
K
12
(
ς
−
α
2
y
2
)
α
2
−
(
ς
−
α
2
y
2
)
y
1
−
α
2
+
(
ς
−
α
2
y
2
)
v
1
+
y
2
α
2
v
2
W(\alpha_2) = \frac{1}{2}K_{11}(\varsigma - \alpha_2y_2)^2 + \frac{1}{2}K_{22}\alpha_2^2 +y_2K_{12}(\varsigma - \alpha_2y_2) \alpha_2 - (\varsigma - \alpha_2y_2)y_1 - \alpha_2 +(\varsigma - \alpha_2y_2)v_1 + y_2\alpha_2v_2
W(α2)=21K11(ς−α2y2)2+21K22α22+y2K12(ς−α2y2)α2−(ς−α2y2)y1−α2+(ς−α2y2)v1+y2α2v2
这样问题就变成了单变量优化问题。接下来我们通过求导来得到
α
2
n
e
w
,
u
n
c
\alpha_2^{new,unc}
α2new,unc :
∂
W
∂
α
2
=
K
11
α
2
+
K
22
α
2
−
2
K
12
α
2
−
K
11
ς
y
2
+
K
12
ς
y
2
+
y
1
y
2
−
1
−
v
1
y
2
+
y
2
v
2
=
0
\frac{\partial W}{\partial \alpha_2} = K_{11}\alpha_2 + K_{22}\alpha_2 -2K_{12}\alpha_2 - K_{11}\varsigma y_2 + K_{12}\varsigma y_2 +y_1y_2 -1 -v_1y_2 +y_2v_2 = 0
∂α2∂W=K11α2+K22α2−2K12α2−K11ςy2+K12ςy2+y1y2−1−v1y2+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
(
x
1
,
x
j
)
−
b
)
−
(
g
(
x
2
)
−
∑
j
=
1
2
y
j
α
j
K
(
x
2
,
x
j
)
−
b
)
]
\begin{aligned} (K_{11} +K_{22}-2K_{12})\alpha_2 &= y_2(y_2-y_1 + \varsigma K_{11} - \varsigma K_{12} + v_1 - v_2) \\ &=y_2\left[y_2-y_1 + \varsigma K_{11} - \varsigma K_{12} + \left(g(x_1) - \sum\limits_{j=1}^{2}y_j\alpha_jK(x_1,x_j) -b\right) - \left(g(x_2) - \sum\limits_{j=1}^{2}y_j\alpha_jK(x_2,x_j) -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αjK(x1,xj)−b)−(g(x2)−j=1∑2yjαjK(x2,xj)−b)]
将
α
1
=
y
1
(
ς
−
α
2
y
2
)
\alpha_1 = y_1(\varsigma - \alpha_2y_2)
α1=y1(ς−α2y2) 带入上式:
(
K
11
+
K
22
−
2
K
12
)
α
2
n
e
w
,
u
n
c
=
y
2
[
y
2
−
y
1
+
g
(
x
1
)
−
g
(
x
2
)
+
(
α
1
y
1
+
α
2
o
l
d
y
2
)
K
11
−
(
α
1
y
1
+
α
2
o
l
d
y
2
)
K
12
−
(
y
1
α
1
K
11
+
y
2
α
2
o
l
d
K
12
)
+
(
y
1
α
1
K
21
+
y
2
α
2
o
l
d
K
22
)
]
=
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^{new,unc} &=y_2 [ y_2-y_1 +g(x_1)- g(x_2)+(\alpha_1y_1 + \alpha_2^{old}y_2)K_{11}-(\alpha_1y_1 + \alpha_2^{old}y_2 )K_{12}\\ &\quad-(y_1\alpha_1K_{11}+y_2\alpha_2^{old} K_{12})+(y_1\alpha_1K_{21}+y_2\alpha_2 ^{old}K_{22}) ] \\\\&= 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)α2new,unc=y2[y2−y1+g(x1)−g(x2)+(α1y1+α2oldy2)K11−(α1y1+α2oldy2)K12−(y1α1K11+y2α2oldK12)+(y1α1K21+y2α2oldK22)]=y2[(K11+K22−2K12)α2oldy2+y2−y1+g(x1)−g(x2)]=(K11+K22−2K12)α2old+y2(E1−E2)
所以:
α
2
n
e
w
,
u
n
c
=
α
2
o
l
d
+
y
2
(
E
1
−
E
2
)
K
11
+
K
22
−
2
K
12
)
\alpha_2^{new,unc} = \alpha_2^{old} + \frac{y_2(E_1-E_2)}{K_{11} +K_{22}-2K_{12})}
α2new,unc=α2old+K11+K22−2K12)y2(E1−E2)
加上不等式约束,即剪辑后的结果为:
α
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
\alpha_2^{new}= \begin{cases} H& { \alpha_2^{new,unc} > H}\\ \alpha_2^{new,unc}& {L \leq \alpha_2^{new,unc} \leq H}\\ L& {\alpha_2^{new,unc} < L} \end{cases}
α2new=⎩⎪⎨⎪⎧Hα2new,uncLα2new,unc>HL≤α2new,unc≤Hα2new,unc<L
由
α
1
o
l
d
y
1
+
α
2
o
l
d
y
2
=
α
1
n
e
w
y
1
+
α
2
n
e
w
y
2
=
ς
\alpha_1^{old}y_1 + \alpha_2^{old}y_2 = \alpha_1^{new}y_1 + \alpha_2^{new}y_2 =\varsigma
α1oldy1+α2oldy2=α1newy1+α2newy2=ς,可得:
α
1
n
e
w
=
α
1
o
l
d
+
y
1
y
2
(
α
2
o
l
d
−
α
2
n
e
w
)
\alpha_1^{new} = \alpha_1^{old} + y_1y_2(\alpha_2^{old} - \alpha_2^{new})
α1new=α1old+y1y2(α2old−α2new)
选择变量的启发式方法
SMO算法在每个子问题中选择两个变量优化,其中至少一个变量时违反KKT条件的。
第一个变量的选择
SMO称选择第一个变量的过程为外层循环,外层循环选择出不满足KKT条件的样本点。
先来回顾一下KKT条件的对偶互补条件为:
α
i
∗
(
y
i
(
w
T
x
i
+
b
)
−
1
+
ξ
i
∗
)
=
0
\alpha_{i}^{*}(y_i(w^Tx_i + b) - 1 + \xi_i^{*}) = 0
αi∗(yi(wTxi+b)−1+ξi∗)=0
令
g
(
x
)
=
∑
j
=
1
m
α
j
∗
y
j
K
(
x
,
x
j
)
+
b
∗
g(x) =\sum\limits_{j=1}^{m}\alpha_j^{*}y_jK(x, x_j)+ b^{*}
g(x)=j=1∑mαj∗yjK(x,xj)+b∗所以有:
α
i
∗
=
0
⇒
y
i
g
(
x
i
)
≥
1
0
<
α
i
∗
<
C
⇒
y
i
g
(
x
i
)
=
1
α
i
∗
=
C
⇒
y
i
g
(
x
i
)
≤
1
\alpha_{i}^{*} = 0 \Rightarrow y_ig(x_i) \geq 1\\ 0 <\alpha_{i}^{*} < C \Rightarrow y_ig(x_i) = 1\\ \alpha_{i}^{*}= C \Rightarrow y_ig(x_i) \leq 1
αi∗=0⇒yig(xi)≥10<αi∗<C⇒yig(xi)=1αi∗=C⇒yig(xi)≤1
选择的顺序是:首先选择违反
0
<
α
i
∗
<
C
⇒
y
i
g
(
x
i
)
=
1
0 <\alpha_{i}^{*} < C \Rightarrow y_ig(x_i) = 1
0<αi∗<C⇒yig(xi)=1 这个条件的点,即在间隔边界上的支持向量点。如果满足,再选择违反
α
i
∗
=
0
⇒
y
i
g
(
x
i
)
≥
1
,
α
i
∗
=
C
⇒
y
i
g
(
x
i
)
≤
1
\alpha_{i}^{*} = 0 \Rightarrow y_ig(x_i) \geq 1,\alpha_{i}^{*}= C \Rightarrow y_ig(x_i) \leq 1
αi∗=0⇒yig(xi)≥1,αi∗=C⇒yig(xi)≤1 这个条件的点。
第二个变量的选择
在确定第一个变量
α
1
\alpha_1
α1 的条件下,寻找第二个变量
α
2
\alpha_2
α2 。由公式可知:
α
2
n
e
w
,
u
n
c
=
α
2
o
l
d
+
y
2
(
E
1
−
E
2
)
K
11
+
K
22
−
2
K
12
\alpha_2^{new,unc} = \alpha_2^{old} + \frac{y_2(E_1-E_2)}{K_{11} +K_{22}-2K_{12}}
α2new,unc=α2old+K11+K22−2K12y2(E1−E2)
可知:
α
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 也确定了。所以:
(1)当 E 1 > 0 E_1>0 E1>0 时,选择最小的 E i E_i Ei 作为 E 2 E_2 E2
(2)当 E 1 ≤ 0 E_1 \leq 0 E1≤0 时,选择最大的 E i E_i Ei 作为 E 2 E_2 E2
注:为了节省计算时间。通常把所有的 E i E_i Ei 的值保存在一个列表中。
计算阈值b和差值 E i E_i Ei
每次完成两个变量的优化后,都要重新计算阈值
b
b
b。当
0
<
α
1
n
e
w
<
C
0<\alpha_1^{new}<C
0<α1new<C 时,由KKT条件:
0
<
α
i
∗
<
C
⇒
y
i
g
(
x
i
)
=
1
0 <\alpha_{i}^{*} < C \Rightarrow y_ig(x_i) = 1
0<αi∗<C⇒yig(xi)=1 可知:
y
1
=
∑
i
=
1
N
α
i
y
i
K
i
1
+
b
1
y_1 = \sum\limits_{i=1}^{N}\alpha_iy_iK_{i1} +b_1
y1=i=1∑NαiyiKi1+b1
所以:
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\limits_{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
E_1
E1 的定义式得:
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\limits_{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
所以:
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
−
E
1
y_1 - \sum\limits_{i=3}^{N}\alpha_iy_iK_{i1} = \alpha_{1}^{old}y_1K_{11} + \alpha_{2}^{old}y_2K_{21} + b^{old} - E_1
y1−i=3∑NαiyiKi1=α1oldy1K11+α2oldy2K21+bold−E1
带入
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
12
(
α
1
n
e
w
−
α
1
o
l
d
)
−
y
2
K
22
(
α
2
n
e
w
−
α
2
o
l
d
)
+
b
o
l
d
b_2^{new} = -E_2 -y_1K_{12}(\alpha_{1}^{new} - \alpha_{1}^{old}) -y_2K_{22}(\alpha_{2}^{new} - \alpha_{2}^{old}) + b^{old}
b2new=−E2−y1K12(α1new−α1old)−y2K22(α2new−α2old)+bold
所以:
b
n
e
w
=
b
1
n
e
w
+
b
2
n
e
w
2
b^{new} = \frac{b_1^{new} + b_2^{new}}{2}
bnew=2b1new+b2new
更新
E
i
E_i
Ei:
E
i
=
∑
S
y
j
α
j
K
(
x
i
,
x
j
)
+
b
n
e
w
−
y
i
E_i = \sum\limits_{S}y_j\alpha_jK(x_i,x_j) + b^{new} -y_i
Ei=S∑yjαjK(xi,xj)+bnew−yi
其中,
S
S
S 是所有支持向量得集合。
SMO算法
输入是m个样本 ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) , {(x_1,y_1), (x_2,y_2), ..., (x_m,y_m),} (x1,y1),(x2,y2),...,(xm,ym), 其中,$x_i \in \mathcal X = \mathbf R^n $ , y i ∈ Y = − 1 , + 1 , i = 1 , 2 … , N y_i \in \mathcal Y = {-1,+1},i=1,2\ldots,N yi∈Y=−1,+1,i=1,2…,N,精度 ε \varepsilon ε ;
输出:近似解 α ^ \hat \alpha α^
(1)取初值 α ( 0 ) = 0 \alpha^{(0)}=0 α(0)=0 ,令 k = 0 k=0 k=0 。
(2) 选取优化变量 α 1 k , α 2 k \alpha_1^{k},\alpha_2^{k} α1k,α2k,解析求解两个变量的最优化问题,求解得最优解 α 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)若在精度
ε
\varepsilon
ε 范围内满足停机条件:
∑
i
=
1
m
α
i
y
i
=
0
,
0
≤
α
i
≤
C
,
i
=
1
,
2...
m
α
i
k
+
1
=
0
⇒
y
i
g
(
x
i
)
≥
1
0
<
α
i
k
+
1
<
C
⇒
y
i
g
(
x
i
)
=
1
α
i
k
+
1
=
C
⇒
y
i
g
(
x
i
)
≤
1
\sum\limits_{i=1}^{m}\alpha_iy_i = 0,\quad 0 \leq \alpha_i \leq C, i =1,2...m \\ \alpha_{i}^{k+1} = 0 \Rightarrow y_ig(x_i) \geq 1 \\ 0 <\alpha_{i}^{k+1} < C \Rightarrow y_ig(x_i) = 1 \\ \alpha_{i}^{k+1}= C \Rightarrow y_ig(x_i) \leq 1
i=1∑mαiyi=0,0≤αi≤C,i=1,2...mαik+1=0⇒yig(xi)≥10<αik+1<C⇒yig(xi)=1αik+1=C⇒yig(xi)≤1
其中:
g
(
x
)
=
∑
j
=
1
N
α
j
∗
y
j
K
(
x
,
x
j
)
+
b
∗
g(x) =\sum\limits_{j=1}^{N}\alpha_j^{*}y_jK(x, x_j)+ b^{*}
g(x)=j=1∑Nαj∗yjK(x,xj)+b∗
则转(4),否则令
k
=
k
+
1
k=k+1
k=k+1 ,转(2);
(4)取 α ^ = α ( k + 1 ) \hat \alpha = \alpha^{(k+1)} α^=α(k+1)