支持向量机(五)SMO算法11SMO优化算法(Sequentialminimaloptimization)SMO算法由MicrosoftResearch的JohnC
Platt在1998年提出,并成为最快的二次规划优化算法,特别针对线性SVM和数据稀疏时性能更优
有关SMO最佳的资料就是他本人写的《SequentialMinimalOptimizationAFastAlgorithmforTrainingSupportVectorMachines》了
我拜读了一下,下面先说讲义上对此办法的总结
首先回到我们前面始终悬而未解的问题,对偶函数最后的优化问题:要解决的是在参数上求最大值W的问题,至于和都是已知数
C由我们预先设定,也是已知数
按照坐标上升的思路,我们首先固定除以外的全部参数,然后在上求极值
等一下,这个思路有问题,由于如果固定以外的全部参数,那么将不再是变量(能够由其它值推出),由于问题中规定了因此,我们需要一次选用两个参数做优化,例如和,此时能够由和其它参数表达出来
这样回带到W中,W就只是有关的函数了,可解
这样,SMO的重要环节以下:意思是,第一步选用一对和,选用办法使用启发式办法(背面讲)
第二步,固定除和之外的其它参数,拟定W极值条件下的,由表达
SMO之因此高效就是由于在固定其它参数后,对一种参数优化过程很高效
下面讨论具体办法:假设我们选用了初始值满足了问题中的约束条件
接下来,我们固定,这样W就是和的函数
并且和满足条件:由于都是已知固定值,因此为了方面,可将等式右边标记成实数值
当和异号时,也就是一种为1,一种为-1时,他们能够表达成一条直线,斜率为1
以下图:横轴是,纵轴是,和既要在矩形方框内,也要在直线上,因此,同理,当和同号时,,然后我们打算将用表达:然后反代入W中,得展开后W能够表达成
其中a,b,c是固定值
这样,通过对W进行求导能够得