SMO算法原理及实现
支持向量机的学习问题本质上是求解凸二次规划问题
SMO算法 序列最小最优化算法就是求解该问题的代表性算法
SMO算法 解决的凸二次规划的对偶问题:
mina12∑i=1N∑j=1NαiαjyiyjK(xi,xj)−∑i=1Nαi min a 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( x i , x j ) − ∑ i = 1 N α i
s.t.∑i=1Nαiyi=00≤αi≤C,i=1,2,...,N s . t . ∑ i = 1 N α i y i = 0 0 ≤ α i ≤ C , i = 1 , 2 , . . . , N
问题思考:已知变量 x 输入空间 y 输入空间 – 即训练集中数据集
求解变量实质上为拉格朗日乘子 一个变量 αi α i 对应与一个样本点 (xi,yi) ( x i , y i ) ,变量的总数等于训练样本容量N
SMO算法 – 属于一种启发式算法
其基本思路为:
1.如果所有的变量的解都满足最优化问题的KKT条件 那么这个最优化问题的解就得到了
2.否则选择两个变量 固定其他变量(任意选择两个拉格朗日乘子) 针对这两个变量构建一个二次规划问题
这个二次规划问题关于这两个变量的解应该更加接近二次规划问题的解 使得二次规划问题的目标函数值变得更小
3.此时: 子问题有两个变量 一个是违反KKT条件最严重的一个 一个是由约束条件自动确定的
注意: 选择两个变量实质上只有一个自由变量
因为等式约束:
∑i=2Nαiyi=0 ∑ i = 2 N α i y i = 0
重点:SMO算法实质上包含两个部分
1. 求解两个变量二次规划的解析方法
2.选择变量的启发式方法
1.两个变量二次规划的求解方法
假设选择的两个变量是 α1,α2 α 1 , α 2 其他 αi α i 是固定的
带入到凸二次规划的对偶问题中, 可以推导为
minalpha1,α2=12K11α21+12K22α22+y1y2K12α1α2−(α1+alpha2)+y1alpha1∑i=3Ny