1.间隔与支持向量
给定训练样本集
D
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
.
(
x
n
,
y
n
)
}
D=\{(x_1,y_1),(x_2,y_2),....(x_n,y_n)\}
D={(x1,y1),(x2,y2),....(xn,yn)},分类学习最基本的想法就是基于训练集
D
D
D 在样本空间中找到一一个划分超平面,将不同类别的样本分开.但能将训练样本分开的划分超平面可能有很多,如图
6.1
6.1
6.1 所示,我们应该努力去找到哪一个呢?
直观上看,应该去找位于两类训练样本正中间的划分超平面,即图
6.1
6.1
6.1
中红色的那个,因为该划分超平面对训练样本局部扰动的“容忍”性最好.例
如,由于训练集的局限性或噪声的因素,训练集外的样本可能比图
6.1
6.1
6.1 中的训练样本更接近两个类的分隔界,这将使许多划分超平面出现错误,而红色的超平面受影响最小.换言之,这个划分超平面所产生的分类结果是最鲁棒的,对未见示例的泛化能力最强.
在样本空间中,划分超平面可通过如下线性方程来描述:
w
T
x
+
b
=
0
w^{T}x+b=0
wTx+b=0
划分的超平面被
w
w
w,
b
b
b 确定下面我们将其记为
(
w
,
b
)
(w, b)
(w,b).样本空间中任意点
x
x
x 到超平面
(
w
,
b
)
(w, b)
(w,b) 的距离可写为
r
=
∣
w
T
x
+
b
∣
∥
w
∥
r=\frac{|w^{T}x+b|}{\left \| w \right \|}
r=∥w∥∣wTx+b∣
假设超平面
(
w
,
b
)
(w, b)
(w,b) 能将训练样本正确分类,即对于
(
x
i
,
y
i
)
∈
D
(x_i,y_i)∈D
(xi,yi)∈D,若
y
i
=
+
1
y_i= +1
yi=+1,则有
w
T
x
i
+
b
>
0
w^{T}x_i+b> 0
wTxi+b>0;若
Y
i
=
−
1
Y_i=-1
Yi=−1,则有
w
T
x
i
+
b
<
0
w^{T}x_i+b<0
wTxi+b<0 .令
{
w
T
x
i
+
b
>
+
1
y
i
=
+
1
w
T
x
i
+
b
<
−
1
y
i
=
−
1
(
6.3
)
\left\{\begin{matrix}w^{T}x_i+b> +1 \quad y_i= +1 \\w^{T}x_i+b< -1 \quad y_i= -1 \end{matrix}\right. \quad (6.3)
{wTxi+b>+1yi=+1wTxi+b<−1yi=−1(6.3)
如图
6.2
6.2
6.2 所示,距离超平面最近的这几个训练样本点使式(6.3)的等号成立,
它们被称为“支持向量”(supportvector),两个异类支持向量到超平面的距离
之和为
γ
=
2
∥
w
∥
\gamma =\frac{2}{\left \| w \right \|}
γ=∥w∥2
它被称为“间隔”(margin).
欲找到具有“最大间隔”(maximum margin)的划分超平面,也就是要找到能满足式(6.3)中约束的参数
w
w
w 和
b
b
b,使得
γ
γ
γ 最大,即
max
w
,
b
2
∥
w
∥
s
t
:
y
i
(
w
T
x
i
+
b
)
≥
1
i
=
1
,
2...
n
\max \limits_{w,b}\frac{2}{\left \| w \right \|} \\ st:y_i(w^{T}x_i+b)≥1 \quad i=1,2...n
w,bmax∥w∥2st:yi(wTxi+b)≥1i=1,2...n
显然,为了最大化间隔,仅需最大化
1
∥
w
∥
\frac{1}{\left \| w \right \|}
∥w∥1,这等价于最小化
∥
w
∥
2
\left \| w \right \|^{2}
∥w∥2.于是,重写为
min
w
,
b
1
2
∥
w
∥
2
(
6.6
)
s
t
:
y
i
(
w
T
x
i
+
b
)
≥
1
i
=
1
,
2...
n
\min \limits_{w,b}\frac{1}{2}\left \| w \right \|^2 \quad(6.6)\\ st:y_i(w^{T}x_i+b)≥1 \quad i=1,2...n
w,bmin21∥w∥2(6.6)st:yi(wTxi+b)≥1i=1,2...n这就是支持向量机(SVM)的基本模型
对偶问题
我们希望求解式(6.6)来得到大间隔划分超平面所对应的模型
f
(
x
)
=
w
T
x
+
b
f(x)=w^{T}x+b
f(x)=wTx+b
其中
w
w
w 和
b
b
b 是模型参数.注意到式(6.6)本身是一个凸二次规划问题,能直接用现成的优化计算包求解,但我们可以有更高效的办法.
对式(6.6)使用拉格朗日乘子法可得到其对偶问题.具
体来说,对式(6.6)的每条约束添加拉格朗日乘子
α
i
≥
0
\alpha _i≥0
αi≥0,则该问题的拉格朗日
L
(
w
,
b
,
α
)
=
1
2
∥
w
∥
2
+
∑
i
=
1
m
α
i
(
1
−
y
i
(
w
T
x
i
+
b
)
)
(
6.8
)
L(w,b,\alpha)=\frac{1}{2}\left \| w \right \|^2+\sum_{i=1}^{m}\alpha _i(1-y_i(w^{T}x_i+b)) \quad (6.8)
L(w,b,α)=21∥w∥2+i=1∑mαi(1−yi(wTxi+b))(6.8)
min
w
,
b
max
α
L
(
w
,
b
,
α
)
s
t
:
α
i
⩾
0
\min \limits_{w,b} \max \limits_{\alpha}L(w,b,\alpha)\\ st:\alpha_{i}\geqslant 0
w,bminαmaxL(w,b,α)st:αi⩾0
等价于
max
α
min
w
,
b
L
(
w
,
b
,
α
)
s
t
:
α
i
⩾
0
\max \limits_{\alpha} \min \limits_{w,b}L(w,b,\alpha)\\ st:\alpha_{i}\geqslant 0
αmaxw,bminL(w,b,α)st:αi⩾0
α
=
(
α
1
,
α
2
.
.
.
α
n
)
T
\alpha=(\alpha _1,\alpha _2...\alpha _n)^{T}
α=(α1,α2...αn)T
令
L
(
w
,
b
,
α
)
L(w,b,\alpha)
L(w,b,α) 对
w
w
w 和
b
b
b 的偏导等于
0
0
0得
∑
i
=
1
m
α
i
y
i
x
i
=
w
∑
i
=
1
m
α
i
y
i
=
0
\sum_{i=1}^{m}\alpha_iy_ix_{i}=w \\ \sum_{i=1}^{m}\alpha_iy_i=0
i=1∑mαiyixi=wi=1∑mαiyi=0
将以上两式带入
(
6.8
)
(6.8)
(6.8),消去
w
,
b
w,b
w,b 得
(
6.6
)
(6.6)
(6.6)的对偶问题
max
α
∑
i
=
1
m
α
i
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
x
i
T
x
j
s
t
:
∑
i
=
1
m
α
i
y
i
=
0
α
i
⩾
0
i
=
1
,
2..
m
\max \limits_{\alpha} \sum_{i=1}^{m} \alpha_i-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_jx_i^{T}x_j\\st:\sum_{i=1}^{m}\alpha_iy_i=0\\ \alpha_i \geqslant 0 \quad i=1,2..m
αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxjst:i=1∑mαiyi=0αi⩾0i=1,2..m
等价于
min
α
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
x
i
T
x
j
−
∑
i
=
1
m
α
i
s
t
:
∑
i
=
1
m
α
i
y
i
=
0
α
i
⩾
0
i
=
1
,
2..
m
\min \limits_{\alpha} \frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_jx_i^{T}x_j-\sum_{i=1}^{m} \alpha_i\\st:\sum_{i=1}^{m}\alpha_iy_i=0\\ \alpha_i \geqslant 0 \quad i=1,2..m
αmin21i=1∑mj=1∑mαiαjyiyjxiTxj−i=1∑mαist:i=1∑mαiyi=0αi⩾0i=1,2..m
求解出
α
∗
=
(
α
1
∗
,
α
2
∗
,
.
.
.
.
.
α
n
∗
)
T
\alpha^{*}=(\alpha_1^{*},\alpha_2^{*},.....\alpha_n^{*})^{T}
α∗=(α1∗,α2∗,.....αn∗)T
w
∗
=
∑
i
=
1
m
α
i
∗
y
i
x
i
b
∗
=
y
j
−
∑
i
=
1
m
α
i
∗
y
i
(
x
i
T
∗
x
j
)
w^{*}=\sum_{i=1}^{m}\alpha_i^{*}y_ix_i\\b^{*}=y_j-\sum_{i=1}^{m}\alpha_i^{*}y_i(x_i^{T}*x_j)
w∗=i=1∑mαi∗yixib∗=yj−i=1∑mαi∗yi(xiT∗xj)
分离超平面可以表示为
∑
i
=
1
m
a
i
∗
y
i
(
x
i
T
x
j
)
+
b
∗
=
0
\sum\limits_{i=1}^m {a_i^*{y_i}({x_i}^{T}{x_j})} + {b^*} = 0
i=1∑mai∗yi(xiTxj)+b∗=0
分类的决策函数可以写成
f
(
x
)
=
s
i
g
n
(
∑
i
=
1
m
a
i
∗
y
i
(
x
i
T
x
j
)
+
b
∗
)
f(x) = sign(\sum\limits_{i=1}^m {a_i^*{y_i}({x_i}^T {x_j})} + {b^*})
f(x)=sign(i=1∑mai∗yi(xiTxj)+b∗)
软间隔
上图的例子就是这样的一个例子了。无论怎么画直线都不可能把两类点完全分开。但如果我们可以容忍一部分点出现异常,或者不完全满足大于等于1的条件,那么就可以对每个样本点引入一个松弛变量
ξ
i
>
0
ξ_i>0
ξi>0, 同时为目标函数需要为每个
ξ
i
ξ_i
ξi付出代价,这样线性svm的目标函数就变成了这样(原始问题)
max
w
,
b
,
ξ
1
2
∥
w
∥
2
+
C
∑
i
=
1
N
ξ
i
s
.
t
.
y
i
(
w
⋅
x
i
+
b
)
≥
1
−
ξ
i
,
i
=
1
,
2
,
⋅
⋅
⋅
,
N
ξ
i
≥
0
,
i
=
1
,
2
,
⋅
⋅
⋅
,
N
\begin{array}{l} \mathop {\max }\limits_{w,b,\xi } \qquad \frac{1}{2}{\left\| w \right\|^2} + C\sum\limits_{i = 1}^N { {\xi _i}} \\ {\rm{s.t.}} \qquad {y_i}(w \cdot {x_i} + b) \ge 1 - {\xi _i}, \qquad i = 1,2, \cdot \cdot \cdot ,N\\ \qquad \qquad {\xi _i} \ge 0, \qquad i = 1,2, \cdot \cdot \cdot ,N \end{array}
w,b,ξmax21∥w∥2+Ci=1∑Nξis.t.yi(w⋅xi+b)≥1−ξi,i=1,2,⋅⋅⋅,Nξi≥0,i=1,2,⋅⋅⋅,N
对偶问题转变成
min
a
1
2
∑
i
=
1
m
∑
j
=
1
m
a
i
a
j
y
i
y
j
(
x
i
⋅
x
j
)
−
∑
i
=
1
m
α
i
(
6.10
)
s
.
t
.
∑
i
=
1
m
α
i
y
i
=
0
0
≤
α
i
≤
C
,
i
=
1
,
2
,
⋅
⋅
⋅
,
N
\begin{array}{l} \mathop {\min }\limits_a \qquad \frac{1}{2}\sum\limits_{i = 1}^m {\sum\limits_{j = 1}^m { {a_i}{a_j}{y_i}{y_j}({x_i}\cdot{x_j}) - \sum\limits_{i = 1}^m { {\alpha_i}} } } \quad (6.10)\\ {\rm{s.t.}}\qquad\sum\limits_{i = 1}^m { {\alpha_i}{y_i} = 0} \\ \qquad\qquad 0 \le {\alpha_i} \le C, \qquad i = 1,2,\cdot\cdot\cdot,N \end{array}
amin21i=1∑mj=1∑maiajyiyj(xi⋅xj)−i=1∑mαi(6.10)s.t.i=1∑mαiyi=00≤αi≤C,i=1,2,⋅⋅⋅,N
选择一个
α
∗
\alpha^{∗}
α∗ 的正分量
0
<
α
j
∗
<
C
0<\alpha^∗_j<C
0<αj∗<C , 计算(或者通过所有解求平均值):
b
∗
=
y
j
−
∑
i
=
1
m
α
i
∗
y
i
(
x
i
T
x
j
)
{b^*} = {y_j} - \sum\limits_{i = 1}^m {\alpha_i^*{y_i}({x_i}^{T} {x_j})}
b∗=yj−i=1∑mαi∗yi(xiTxj)
决策函数为
f
(
x
)
=
s
i
g
n
(
∑
i
=
1
m
α
i
∗
y
i
K
(
x
i
,
x
j
)
+
b
∗
)
f(x) = sign(\sum\limits_{i=1}^m {\alpha_i^*{y_i}K({x_i}, {x_j})} + {b^*})
f(x)=sign(i=1∑mαi∗yiK(xi,xj)+b∗)
SMO是一种启发式算法,其基本思想是:如果所有变量的解都满足了此最优化问题的KKT条件,那么这个最优化问题的解就得到了。否则,选择两个变量,固定其它变量,针对这两个变量构建一个二次规划问题,然后关于这个二次规划的问题的解就更接近原始的二次归还问题的解,因为这个解使得需要优化的问题的函数值更小。
翻译一下:对于svm我们要求解 α ∗ \alpha^∗ α∗,如果 α ∗ \alpha^∗ α∗ 的所有分量满足svm对偶问题的KKT条件,那么这个问题的解就求出来了,我们svm模型学习也就完成了。如果没有满足KKT,那么我们就在 α ∗ \alpha^∗ α∗ 中找两个分量 α i \alpha_i αi和 α j \alpha_j αj,其中 α i \alpha_i αi 是违反KKT条件最严重的分量,通过计算,使得 α i \alpha_i αi和 α j \alpha_j αj 满足KKT条件,直到 α ∗ \alpha^∗ α∗ 的所有分量都满足KKT条件。而且这个计算过程是收敛的,因为每次计算出来的新的两个分量,使得对偶问题中要优化的目标函数(就是min对应的那个函数)值更小。至于为什么是收敛的,是因为,每次求解的那两个分量,是要优化问题在这两个分量上的极小值,所以每一次优化,都会使目标函数比上一次的优化结果的值变小。
(
6.10
)
(6.10)
(6.10)的对偶问题为
α
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
\begin{array}{l} \quad {\alpha_i} = 0 \quad \Leftrightarrow \quad {y_i}g({x_i}) \ge 1\\ 0 < {\alpha_i} < C \quad \Leftrightarrow \quad {y_i}g({x_i}) = 1\\ \quad {\alpha_i} = C \quad \Leftrightarrow \quad {y_i}g({x_i}) \le 1 \end{array}
αi=0⇔yig(xi)≥10<αi<C⇔yig(xi)=1αi=C⇔yig(xi)≤1
其中
g
(
x
)
=
∑
i
=
1
m
α
i
y
i
K
(
x
i
,
x
j
)
+
b
g(x) = \sum\limits_{i = 1}^m { {\alpha_i}{y_i}K({x_i},{x_j}) + b}
g(x)=i=1∑mαiyiK(xi,xj)+b
因为计算机在计算的时候是有精度范围的,所以我们引入一个计算精度值
ε
ε
ε,
{
α
i
=
0
⇔
y
i
g
(
x
i
)
≥
1
−
ε
0
<
α
i
<
C
⇔
1
−
ε
≤
y
i
g
(
x
i
)
≤
1
+
ε
α
i
=
C
⇔
y
i
g
(
x
i
)
≤
1
+
ε
}
⇒
{
α
i
<
C
⇔
1
−
ε
≤
y
i
g
(
x
i
)
0
<
α
i
⇔
y
i
g
(
x
i
)
≤
1
+
ε
}
\left\{ \begin{array}{l} {\alpha_i} = 0 \Leftrightarrow {y_i}g({x_i}) \ge 1 - \varepsilon \\ 0 < {\alpha_i} < C \Leftrightarrow 1 - \varepsilon \le {y_i}g({x_i}) \le 1 + \varepsilon \\ {\alpha_i} = C \Leftrightarrow {y_i}g({x_i}) \le 1 + \varepsilon \end{array} \right\} \Rightarrow \left\{ \begin{array}{l} {\alpha_i} < C \Leftrightarrow 1 - \varepsilon \le {y_i}g({x_i})\\ 0 < {\alpha_i} \Leftrightarrow {y_i}g({x_i}) \le 1 + \varepsilon \end{array} \right\}
⎩⎨⎧αi=0⇔yig(xi)≥1−ε0<αi<C⇔1−ε≤yig(xi)≤1+εαi=C⇔yig(xi)≤1+ε⎭⎬⎫⇒{αi<C⇔1−ε≤yig(xi)0<αi⇔yig(xi)≤1+ε}
同时由于
y
i
=
±
1
y_i=±1
yi=±1,所以
y
i
∗
y
i
=
1
y_i∗y_i=1
yi∗yi=1,上面的公式可以换算为
α
i
<
C
⇔
−
ε
≤
y
i
(
g
(
x
i
)
−
y
i
)
0
<
α
i
⇔
y
i
(
g
(
x
i
)
−
y
i
)
≤
+
ε
\begin{array}{l} {\alpha_i} < C \Leftrightarrow - \varepsilon \le {y_i}(g({x_i}) - {y_i})\\ 0 < {\alpha_i} \Leftrightarrow {y_i}(g({x_i}) - {y_i}) \le + \varepsilon \end{array}
αi<C⇔−ε≤yi(g(xi)−yi)0<αi⇔yi(g(xi)−yi)≤+ε
定义:
E
i
=
g
(
x
i
)
−
y
i
{E_i} = g({x_i}) - {y_i}
Ei=g(xi)−yi
其中,
g
(
x
)
g(x)
g(x)其实就是决策函数,所以
E
i
E_i
Ei可以认为是对输入的
x
i
x_i
xi的预测值与真实输出
y
i
y_i
yi之差。
上面的公式就可以换算为,即
K
K
T
KKT
KKT条件可以表示为:
a
i
<
C
⇔
−
ε
≤
y
i
E
i
0
<
a
i
⇔
y
i
E
i
≤
+
ε
\begin{array}{l} {a_i} < C \Leftrightarrow - \varepsilon \le {y_i}{E_i}\\ 0 < {a_i} \Leftrightarrow {y_i}{E_i} \le + \varepsilon \end{array}
ai<C⇔−ε≤yiEi0<ai⇔yiEi≤+ε
那么相应的违规KKT条件的分量应该满足下列不等式:
A g a i n s t K K T : α i < C ⇔ − ε > y i E i 0 < α i ⇔ y i E i > + ε Against KKT:\\\begin{array}{l} {\alpha_i} < C \quad \Leftrightarrow \quad - \varepsilon > {y_i}{E_i}\\ 0 < {\alpha_i} \quad \Leftrightarrow \quad {y_i}{E_i} > + \varepsilon \end{array} AgainstKKT:αi<C⇔−ε>yiEi0<αi⇔yiEi>+ε
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 ∈ R n x_i∈R^{n} xi∈Rn, y i ∈ { − 1 , + 1 } y_i∈\{−1,+1\} yi∈{−1,+1}, i = 1 , 2 , ⋅ ⋅ ⋅ , N i=1,2,⋅⋅⋅,N i=1,2,⋅⋅⋅,N,精度 ε ε ε。
输出:近似解
α
∗
\alpha^{*}
α∗
算法描述:
- 取初始值 α 0 \alpha^{0} α0,令 K = 0 K=0 K=0
- 选取优化变量 a 1 k , a 2 k a^{k}_{1} , a^{k}_{2} a1k,a2k , 针对优化问题,求得最优解 a 1 k + 1 , a 2 k + 1 a^{k+1}_{1} , a^{k+1}_{2} a1k+1,a2k+1 更新 a k a^{k} ak 为 a k + 1 a^{k+1} ak+1 。
- 在精度条件范围内是否满足停机条件,即是否有变量违反KKT条件,如果违反了,则令k=k+1,跳转(2),否则(4)。
- 求得近似解 α ∗ = a k + 1 \alpha^{*}=a^{k+1} α∗=ak+1
计算选取变量的新值
首先计算出来的新值必须满足约束条件
∑
i
=
1
m
a
i
y
i
=
0
\sum\limits_{i = 1}^m { {a_i}{y_i} = 0}
i=1∑maiyi=0 ,那么求出来的anew2需要满足下列条件:
L
≤
α
2
n
e
w
≤
H
L
=
max
(
0
,
α
2
o
l
d
−
α
1
o
l
d
)
,
H
=
min
(
C
,
C
+
α
2
o
l
d
−
α
1
o
l
d
)
,
y
1
≠
y
2
L
=
max
(
0
,
α
2
o
l
d
+
α
1
o
l
d
−
C
)
,
H
=
min
(
C
,
α
2
o
l
d
+
α
1
o
l
d
)
,
y
1
=
y
2
\begin{array}{l} L \le \alpha_2^{new} \le H\\ L = \max (0,\alpha_2^{old} - \alpha_1^{old}),H = \min (C,C + \alpha_2^{old} - \alpha_1^{old}), \qquad {y_1} \ne {y_2}\\ L = \max (0,\alpha_2^{old} + \alpha_1^{old} - C),H = \min (C,\alpha_2^{old} + \alpha_1^{old}), \qquad {y_1} = {y_2} \end{array}
L≤α2new≤HL=max(0,α2old−α1old),H=min(C,C+α2old−α1old),y1=y2L=max(0,α2old+α1old−C),H=min(C,α2old+α1old),y1=y2
未经过裁剪的
α
2
\alpha_2
α2的解为:
a
2
n
e
w
,
u
n
c
=
a
2
o
l
d
+
y
2
(
E
1
−
E
2
)
η
η
=
K
11
+
K
22
−
2
K
12
\begin{array}{l} {a_2^{new,unc}} = {a_2^{old}} + \frac{ {y_2}({E_1}-{E_2)}}{\eta} \\ \eta = K_{11} + K_{22} - 2{K_{12}} \end{array}
a2new,unc=a2old+ηy2(E1−E2)η=K11+K22−2K12
裁剪后的解为
a
2
n
e
w
=
{
H
,
a
2
n
e
w
,
u
n
c
>
H
a
2
n
e
w
,
u
n
c
,
L
≤
a
2
n
e
w
,
u
n
c
≤
H
L
,
a
2
n
e
w
,
u
n
c
<
L
a_2^{new} = \left\{ \begin{array}{l} H,a_2^{new,unc} > H\\ a_2^{new,unc},L \le a_2^{new,unc} \le H\\ L,a_2^{new,unc} < L \end{array} \right.
a2new=⎩⎨⎧H,a2new,unc>Ha2new,unc,L≤a2new,unc≤HL,a2new,unc<L
第一个变量的解为
a
1
n
e
w
=
a
1
o
l
d
+
y
1
y
2
(
a
2
o
l
d
−
a
2
n
e
w
)
a_1^{new} = a_1^{old} + {y_1}{y_2}(a_2^{old} - a_2^{new})
a1new=a1old+y1y2(a2old−a2new)
还需要更新
b
b
b:
b
1
n
e
w
=
−
E
1
−
y
1
K
11
(
a
1
n
e
w
−
a
1
o
l
d
)
−
y
2
K
21
(
a
2
n
e
w
−
a
2
o
l
d
)
+
b
o
l
d
b
2
n
e
w
=
−
E
2
−
y
1
K
12
(
a
1
n
e
w
−
a
1
o
l
d
)
−
y
2
K
22
(
a
2
n
e
w
−
a
2
o
l
d
)
+
b
o
l
d
\begin{array}{l} b_1^{new} = - {E_1} - {y_1}{K_{11}}(a_1^{new} - a_1^{old}) - {y_2}{K_{21}}(a_2^{new} - a_2^{old}) + {b^{old}}\\ b_2^{new} = - {E_2} - {y_1}{K_{12}}(a_1^{new} - a_1^{old}) - {y_2}{K_{22}}(a_2^{new} - a_2^{old}) + {b^{old}} \end{array}
b1new=−E1−y1K11(a1new−a1old)−y2K21(a2new−a2old)+boldb2new=−E2−y1K12(a1new−a1old)−y2K22(a2new−a2old)+bold
在更新
b
b
b 时
b
n
e
w
=
{
b
1
n
e
w
0
<
a
1
n
e
w
<
C
b
2
n
e
w
0
<
a
2
n
e
w
<
C
b
1
n
e
w
+
b
2
n
e
w
2
o
t
h
e
r
s
b^{new}=\left\{\begin{matrix} b_1^{new}\quad 0 \lt a_1^{new} \lt C \\ b_2^{new}\quad 0 \lt a_2^{new} \lt C \\ \frac{b_1^{new} + b_2^{new}}{2} \quad others\end{matrix}\right.
bnew=⎩⎨⎧b1new0<a1new<Cb2new0<a2new<C2b1new+b2newothers
由于缓存了
E
i
E_i
Ei,所以需要计算新的
E
i
E_i
Ei:
E
i
n
e
w
=
∑
j
=
1
m
y
j
a
j
K
(
x
i
,
x
j
)
+
b
n
e
w
−
y
i
E_i^{new} = \sum\limits_{j=1}^m { {y_j}{a_j}K({x_i},{x_j})} + b^{new} - y_i
Einew=j=1∑myjajK(xi,xj)+bnew−yi