给定训练样本集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } , y i ∈ { − 1 , 1 } D=\{(x_1, y_1), (x_2, y_2), ..., (x_m, y_m)\},y_i \in \{-1, 1\} D={(x1,y1),(x2,y2),...,(xm,ym)},yi∈{−1,1}。
y只是一个label,标记{-1,1}来区分正类和负类。
当然也可以标记为{0,300},只不过此时分正类的标准变为(y-150)*f(x)>0。
超平面方程
f ( x ) = w T x + b f(x) = w^Tx+b f(x)=wTx+b
- f(x)=0,超平面上的点。
- f(x)>0,分类为1的点。
- f(x)<0,分类为-1的点。
任意点到超平面的距离为
∣
w
T
x
i
+
b
∣
∣
∣
w
∣
∣
\frac{|w^Tx_i+b|}{||w||}
∣∣w∣∣∣wTxi+b∣
实际上,对于
f
(
x
)
=
w
T
x
+
b
f(x)=w^Tx+b
f(x)=wTx+b这个超平面,我们可以等比例的放大/缩小w和b,其分类结果不变。因此,我们可以约束距离超平面最近的点满足
w
T
x
i
+
b
=
±
1
,
w^Tx_i+b=±1,
wTxi+b=±1,
即
y
i
(
w
T
x
i
+
b
)
≥
1
y_i(w^Tx_i+b) \geq 1
yi(wTxi+b)≥1
也可以用函数间隔和几何间隔来理解。
因此,为了使超平面的抗扰动效果最好,即超平面离两边的数据间隔最大,目标为
max
2
∣
∣
w
∣
∣
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
\max \frac{2}{||w||} \\ s.t. \quad y_i(w^Tx_i+b) \geq 1
max∣∣w∣∣2s.t.yi(wTxi+b)≥1
SVM的基本型
min 1 2 ∣ ∣ w ∣ ∣ 2 s . t . y i ( w T x i + b ) ≥ 1 \min \frac{1}{2}||w||^2 \\ s.t. \quad y_i(w^Tx_i+b) \geq 1 min21∣∣w∣∣2s.t.yi(wTxi+b)≥1
凸二次规划
这个问题可以用现成的QP (Quadratic Programming) 优化包进行求解。
但若利用“对偶问题
”来求解会更高效;而且可以自然地引入核函数,进而推广到非线性分类问题。
目标函数 | 约束条件 | 问题分类 |
---|---|---|
线性函数 | 线性约束 | 线性规划 |
二次函数 | 线性约束 | 二次规划 |
非线性函数 | 非线性约束 | 非线性规划 |
对偶问题
拉格朗日乘子法
用于解决有等式约束的优化问题。
min
f
s
.
t
.
g
=
0
\min f \\ s.t. g=0
minfs.t.g=0
引入
λ
≥
0
\lambda \geq 0
λ≥0,定义
F
=
f
+
λ
g
F=f+\lambda g
F=f+λg,求解
{
δ
F
δ
x
i
=
0
δ
F
δ
λ
=
0
\begin{cases} \frac{\delta F}{\delta x_i} &= 0 \\ \frac{\delta F}{\delta \lambda} &= 0 \end{cases}
{δxiδFδλδF=0=0
KKT条件
用于解决有不等式约束的优化问题。
min
f
s
.
t
.
g
=
0
,
h
≤
0
\min f \\ s.t. g=0,h\leq 0
minfs.t.g=0,h≤0
引入
λ
,
μ
≥
0
\lambda, \mu \geq 0
λ,μ≥0,定义
L
=
f
+
λ
g
+
μ
h
L=f+\lambda g + \mu h
L=f+λg+μh,求解
{
δ
L
δ
x
i
=
0
δ
L
δ
λ
=
0
∑
μ
⋅
h
=
0
\begin{cases} \frac{\delta L}{\delta x_i} &= 0 \\ \frac{\delta L}{\delta \lambda} &= 0 \\ \sum \mu·h &= 0 \end{cases}
⎩
⎨
⎧δxiδLδλδL∑μ⋅h=0=0=0
SVM的拉格朗日函数
L ( w , b , α ) = 1 2 ∥ w ∥ 2 + ∑ i = 1 m α i ( 1 − y i ( w T x i + b ) ) L(w, b, \alpha)=\frac{1}{2}\|w\|^{2}+\sum_{i=1}^{m} \alpha_{i}\left(1-y_{i}\left(w^{T} x_{i}+b\right)\right) L(w,b,α)=21∥w∥2+i=1∑mαi(1−yi(wTxi+b))
目标函数表示为
min
w
,
b
max
α
i
≥
0
L
\min_{w,b} \max_{\alpha_i \geq 0} L
w,bminαi≥0maxL
- y i ( w T x i + b ) < 1 y_i(w^Tx_i+b)<1 yi(wTxi+b)<1,即不满足约束时, max L → ∞ \max L \rightarrow \infin maxL→∞。
- y i ( w T x i + b ) ≥ 1 y_i(w^Tx_i + b) \geq 1 yi(wTxi+b)≥1,即满足约束时, max L = 1 2 ∣ ∣ w ∣ ∣ 2 \max L = \frac{1}{2}||w||^2 maxL=21∣∣w∣∣2。
因此转化后的问题包含了原优化问题。
进一步,当满足KKT条件时,我们得到SVM的对偶问题:
max
α
i
≥
0
min
w
,
b
L
\max_{\alpha_i \geq 0} \min_{w,b} L
αi≥0maxw,bminL
因此,下面我们计算KKT条件约束。
{
δ
L
δ
w
=
0
δ
L
δ
b
=
0
∑
α
i
(
1
−
y
i
(
w
T
x
i
+
b
)
)
=
0
\begin{cases} \frac{\delta L}{\delta w} &= 0 \\ \frac{\delta L}{\delta b} &= 0 \\ \sum \alpha_i(1-y_i(w^Tx_i+b)) &= 0 \end{cases}
⎩
⎨
⎧δwδLδbδL∑αi(1−yi(wTxi+b))=0=0=0
化简可得
{
w
=
∑
α
i
y
i
x
i
0
=
∑
α
i
y
i
\begin{cases} w &= \sum \alpha_iy_ix_i \\ 0 &= \sum \alpha_iy_i \end{cases}
{w0=∑αiyixi=∑αiyi
代入L可得
max
α
i
≥
0
{
∑
i
=
1
m
α
i
−
1
2
∑
i
,
j
=
1
m
α
i
α
j
y
i
y
j
x
i
T
x
j
}
\max_{\alpha_i \geq 0}\{\sum_{i=1}^{m} \alpha_{i}-\frac{1}{2} \sum_{i, j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} x_{i}^{T} x_{j}\}
αi≥0max{i=1∑mαi−21i,j=1∑mαiαjyiyjxiTxj}
且满足约束
{
α
i
≥
0
1
−
y
i
(
w
T
x
i
+
b
)
≤
0
α
i
(
1
−
y
i
(
w
T
x
i
+
b
)
)
=
0
\begin{cases} \alpha_i &\geq 0 \\ 1-y_i(w^Tx_i+b) &\leq 0 \\ \alpha_i(1-y_i(w^Tx_i+b)) &= 0 \end{cases}
⎩
⎨
⎧αi1−yi(wTxi+b)αi(1−yi(wTxi+b))≥0≤0=0
- α i = 0 \alpha_i=0 αi=0, α i ( 1 − y i ( w T x i + b ) ) = 0 \alpha_i(1-y_i(w^Tx_i+b))=0 αi(1−yi(wTxi+b))=0必然成立;
- α i > 0 \alpha_i>0 αi>0,则要求 1 − y i ( w T x i + b ) = 0 1-y_i(w^Tx_i+b)=0 1−yi(wTxi+b)=0,此时 α i \alpha_i αi对应的向量在最大间隔的边缘上,即是支持向量。
面对线性不可分问题,可加入松弛因子 ϵ i ≥ 0 \epsilon_i \geq 0 ϵi≥0。
原始目标函数变为
min 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ ϵ i \min \frac{1}{2}||w||^2+C\sum\epsilon_i min21∣∣w∣∣2+C∑ϵi
经KKT条件转变过的对偶问题的目标函数仍为
max α i ≥ 0 { ∑ i = 1 m α i − 1 2 ∑ i , j = 1 m α i α j y i y j x i T x j } \max_{\alpha_i \geq 0}\{\sum_{i=1}^{m} \alpha_{i}-\frac{1}{2} \sum_{i, j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} x_{i}^{T} x_{j}\} αi≥0max{i=1∑mαi−21i,j=1∑mαiαjyiyjxiTxj}
同时第一个约束条件变为 0 < α i < C 0<\alpha_i<C 0<αi<C。
如何求解 α \alpha α
SMO算法
SMO 算法的基本思想是将原问题求解 ( α 1 , α 2 , . . . , α N ) (\alpha_1, \alpha_2,..., \alpha_N) (α1,α2,...,αN)这 N 个参数的问题分解成多个子二次规划的问题分别求解,每个子问题只需要求解其中的 2 个参数,每次通过启发式选择两个变量进行优化,不断循环,直到达到函数的最优值。
为什么不能仅将一个作为参数?因为 α i \alpha_i αi之间满足约束 ∑ α i y i = 0 \sum\alpha_iy_i=0 ∑αiyi=0,一旦其他 α \alpha α确定,最后剩下的 α \alpha α也将唯一确定。
化简对偶问题的目标函数
将
α
1
,
α
2
\alpha_1, \alpha_2
α1,α2视作变量,
min
Ψ
(
α
1
,
α
2
)
=
1
2
K
11
α
1
2
y
1
2
+
1
2
K
22
α
2
2
y
2
2
+
1
2
K
12
α
1
α
2
y
1
y
2
+
1
2
K
21
α
2
α
1
y
2
y
1
−
(
α
1
+
α
2
)
+
y
1
v
1
α
1
+
y
2
v
2
α
2
+
P
\begin{aligned} \min \Psi\left(\alpha_{1}, \alpha_{2}\right)=& \frac{1}{2} K_{11} \alpha_{1}^{2} y_{1}^{2}+\frac{1}{2} K_{22} \alpha_{2}^{2} y_{2}^{2} \\ &+\frac{1}{2} K_{12} \alpha_{1} \alpha_{2} y_{1} y_{2}+\frac{1}{2} K_{21} \alpha_{2} \alpha_{1} y_{2} y_{1} \\ &-\left(\alpha_{1}+\alpha_{2}\right)+y_{1} v_{1} \alpha_{1}+y_{2} v_{2} \alpha_{2}+P \end{aligned}
minΨ(α1,α2)=21K11α12y12+21K22α22y22+21K12α1α2y1y2+21K21α2α1y2y1−(α1+α2)+y1v1α1+y2v2α2+P
由于,
y
2
=
1
,
K
i
j
=
K
j
i
y^2=1, K_{ij}=K_{ji}
y2=1,Kij=Kji,化简可得:
min
Ψ
(
α
1
,
α
2
)
=
1
2
K
11
α
1
2
+
1
2
K
22
α
2
2
+
K
12
α
1
α
2
y
1
y
2
−
(
α
1
+
α
2
)
+
y
1
v
1
α
1
+
y
2
v
2
α
2
+
P
\begin{aligned} \min \Psi\left(\alpha_{1}, \alpha_{2}\right)=& \frac{1}{2} K_{11} \alpha_{1}^{2}+\frac{1}{2} K_{22} \alpha_{2}^{2}+K_{12} \alpha_{1} \alpha_{2} y_{1} y_{2} \\ &-\left(\alpha_{1}+\alpha_{2}\right)+y_{1} v_{1} \alpha_{1}+y_{2} v_{2} \alpha_{2}+P \end{aligned}
minΨ(α1,α2)=21K11α12+21K22α22+K12α1α2y1y2−(α1+α2)+y1v1α1+y2v2α2+P
其中,
K
i
j
K_{ij}
Kij为核函数,
v
i
=
∑
j
=
3
N
α
j
y
j
K
i
j
=
0
v_{i}=\sum_{j=3}^{N} \alpha_{j} y_{j} K_{i j}=0
vi=∑j=3NαjyjKij=0,
P
P
P为常数。
用 α 2 表示 α 1 \alpha_2表示\alpha_1 α2表示α1
由
∑
α
i
y
i
=
0
∑\alpha_iy_i=0
∑αiyi=0 得:
α
1
y
1
+
α
2
y
2
=
−
∑
i
=
3
N
α
i
y
i
=
ζ
\alpha_{1} y_{1}+\alpha_{2} y_{2}=-\sum_{i=3}^{N} \alpha_{i} y_{i}=\zeta
α1y1+α2y2=−i=3∑Nαiyi=ζ
等式两边同乘
y
1
y_1
y1(
y
i
2
=
1
y_i^2=1
yi2=1)可得:
α
1
=
(
ζ
−
y
2
α
2
)
y
1
\alpha_{1}=\left(\zeta-y_{2} \alpha_{2}\right) y_{1}
α1=(ζ−y2α2)y1
代入目标函数消去
α
1
\alpha_1
α1可得:
Ψ
(
α
2
)
=
1
2
K
11
(
ζ
−
α
2
y
2
)
2
y
1
2
+
1
2
K
22
α
2
2
+
K
12
(
ζ
−
α
2
y
2
)
α
2
y
1
2
y
2
−
(
ζ
−
α
2
y
2
)
y
1
−
α
2
+
v
1
(
ζ
−
α
2
y
2
)
y
1
2
+
y
2
v
2
α
2
+
P
\begin{aligned} \Psi\left(\alpha_{2}\right)=& \frac{1}{2} K_{11}\left(\zeta-\alpha_{2} y_{2}\right)^{2} y_{1}^{2}+\frac{1}{2} K_{22} \alpha_{2}^{2}+K_{12}\left(\zeta-\alpha_{2} y_{2}\right) \alpha_{2} y_{1}^{2} y_{2} \\ &-\left(\zeta-\alpha_{2} y_{2}\right) y_{1}-\alpha_{2}+v_{1}\left(\zeta-\alpha_{2} y_{2}\right) y_{1}^{2}+y_{2} v_{2} \alpha_{2}+P \end{aligned}
Ψ(α2)=21K11(ζ−α2y2)2y12+21K22α22+K12(ζ−α2y2)α2y12y2−(ζ−α2y2)y1−α2+v1(ζ−α2y2)y12+y2v2α2+P
对 α 2 \alpha_2 α2求极值
∂ Ψ ( α 2 ) ∂ α 2 = ( K 11 + K 22 − 2 K 12 ) α 2 − K 11 ζ y 2 + K 12 ζ y 2 + y 1 y 2 − 1 − v 1 y 2 + v 2 y 2 = 0 \begin{aligned} \frac{\partial \Psi\left(\alpha_{2}\right)}{\partial \alpha_{2}}=&\left(K_{11}+K_{22}-2 K_{12}\right) \alpha_{2}-K_{11} \zeta y_{2}+K_{12} \zeta y_{2} +y_{1} y_{2}-1-v_{1} y_{2}+v_{2} y_{2} = 0 \end{aligned} ∂α2∂Ψ(α2)=(K11+K22−2K12)α2−K11ζy2+K12ζy2+y1y2−1−v1y2+v2y2=0
SMO 的思想是一个迭代求解的思想,所以必须构造出
α
n
e
w
\alpha_{new}
αnew 与
α
o
l
d
\alpha_{old}
αold 之间的关系:
α
1
n
e
w
y
1
+
α
2
new
y
2
=
α
1
old
y
1
+
α
2
old
y
2
=
ζ
\alpha_{1}^{n e w} y_{1}+\alpha_{2}^{\text {new }} y_{2}=\alpha_{1}^{\text {old }} y_{1}+\alpha_{2}^{\text {old }} y_{2}=\zeta
α1newy1+α2new y2=α1old y1+α2old y2=ζ
最终化简可得
α
2
new
=
α
2
o
l
d
+
y
2
(
E
1
−
E
2
)
η
\alpha_{2}^{\text {new }}=\alpha_{2}^{o l d}+\frac{y_{2}\left(E_{1}-E_{2}\right)}{\eta}
α2new =α2old+ηy2(E1−E2)
其中,
- α n e w \alpha_{new} αnew表示本次迭代的计算值, α o l d \alpha_{old} αold为上次的迭代值。
- E i = f ( x i ) − y i E_{i}=f\left(x_{i}\right)-y_{i} Ei=f(xi)−yi 表示预测值与真实值的差。
- η = K 11 + K 22 − 2 K 12 \eta=K_{11}+K_{22}-2 K_{12} η=K11+K22−2K12。
α 2 n e w \alpha_2^{new} α2new的约束
上面通过求导的方式计算出的
α
n
e
w
\alpha_{new}
αnew 是未经过约束的,即计算出来的值可能不满足约定的条件
{
0
≤
α
i
≤
C
α
1
y
1
+
α
2
y
2
=
ζ
\left\{\begin{array}{l} 0 \leq \alpha_{i} \leq C \\ \alpha_{1} y_{1}+\alpha_{2} y_{2}=\zeta \end{array}\right.
{0≤αi≤Cα1y1+α2y2=ζ
这两个约束条件可以在二维平面上进行直观的展示
α n e w \alpha_{new} αnew 必须要在方框内和斜线上取值,其最大最小值一定是其交点,所以有 L ≤ α 2 new ≤ H L \leq \alpha_{2}^{\text {new }} \leq H L≤α2new ≤H。
- 当 y 1 ≠ y 2 y_{1} \neq y_{2} y1=y2 时, L = max ( 0 , α 2 old − α 1 old ) ; H = min ( C , C + α 2 old − α 1 old ) L=\max \left(0, \alpha_{2}^{\text {old }}-\alpha_{1}^{\text {old }}\right) ; H=\min \left(C, C+\alpha_{2}^{\text {old }}-\alpha_{1}^{\text {old }}\right) L=max(0,α2old −α1old );H=min(C,C+α2old −α1old )
- 当 y 1 = y 2 y_{1}=y_{2} y1=y2 时, L = max ( 0 , α 1 old + α 2 old − C ) ; H = min ( C , α 2 old + α 1 old ) L=\max \left(0, \alpha_{1}^{\text {old }}+\alpha_{2}^{\text {old }}-C\right) ; H=\min \left(C, \alpha_{2}^{\text {old }}+\alpha_{1}^{\text {old }}\right) L=max(0,α1old +α2old −C);H=min(C,α2old +α1old )
α 2 new = { H , α 2 n e w , u n c > H α 2 new , u n c , L ≤ α 2 new , u n c ≤ H L , α 2 new , u n c < L \alpha_{2}^{\text {new }}=\left\{\begin{array}{l} H, \alpha_{2}^{n e w, u n c}>H \\ \alpha_{2}^{\text {new }, u n c}, L \leq \alpha_{2}^{\text {new }, u n c} \leq H \\ L, \alpha_{2}^{\text {new }, u n c}<L \end{array}\right. α2new =⎩ ⎨ ⎧H,α2new,unc>Hα2new ,unc,L≤α2new ,unc≤HL,α2new ,unc<L
其中, α n e w , u n c \alpha_{new,unc} αnew,unc 表示 α n e w \alpha_{new} αnew 未经约束的结果(上述通过求导的结果)。
求解 α 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 ) \alpha_{1}^{n e w}=\alpha_{1}^{o l d}+y_{1} y_{2}\left(\alpha_{2}^{o l d}-\alpha_{2}^{n e w}\right) α1new=α1old+y1y2(α2old−α2new)
SMO变量的选取
第一个变量的选择称为外循环,首先遍历整个样本然后选择违反 KKT 条件的
α
i
\alpha_i
αi作为第一个变量,其 KKT 条件如下:
α
i
=
0
⇒
y
i
(
w
T
x
i
+
b
)
≥
1
α
i
=
C
⇒
y
i
(
w
T
x
i
+
b
)
≤
1
0
<
α
i
<
C
⇒
y
i
(
w
T
x
i
+
b
)
=
1
\begin{array}{r} \alpha_{i}=0 \Rightarrow y_{i}\left(w^{T} x_{i}+b\right) \geq 1 \\ \alpha_{i}=C \Rightarrow y_{i}\left(w^{T} x_{i}+b\right) \leq 1 \\ 0<\alpha_{i}<C \Rightarrow y_{i}\left(w^{T} x_{i}+b\right)=1 \end{array}
αi=0⇒yi(wTxi+b)≥1αi=C⇒yi(wTxi+b)≤10<αi<C⇒yi(wTxi+b)=1
一般而言,首选选择违反 0 < α i < C ⇒ y i ( w T x i + b ) = 1 0<\alpha_i<C⇒y_i(w^Tx_i+b)=1 0<αi<C⇒yi(wTxi+b)=1 这个条件点。
如果支持向量都满足 KKT 条件,再选择 α i = 0 ⇒ y i ( w T x i + b ) ≥ 1 \alpha_i=0⇒y_i(w^Tx_i+b)≥1 αi=0⇒yi(wTxi+b)≥1 和 α i = C ⇒ y i ( w T x i + b ) ≤ 1 \alpha_i=C⇒y_i(w^Tx_i+b)≤1 αi=C⇒yi(wTxi+b)≤1 这两个条件点。
第二个变量选择的过程为内循环,选择 ∣ E 1 − E 2 ∣ |E_1−E_2| ∣E1−E2∣ 取得最大值的 α 2 \alpha_2 α2。
如果内循环中找不到点能够使目标函数有足够的下降,则可遍历支持向量来做 α 2 \alpha_2 α2;
如果所有支持向量均不能使得目标函数有足够的下降,则跳出循环,重新选择 α 1 \alpha_1 α1。
SMO 阈值 b 的计算
- 若 0 < α 1 new < C 0<\alpha_{1}^{\text {new }}<C 0<α1new <C, 则
由
y
1
=
(
ω
T
x
1
+
b
)
=
∑
i
=
1
N
K
i
1
α
i
y
i
+
b
y_{1}=\left(\omega^{T} x_{1}+b\right)=\sum_{i=1}^{N} K_{i 1} \alpha_{i} y_{i}+b
y1=(ωTx1+b)=∑i=1NKi1αiyi+b 得:
b
1
n
e
w
=
y
1
−
∑
i
=
3
N
K
i
1
α
i
y
i
−
K
11
α
1
n
e
w
y
1
−
K
21
α
2
n
e
w
y
2
b_{1}^{n e w}=y_{1}-\sum_{i=3}^{N} K_{i 1} \alpha_{i} y_{i}-K_{11} \alpha_{1}^{n e w} y_{1}-K_{21} \alpha_{2}^{n e w} y_{2}
b1new=y1−i=3∑NKi1αiyi−K11α1newy1−K21α2newy2
而
y
1
−
∑
i
=
3
N
K
i
1
α
i
y
i
=
y
1
−
f
(
x
1
)
+
K
11
α
1
o
l
d
y
1
+
K
21
α
2
o
l
d
y
2
+
b
o
l
d
y_{1}-\sum_{i=3}^{N} K_{i 1} \alpha_{i} y_{i}=y_{1}-f\left(x_{1}\right)+K_{11} \alpha_{1}^{o l d} y_{1}+K_{21} \alpha_{2}^{o l d} y_{2}+b^{o l d}
y1−i=3∑NKi1αiyi=y1−f(x1)+K11α1oldy1+K21α2oldy2+bold
代入可得:
b
1
n
e
w
=
y
1
−
f
(
x
1
)
+
K
11
α
1
old
y
1
+
K
21
α
2
old
y
2
+
b
old
−
α
1
new
y
1
K
11
−
α
2
new
y
2
K
21
\begin{gathered} b_{1}^{n e w}=y_{1}-f\left(x_{1}\right)+K_{11} \alpha_{1}^{\text {old }} y_{1}+K_{21} \alpha_{2}^{\text {old }} y_{2}+b^{\text {old }} -\alpha_{1}^{\text {new }} y_{1} K_{11}-\alpha_{2}^{\text {new }} y_{2} K_{21} \end{gathered}
b1new=y1−f(x1)+K11α1old y1+K21α2old y2+bold −α1new y1K11−α2new y2K21
由
E
i
=
f
(
x
i
)
−
y
i
E_{i}=f\left(x_{i}\right)-y_{i}
Ei=f(xi)−yi 化简可得:
b
new
=
b
1
new
=
−
E
1
−
y
1
K
11
(
α
1
n
e
w
−
α
1
o
l
d
)
−
y
2
K
21
(
α
2
new
−
α
2
old
)
+
b
o
l
d
b^{\text {new }}=b_{1}^{\text {new }}=-E_{1}-y_{1} K_{11}\left(\alpha_{1}^{n e w}-\alpha_{1}^{o l d}\right)-y_{2} K_{21}\left(\alpha_{2}^{\text {new }}-\alpha_{2}^{\text {old }}\right)+b^{o l d}
bnew =b1new =−E1−y1K11(α1new−α1old)−y2K21(α2new −α2old )+bold
-
若 0 < α 2 n e w < C 0<\alpha_{2}^{n e w}<C 0<α2new<C, 则
b new = b 2 new = − E 2 − y 1 K 12 ( α 1 new − α 1 old ) − y 2 K 22 ( α 2 new − α 2 old ) + b o l d b^{\text {new }}=b_{2}^{\text {new }}=-E_{2}-y_{1} K_{12}\left(\alpha_{1}^{\text {new }}-\alpha_{1}^{\text {old }}\right)-y_{2} K_{22}\left(\alpha_{2}^{\text {new }}-\alpha_{2}^{\text {old }}\right)+b^{o l d} bnew =b2new =−E2−y1K12(α1new −α1old )−y2K22(α2new −α2old )+bold -
若同时满足 0 < α i n e w < C 0<\alpha_{i}^{n e w}<C 0<αinew<C, 则
b n e w = b 1 n e w = b 2 n e w b^{n e w}=b_{1}^{n e w}=b_{2}^{n e w} bnew=b1new=b2new -
若不同时满足 0 < α i n e w < C 0<\alpha_{i}^{n e w}<C 0<αinew<C, 则
b new = b 1 new + b 2 new 2 b^{\text {new }}=\frac{b_{1}^{\text {new }}+b_{2}^{\text {new }}}{2} bnew =2b1new +b2new
总结
求解步骤:
- 取初值 α = 0 , t = 0 \alpha=0, t=0 α=0,t=0
- 选择变量 α 1 t \alpha_{1}^{t} α1t 和 α 2 t \alpha_{2}^{t} α2t, 根据公式求解出 α 2 t + 1 \alpha_{2}^{t+1} α2t+1
- 利用 α 1 t + 1 \alpha_{1}^{t+1} α1t+1 和 α 1 t , α 2 t , α 2 t + 1 \alpha_{1}^{t}, \alpha_{2}^{t}, \alpha_{2}^{t+1} α1t,α2t,α2t+1 的关系求解出 α 1 t + 1 \alpha_{1}^{t+1} α1t+1
- 通过 α 1 t + 1 \alpha_{1}^{t+1} α1t+1 和 α 2 t + 1 \alpha_{2}^{t+1} α2t+1 的满足的 K K T \mathrm{KKT} KKT 条件关系求出 b t + 1 b^{t+1} bt+1
- 检查 E i E_{i} Ei 是否在允许的精度 e e e 之内
- 检查求出的 α 1 t + 1 \alpha_{1}^{t+1} α1t+1 和 α 2 t + 1 \alpha_{2}^{t+1} α2t+1 是否满足 K K T \mathrm{KKT} KKT 条件
- 如果上面两个条件都满足则返回 α 1 t + 1 \alpha_{1}^{t+1} α1t+1 和 α 2 t + 1 \alpha_{2}^{t+1} α2t+1, 否则跳转到第 2 步
参考文献: