原问题:
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_\alpha\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 αmin21i=1∑Nj=1∑NαiαjyiyjK(xi,xj)−i=1∑Nαi
s.t.
∑ i = 1 N α i y i = 0 \sum_{i=1}^N\alpha_iy_i=0 i=1∑Nαiyi=0
0 ⩽ α i ⩽ C , i = 1 , 2 , ⋯ , N 0\leqslant\alpha_i\leqslant C, i=1,2,\cdots,N 0⩽αi⩽C,i=1,2,⋯,N
SMO算法的基本思想是:
如果所有变量的解都满足最优化问题的KKT条件,那么这个最优化问题的解就得到了。否则,选择两个变量,固定其他变量,针对这两个变量构建一个二次规划问题。
这样做的目的是,通过求解两个变量的二次规划问题,能不断靠近原有凸二次规划问题的解,并且计算方法有解析方法。
子问题有两个变量,其中一个为违反KKT条件最严重的那一个,另一个由约束条件自动确定。由与约束条件的存在,子问题实际上只有一个自由变量。
整个SMO算法包含两个部分:求解两个变量二次规划的解析方法和选择变量的启发式算法。
两个变量的二次规划求解方法
假设 α 1 , α 2 \alpha_1, \alpha_2 α1,α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
由于约束条件存在,因此 α 2 n e w \alpha_2^{new} α2new的取值范围为:
L ⩽ α 2 n e w ⩽ H L\leqslant\alpha_2^{new}\leqslant H L⩽α2new⩽H
其中 L L L与 H H H是 α 2 n e w \alpha_2^{new} α2new所在的对角线段端点的界。
如果 y 1 ≠ y 2 y_1\not=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}),\,\,\,\,\,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),\,\,\,\,\,H=\min(C,\alpha_2^{old}+\alpha_1^{old}) L=max(0,α2old+α1old−C),H=min(C,