序列最小最优化算法(SMO)

  • SMO算法是一种启发式算法,基本思路是:如果所有变量的解都满足最优化问题的KKT条件,那么最优化问题的解就得到了,因为KKT条件是最优化问题的充分必要条件。否则,选择两个变量,固定其它变量,针对这两个变量构建一个二次规划问题。这个二次规划问题关于这两个变量的解应该更接近原始二次规划问题的解,因为这会使得二次规划问题的目标函数值变得更小。重要的是,这时子问题可以通过解析方法求解,这样可以大大提高整个算法的计算速度。
  • 子问题有两个变量,一个是违反KKT条件最严重的的那一个,另一个由约束条件自动确定。如此,SMO算法将原问题不断分解为子问题并对子问题求解,进而达到求解原问题的目的。
  • SMO把原始求解N个参数二次规划问题分解成很多个子二次规划问题分别求解,每个子问题只需要求解2个参数,方法类似于坐标上升,节省时间成本和降低了内存需求。每次启发式选择两个变量进行优化,不断循环,直到达到函数最优值。

猜你喜欢

转载自blog.csdn.net/zrh_csdn/article/details/80934266