1. 算法目标:支持向量机的学习问题可以形式化为求解凸二次规划问题,凸二次规划问题具有全局最优解,并且有许多方法可以用于这一问题的求解。当样本量很大时,SMO算法可以实现高效地支持向量机学习。
2. 算法原理:SMO算法是一种启发式算法,基本思路,如果所有变量的解都满足此最优化问题的KKT条件,那么这个最优化问题的解就得到了,因为KKT条件是该最优化问题的充要条件。否则,选择两个变量,固定其它变量,针对这两个变量构建一个二次规划问题,这个二次规划问题关于这两个变量的解应该更接近于原始二次规划问题的解,因为这会使得二次规划问题的目标函数值变得更小。(最终的目标就是让目标函数的值变得更小)
子问题可通过解析方法求解,这样可以提高计算速度,子问题有两个变量,一个是违反KKT条件最严重的那个,另一个由约束条件自动确定(为什么要设置为一个变量严重违反条件,目的是什么)。如此,原问题不断分解为子问题求解,进而达到求解问题的目的。
3. 算法步骤:(1)求解二次规划问题的解析方法
(2)选择变量的启发式算法
注:启发式算法(heuristic algorithm)是相对于最优化算法提出的。一个问题的最优算法求得该问