一、序列最小最优化算法
-
序列最小最优化(SMO)算法是用来解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 ) \min_α(\frac{1}{2}∑_{i=1}^N∑_{j=1}^N α_i α_j y_i y_j K(x_i ,x_j)-∑_{i=1}^Nα_i ) αmin(21i=1∑Nj=1∑NαiαjyiyjK(xi,xj)−i=1∑Nαi) s . t . ∑ i = 1 N α i y i = 0 0 ≤ α i ≤ C , i = 1 , 2 , … , N s.t. \qquad∑_{i=1}^N α_i y_i =0 \\0≤α_i≤C ,i=1,2,…,N s.t.i=1∑Nαiyi=00≤αi≤C,i=1,2,…,N
-
这里变量是 α i α_i αi,一个变量 α i α_i αi对应于一个样本点 ( x i , y i ) (x_i,y_i) (xi,yi);变量的总数等于训练样本容量 N N N.
-
KKT条件是该最优化问题的充分必要条件,即最优解 α ∗ α^* α∗一定满足KKT条件,满足KKT条件的 α α α一定是最优解。KKT条件如下: ∇ w L ( w , b , ξ , α , μ ) = w − ∑ i = 1 N α i y i x i = 0 ∇_w L(w,b,ξ,α,μ )=w-∑_{i=1}^Nα_iy_i x_i =0 ∇wL(w,b,ξ,α,μ)=w−i=1∑Nαiyixi=0 ∇ b L ( w , b , ξ , α , μ ) = − ∑ i = 1 N α i y i = 0 ∇_b L(w,b,ξ,α,μ )=-∑_{i=1}^Nα_i y_i =0 ∇bL(w,b,ξ,α,μ)=−i=1∑Nαiyi=0 ∇ ( ξ i ) L ( w , b , ξ , α , μ ) = C − α i − μ i = 0 ∇_(ξ_i ) L(w,b,ξ,α,μ)=C-α_i-μ_i=0 ∇(ξi)L(w,b,ξ,α,μ)=C−αi−μi=0 y i ( w ∗ x i + b ) − 1 + ξ i ≥ 0 y_i (w*x_i+b )-1+ξ_i≥0 yi(w∗xi+b)−1+ξi≥0 α i ≥ 0 α_i≥0 αi≥0 α i ( y i ( w ∗ x i + b ) − 1 + ξ i ) = 0 α_i (y_i (w*x_i+b )-1+ξ_i )=0 αi(yi(w∗xi+b)−1+ξi)=0 ξ i ≥ 0 ξ_i≥0 ξi≥0 μ i ≥ 0 μ_i≥0 μi≥0 μ i ξ i = 0 i = 1 , 2 , … , N μ_i ξ_i=0\qquad i=1,2,…,N μiξi=0i=1,2,…,N
-
SMO算法是一种启发式算法,其基本思路是:
- 如果所有变量的解都满足KKT条件,那么这个解就是最优解。
- 否则,选择两个变量,固定其他变量,针对这两个变量构建一个二次规划问题(称为原问题的子问题).这个二次规划问题关于这两个变量的解应该更接近原始二次规划问题的解,即使得原始二次规划问题的目标函数值变得更小.
-
重要的是,子问题可以通过解析方法求解,这样就可以大大提高整个算法的计算速度.
-
子问题两个变量的选取方式:一个是违反KKT条件最严重的那一个,另一个是根据第一个变量选择跟新最大的那个,以假设模型收敛.
-
因此SMO算法将原问题不断分解为子问题并对子问题求解,进而达到求解原问题的目的.
-
注意,子问题的两个变量中只有一个是自由变量。假设 α 1 , α 2 α_1,α_2 α1,α2为两个变量, α 3 , α 4 , … , α N α_3,α_4,…,α_N α3,α4,…,αN固定,那么由等式约束: ∑ i = 1 N α i y i = 0 ∑_{i=1}^N α_i y_i =0 i=1∑Nαiyi=0可知: α 1 = − y 1 ∑ i = 2 N α i y i α_1=-y_1 ∑_{i=2}^Nα_i y_i α1=−y1i=2∑Nαiyi所以子问题是一个一元函数优化问题.
-
整个SMO算法包括两个部分:求解子问题和选择子问题中的两个变量
二、子问题的求解
-
不失一般性,假设选择的两个变量是 α 1 , α 2 α_1,α_2 α1,α2,其他变量 α i ( i = 3 , 4 , … , N ) α_i (i=3,4,…,N) αi(i=3,4,…,N)是固定的.于是SMO的最优化问题的子问题可以写成: min α 1 , α 2 W ( α 1 , α 2 ) = 1 2 K 11 α 1 2 + 1 2 K 1 1 α 2 2 + y 1 y 2 K 12 α 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 ) + B \min_{α_1,α_2 }W(α_1,α_2)=\frac{1}{2} K_{11} α_1^2+\frac{1}{2} K_11 α_2^2+y_1 y_2 K_{12} α_1 α_2+y_1 α_1 ∑_{i=3}^Ny_i α_i K_{i1} +y_2 α_2 ∑_{i=3}^Ny_i α_i K_{i2} -(α_1+α_2 )+B α1,α2minW(α1,α2)=21K11α12+21K11α22+y1y2K12α1α2+y1α1i=3∑NyiαiKi1+y2α2i=3∑NyiαiKi2−(α1+α2)+B s . t . y 1 α 1 + y 2 α 2 = − ∑ i = 3 N α i y i = ζ 0 ≤ α i ≤ C , i = 1 , 2 , … , N s.t. \qquad y_1 α_1+y_2 α_2=-∑_{i=3}^N α_i y_i =ζ \\0≤α_i≤C ,i=1,2,…,N s.t.y1α1+y2α2=−i=3∑Nαiyi=ζ0≤αi≤C,i=1,2,…,N其中其中 K i 2 = K ( x i , x j ) , B , ζ K_{i2}=K(x_i,x_j),B,ζ Ki2=K(xi,xj),B,ζ是常数
-
首先分析约束条件,由于只有两个变量 ( α 1 , α 2 ) (α_1,α_2) (α1,α2),所以约束可以用二维空间中的图形表示:
-
由上面的分析可知实质上的单变量的最优化问题,不妨考虑为变量 α 2 α_2 α2的最优化问题: α 1 = − y 1 ∑ i = 2 N α i y i = y 1 ( ζ − y 2 α 2 ) α_1=-y_1 ∑_{i=2}^Nα_i y_i =y_1 (ζ-y_2 α_2) α1=−y1i=2∑Nαiyi=y1(ζ−y2α2)
-
变量符号:初始可行解为 ( α 1 o l d , α 2 o l d ) (α_1^{old},α_2^{old}) (α1old,α2old), 最优解为 ( α 1 n e w , α 2 n e w ) (α_1^{new},α_2^{new}) (α1new,α2new),并且假设在沿着约束方向未经剪辑时 α 2 α_2 α2的最优解为 α 2 n e w , u n c α_2^{new,unc} α2new,unc.
-
由于 α i o l d α_i^{old} αiold为可行解,所以满足约束条件: ∑ i = 1 N α i o l d y i = 0 ∑_{i=1}^N α_i^{old} y_i =0 i=1∑Nαioldyi=0得: ∑ i = 1 N α i o l d y i = y 1 α 1 o l d + y 2 α 2 o l d − ζ = 0 ∑_{i=1}^N α_i^{old} y_i =y_1 α_1^{old}+y_2 α_2^{old}-ζ=0 i=1∑Nαioldyi=y1α1old+y2α2old−ζ=0所以: y 1 α 1 o l d + y 2 α 2 o l d = ζ y_1 α_1^{old}+y_2 α_2^{old}=ζ y1α1old+y2α2old=ζ
-
最优值 α 2 n e w α_2^{new} α2new的取值范围: L ≤ α 2 n e w ≤ H L≤α_2^{new}≤H L≤α2new≤H其中 L L L与 H H H是 α 2 n e w α_2^{new} α2new所在的对角线段端点的界.
-
如果 y 1 ! = y 2 y_1!=y_2 y1!=y2:
- 取 α 1 = 0 α_1=0 α1=0得 L : L = m a x ( 0 , α 2 o l d − α 1 o l d ) L:L=max(0,α_2^{old}-α_1^{old}) L:L=max(0,α2old−α1old)
- 取 α 1 = C α_1=C α1=C得 H : L = m i n ( C , C + α 2 o l d − α 1 o l d ) H:L=min(C,C+α_2^{old}-α_1^{old}) H:L=min(C,C+α2old−α1old)
-
如果划 y 1 = y 2 y_1=y_2 y1=y2,
- 取 α 1 = C α_1=C α1=C得 L : L = m a x ( 0 , α 2 o l d + α 1 o l d − C ) L:L=max(0,α_2^{old}+α_1^{old}-C) L:L=max(0,α2old+α1old−C)
- 取
α
1
=
0
α_1=0
α1=0得
H
:
L
=
m
i
n
(
C
,
α
2
o
l
d
+
α
1
o
l
d
)
H:L=min(C,α_2^{old}+α_1^{old})
H:L=min(C,α2old+α1old)
-
首先求沿着约束直线求解 α 2 α_2 α2最优解 α 2 n e w , u n c α_2^{new,unc} α2new,unc,即先不考虑上面不等式约束;令: g ( x ) = ∑ i = 1 N α i y i K ( x i , x ) + b g(x)=∑_{i=1}^Nα_i y_i K(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 E_i=g(x_i )-y_i=(∑_{j=1}^Nα_j y_j K(x_j ,x_i)+b)-y_i Ei=g(xi)−yi=(j=1∑NαjyjK(xj,xi)+b)−yi其中 i = 1 , 2 i={1,2} i=1,2,再记: v i = ∑ j = 3 N α j y j K ( x j , x i ) = g ( x i ) − ∑ j = 1 2 α j y j K ( x j , x i ) − b i = 1 , 2 v_i=∑_{j=3}^Nα_j y_j K(x_j ,x_i)=g(x_i )-∑_{j=1}^2α_j y_j K(x_j ,x_i)-b \qquad i=1,2 vi=j=3∑NαjyjK(xj,xi)=g(xi)−j=1∑2αjyjK(xj,xi)−bi=1,2
-
目标函数可以写成: W ( α 1 , α 2 ) = 1 2 K 11 α 1 2 + 1 2 K 11 α 2 2 + y 1 y 2 K 12 α 1 α 2 + y 1 α 1 v 1 + y 2 α 2 v 2 − ( α 1 + α 2 ) + B W(α_1,α_2)=\frac{1}{2} K_{11} α_1^2+\frac{1}{2} K_{11} α_2^2+y_1 y_2 K_{12} α_1 α_2+y_1 α_1 v_1+y_2 α_2 v_2-(α_1+α_2 )+B W(α1,α2)=21K11α12+21K11α22+y1y2K12α1α2+y1α1v1+y2α2v2−(α1+α2)+B用 α 2 α_2 α2来表示 α 1 α_1 α1: α 1 = y 1 ( ζ − y 2 α 2 ) α_1=y_1 (ζ-y_2 α_2) α1=y1(ζ−y2α2) y i 2 = 1 y_i^2=1 yi2=1带入: W ( α 2 ) = 1 2 K 11 ( ζ − y 2 α 2 ) 2 + 1 2 K 11 α 2 2 + y 2 K 12 ( ζ − y 2 α 2 ) α 2 + ( ζ − y 2 α 2 ) v 1 + y 2 α 2 v 2 − ( y 1 ( ζ − y 2 α 2 ) + α 2 ) + B W(α_2 )=\frac{1}{2} K_{11} (ζ-y_2 α_2 )^2+\frac{1}{2} K_{11} α_2^2+y_2 K_{12} (ζ-y_2 α_2)α_2+(ζ-y_2 α_2)v_1+y_2 α_2 v_2-(y_1 (ζ-y_2 α_2)+α_2 )+B W(α2)=21K11(ζ−y2α2)2+21K11α22+y2K12(ζ−y2α2)α2+(ζ−y2α2)v1+y2α2v2−(y1(ζ−y2α2)+α2)+B求导: ∂ W ( α 2 ) ∂ α 2 = K 11 α 2 − y 2 ζ K 11 + K 22 α 2 + K 12 y 2 ζ − 2 K 1 2 α 2 − y 2 v 1 + y 2 v 2 − 1 + y 1 y 2 \frac{∂W(α_2 )}{∂α_2 }=K_{11} α_2-y_2 ζK_{11}+K_{22} α_2+K_{12} y_2 ζ-2K_12 α_2-y_2 v_1+y_2 v_2-1+y_1 y_2 ∂α2∂W(α2)=K11α2−y2ζK11+K22α2+K12y2ζ−2K12α2−y2v1+y2v2−1+y1y2令其为0,得到: ( K 11 + K 22 α 2 − 2 K 12 ) α 2 = y 2 ( v 1 − v 2 + y 2 − y 1 + ζ K 11 − ζ K 12 ) (K_{11}+K_{22} α_2-2K_{12} ) α_2=y_2 (v_1-v_2+y_2-y_1+ζK_{11}-ζK_{12} ) (K11+K22α2−2K12)α2=y2(v1−v2+y2−y1+ζK11−ζK12) = y 2 ( y 2 − y 1 + ζ K 11 − ζ K 12 + ( g ( x 1 ) − ∑ j = 1 2 α j o l d y j K 1 j − b ) − ( g ( x 2 ) − ∑ j = 1 2 α j o l d y j K 2 j − b ) ) =y_2 (y_2-y_1+ζK_{11}-ζK_{12}+(g(x_1 )-∑_{j=1}^2α_j^{old} y_j K_{1j} -b )-(g(x_2 )-∑_{j=1}^2α_j^{old} y_j K_{2j} -b )) =y2(y2−y1+ζK11−ζK12+(g(x1)−j=1∑2αjoldyjK1j−b)−(g(x2)−j=1∑2αjoldyjK2j−b)) = y 2 ( y 2 − y 1 + ζ K 11 − ζ K 12 + g ( x 1 ) − g ( x 2 ) ) =y_2 (y_2-y_1+ζK_{11}-ζK_{12}+g(x_1 )-g(x_2 )) =y2(y2−y1+ζK11−ζK12+g(x1)−g(x2))将 ζ = y 1 α 1 o l d + y 2 α 2 o l d ζ=y_1 α_1^{old}+y_2 α_2^{old} ζ=y1α1old+y2α2old带入: ( K 11 + K 22 α 2 − 2 K 12 ) α 2 = 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 ) (K_{11}+K_{22} α_2-2K_{12} ) α_2=y_2 (y_2-y_1+g(x_1 )-g(x_2 )+(K_{11}+K_{22}-2K_{12})α_2^{old} y_2 ) (K11+K22α2−2K12)α2=y2(y2−y1+g(x1)−g(x2)+(K11+K22−2K12)α2oldy2) ( K 11 + K 22 α 2 − 2 K 12 ) α 2 = y 2 ( E 1 − E 2 ) + ( K 11 + K 22 − 2 K 12 ) α 2 o l d (K_{11}+K_{22} α_2-2K_{12} ) α_2=y_2 (E_1-E_2 )+(K_{11}+K_{22}-2K_{12})α_2^{old} (K11+K22α2−2K12)α2=y2(E1−E2)+(K11+K22−2K12)α2old α 2 n e w , u n c = α 2 o l d + y 2 ( E 1 − E 2 ) ( K 1 1 + K 2 2 α 2 − 2 K 1 2 ) α_2^{new,unc}=α_2^{old}+\frac{y_2 (E_1-E_2 )}{(K_11+K_22 α_2-2K_12 ) } α2new,unc=α2old+(K11+K22α2−2K12)y2(E1−E2)记 ( K 11 + K 22 α 2 − 2 K 12 ) = η (K_{11}+K_{22} α_2-2K_{12} )=η (K11+K22α2−2K12)=η: α 2 n e w , u n c = α 2 o l d + y 2 ( E 1 − E 2 ) η α_2^{new,unc}=α_2^{old}+\frac{y_2 (E_1-E_2 )}{η} α2new,unc=α2old+ηy2(E1−E2)
-
再将 α 2 n e w , u n c α_2^{new,unc} α2new,unc进行剪切: f ( n ) = { 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 , L > α 2 n e w , u n c f(n) = \begin{cases} H, &α_2^{new,unc}>H \\ α_2^{new,unc}, & L<α_2^{new,unc}<H\\ L ,& L>α_2^{new,unc} \end{cases} f(n)=⎩⎪⎨⎪⎧H,α2new,unc,L,α2new,unc>HL<α2new,unc<HL>α2new,unc
-
再求 α 1 n e w α_1^{new} α1new α 1 = y 1 ( ζ − y 2 α 2 ) α_1=y_1 (ζ-y_2 α_2) α1=y1(ζ−y2α2) ζ = y 1 α 1 o l d + y 2 α 2 o l d ζ=y_1 α_1^{old}+y_2 α_2^{old} ζ=y1α1old+y2α2old得: α 2 n e w = y 1 ( y 1 α 1 o l d + y 2 α 2 o l d − y 2 α 2 n e w ) = α 1 o l d + y 1 y 2 ( α 2 o l d − α 2 n e w ) α_2^{new}=y_1 (y_1 α_1^{old}+y_2 α_2^{old}-y_2 α_2^{new} )=α_1^{old}+y_1 y_2 (α_2^{old}-α_2^{new}) α2new=y1(y1α1old+y2α2old−y2α2new)=α1old+y1y2(α2old−α2new)
三、变量的选择方法
- SMO算法在每个子问题中选择两个变量优化,其中至少一个变量是违反KKT条件的.
- 第1个变量的选择:
- SMO称选择第1个变量的过程为外层循环.外层循环在训练样本中选取违反KKT条件最严重的样本点,并将其对应的变量作为第1个变量.
- 具体地,检验训练样本点 ( x i , y i ) (x_i,y_i) (xi,yi)是否满足KKT条件, 即: α 1 = 0 ⇔ y i g ( x i ) ≥ 1 α_1=0 ⇔y_i g(x_i )≥1 α1=0⇔yig(xi)≥1 0 < α 1 < C ⇔ y i g ( x i ) = 1 0<α_1<C ⇔y_i g(x_i )=1 0<α1<C⇔yig(xi)=1 α 1 = C ⇔ y i g ( x i ) < 1 α_1=C ⇔y_i g(x_i )<1 α1=C⇔yig(xi)<1这些式上面KKT条件的总结。其中: g ( x ) = ∑ i = 1 N α i y i K ( x i , x ) + b g(x)=∑_{i=1}^Nα_i y_i K(x_i ,x)+b g(x)=i=1∑NαiyiK(xi,x)+b
- 外层循环首先遍历所有满足条件
0
<
α
1
<
C
0<α_1<C
0<α1<C的样本点,即在间隔边界上的支持向量点, 检验它们是否满足KKT条件.如果这些样本点都满足KKT条件, 那么遍历整个训练集, 检验它们是否满足KKT条件.
- 第2个变量的选择:
- SMO称选择第2个变量的过程为内层循环.假设在外层循环中已经找到第1个变量 α 1 α_1 α1现在要在内层循环中找第2个变量 α 2 α_2 α2.
- 第2个变量选择的标准是希望能使 α 2 α_2 α2,有足够大的变化.
- 根据 α 2 α_2 α2的更新公式: α 2 n e w , u n c = α 2 o l d + y 2 ( E 1 − E 2 ) η α_2^{new,unc}=α_2^{old}+\frac{y_2 (E_1-E_2 )}{η} α2new,unc=α2old+ηy2(E1−E2)可知, α 2 n e w α_2^{new} α2new是依赖于 ∣ E 1 − E 2 ∣ |E_1-E_2 | ∣E1−E2∣的,为了加快计算速度,一种简单的做法是选择 α 2 α_2 α2,使其对应的 ∣ E 1 − E 2 ∣ |E_1-E_2 | ∣E1−E2∣最大.因为 α 1 α_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 i E_i Ei值保存在一个列表中.
- 在特殊情况下,如果内层循环通过以上方法选择的 α 2 α_2 α2,不能使目标函数有足够的下降,那么采用以下启发式规则继续选择 α 2 α_2 α2.遍历在间隔边界上的支持向量点,依次将其对应的变量作为 α 2 α_2 α2试用,直到目标函数有足够的下降.若找不到合适的 α 2 α_2 α2,那么遍历训练数据集;若仍找不到合适的 α 2 α_2 α2,则放弃第1个 α 1 α_1 α1,再通过外层循环寻求另外的 α 1 α_1 α1.
四、 阈值和差值的更新:
- 在每次完成两个变量的优化后,都要重新计算阈值
b
b
b.当
0
<
α
1
n
e
w
<
C
0<α_1^{new}<C
0<α1new<C,时,
α
1
n
e
w
α_1^{new}
α1new在边界上:
∑
i
=
1
N
α
i
y
i
K
i
1
+
b
=
y
1
∑_{i=1}^Nα_i y_i K_{i1} +b=y_1
i=1∑NαiyiKi1+b=y1于是:
b
1
n
e
w
=
y
1
−
∑
i
=
3
N
α
i
o
l
d
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-∑_{i=3}^Nα_i^{old} y_i K_{i1} -α_1^{new} y_1 K_{11}-α_2^{new} y_2 K_{21}
b1new=y1−i=3∑NαioldyiKi1−α1newy1K11−α2newy2K21由
E
i
E_i
Ei的定义可以得到:
E
1
=
g
(
x
1
)
−
y
1
=
∑
j
=
1
N
α
j
y
j
K
j
1
+
b
−
y
1
E_1=g(x_1 )-y_1=∑_{j=1}^Nα_j y_j K_{j1} +b-y_1
E1=g(x1)−y1=j=1∑NαjyjKj1+b−y1
E
1
o
l
d
=
∑
j
=
1
N
α
j
o
l
d
y
j
K
j
1
+
b
o
l
d
−
y
1
E_1^{old}=∑_{j=1}^Nα_j^{old} y_j K_{j1} +b^{old}-y_1
E1old=j=1∑NαjoldyjKj1+bold−y1
y
i
−
∑
j
=
3
N
α
j
o
l
d
y
j
K
(
x
j
,
x
i
)
=
−
E
1
o
l
d
+
α
1
o
l
d
y
1
K
11
+
α
2
o
l
d
y
2
K
12
+
b
o
l
d
y_i-∑_{j=3}^Nα_j^{old} y_j K(x_j ,x_i)=-E_1^{old}+α_1^{old} y_1 K_{11}+α_2^{old} y_2 K_{12}+b^{old}
yi−j=3∑NαjoldyjK(xj,xi)=−E1old+α1oldy1K11+α2oldy2K12+bold所以:
b
1
n
e
w
=
−
E
1
o
l
d
−
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^{old}-y_1 K_{11} (α_1^{new}-α_1^{old} )-y_2 K_{21} (α_2^{new}-α_2^{old} )+b^{old}
b1new=−E1old−y1K11(α1new−α1old)−y2K21(α2new−α2old)+bold
- 同样,当
0
<
α
2
n
e
w
<
C
0<α_2^{new}<C
0<α2new<C,时,
α
2
n
e
w
α_2^{new}
α2new也在边界上,那么:
b
2
n
e
w
=
−
E
2
o
l
d
−
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^{old}-y_1 K_{12} (α_1^{new}-α_1^{old} )-y_2 K_{22} (α_2^{new}-α_2^{old} )+b^{old}
b2new=−E2old−y1K12(α1new−α1old)−y2K22(α2new−α2old)+bold
- 如果
α
1
n
e
w
,
α
2
n
e
w
α_1^{new}, α_2^{new}
α1new,α2new同时满足条件
0
<
α
i
n
e
w
<
C
,
i
=
1
,
2
0<α_i^{new}<C,i=1,2
0<αinew<C,i=1,2.那么
b
2
n
e
w
=
b
1
n
e
w
b_2^{new}=b_1^{new}
b2new=b1new.如果
α
1
n
e
w
,
α
2
n
e
w
α_1^{new}, α_2^{new}
α1new,α2new是0或者C,那么
b
2
n
e
w
b_2^{new}
b2new和
b
1
n
e
w
b_1^{new}
b1new以及它们之间的数都是符合KKT条件的阈值,这时选择它们的中点作为
b
n
e
w
b^{new}
bnew.
- 在每次完成两个变量的优化之后,还必须更新对应的
E
i
E_i
Ei值,并将它们保存在列表中,使用下面公式:
E
i
=
g
(
x
i
)
−
y
i
=
∑
j
=
1
N
α
j
y
j
K
j
i
+
b
n
e
w
−
y
i
E_i=g(x_i )-y_i=∑_{j=1}^Nα_j y_j K_ji +b^{new}-y_i
Ei=g(xi)−yi=j=1∑NαjyjKji+bnew−yi
后篇:【统计学习方法】支持向量机之线性支持向量机