1 SMO概念
SVM把原始最优化问题转化成了其对偶问题,因为对偶问题是一个凸二次规划问题,这样的凸二次规划问题具有全局最优解。如下:
C是惩罚系数。上述问题要求解N个参数,其他参数均为已知。有多种算法可对上述问题求解,但复杂度很大。
SMO (序列最小最优化算法) 可高效求解上述问题,把原始求解N个参数二次规划问题分解成多个子二次规划问题,分别求解,每个子问题只需求解2个参数。节省时间成本和降低内存需求。每次启发式选择两个变量进行优化,不断循环,直到达到函数最优值。
2 SMO原理分析
2.1 算法思想
SMO算法的中心思想就是每次选出两个lambda进行优化 (之所以是两个是因为lambda的约束条件决定了其与标签乘积的累和等于0,因此必须一次同时优化两个,否则会破坏约束条件),然后固定其他的lambda值。重复此过程,直到达到某个终止条件,程序退出,并得到我们需要的优化结果。