1、SMO算法
说明:本文内容基于李航《统计学习方法》一书。
SMO算法用于支持向量机学习的实现,求解如下的凸二次规划问题:
变量是拉格朗日乘子,一个变量αi对应一个样本点(xi,yi);变量总数等于训练样本容量N。
SMO算法的基本思路:选择两个变量,固定其他变量,针对这两个变量构建一个二次规划问题。(书Page125)
2、两个变量二次规划的求解方法
假设选择两个变量α1、α2,其他变量αi(i=3,4,....,N)是固定的。于是,前面的优化问题1.1~1.3可以简化为:(Page126)
z是常数,Kij=K(xi,xj),因为不含α1、α2的常数项不影响式1.4的最小值,故省略。
由
,在式1.5等号两边同时乘以y2得:
将式1.7代入式1.4得到求解最小值关于α1的函数:
对式1.8求W(α1 )关于α1的偏导数:得到不考虑约束1.5,1.6的解:
,再由1.5求得:
。
因为yi只等于1或-1。当时,可以假设y1=1,y2=-1。则在α2为纵轴α1为横轴的坐标系上:
是斜率为1,且横纵坐标都属于区间[0,C]的线段。
如下图:(Page126)
联立:
得到:
又:
所以:
故而,在考虑约束条件的情况下,α可以取得最小值和最大值分别为:
同理,当y1=y2时,假设y1=y2=1,则:
所以:
最终得到满足约束条件的优化过后的α1,α2解:;
3、变量的选择方法
。。。