支持向量机的学习可以形式化为凸二次规划问题,这种凸二次规划问题一般采用序列最小优化(sequential minimal optimization, SMO)算法. SMO算法解决SVM的对偶问题:
SMO算法是一种启发式的算法,基本思路是:如果所有变量的解都满足此最优化问题的KKT条件,那么这个最优化为题的解就找到了。算法大致流程为:选择两个变量和,固定其他变量,其中为违反KKT条件最严重的一个,另一个由约束条件自动确定;针对这两个变量构建一个二次规划问题,则和可通过解析解直接求出;更新b;迭代上述过程直至满足条件。
每次迭代的算法流程如下所述:
1. 选择两个变量和,其中违反KKT条件