这个二次规划问题关于这两个变量的解应该更接近原始二次规划问题的解,因为这会使得原始二次规划问题的目标函数值变得更小。同时,由于此时子问题可以通过解析的方法进行求解,算法的计算速度大大提升。子问题有两个变量,一个是违反KKT条件最严重的那一个,另一个由约束条件自动确定。SMO算法就是将原问题不断分解为子问题然后对子问题进行求解,进而达到求解原问题的目的。虽然我们选取了两个变量构建二次规划,但是两个变量中只有一个变量是自由变量。由等式约束可知,若对任意两个变量,,固定这两个变量以外的其他变量,那么由等式约束可知:即只要确定了,那么也就随之确定了,因此子问题同时更新两个变量。SMO算法的主要步骤如下:第一步选取一对和,选取方法使用启发式方法。第二步固定和之外的其他参数,确定W极值条件下的,由表示。接下来讨论具体的操作方法假设我们选取了初始值满足了问题中的约束条件。接下来,我们固定,在略去了不影响目标函数最优化求解的函数项后,(10)的最优化问题的子问题就可以写成:(11)其中。此时就是和的函数,并且满足下述条件:由于都是已知量,为了方便,将等式右边标记为实数值。则上式可以表示为:在等式两边同时乘上,得到:(12)将上式带入(11)的等式中得到只关于参数的最优化问题:对上式关于求导并令其为0得到:(13)由(13)式求得了的解。带回(12)式可得的解,分别记为,,将优化前的解记为,。在参数固定的前提条件下,由等式约束知有:成立,即:(14)若SVM的超平面模型为,由前一节推出的的表达式知,,即为对样本的预测值,定义为对输入的预测值与真实值之差,即,由于.故(15)(16)将(14),(15),(16)代入(13)中求解,由于此时求解出的并没有考虑约束条件,这里记为,得到:上式代入(14)式,并记得: