支持向量机原理SMO算法原理
Posted 郑兴鹏
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了支持向量机原理SMO算法原理相关的知识,希望对你有一定的参考价值。
在SVM的前三篇里,我们优化的目标函数最终都是一个关于αα向量的函数。而怎么极小化这个函数,求出对应的αα向量,进而求出分离超平面我们没有讲。本篇就对优化这个关于αα向量的函数的SMO算法做一个总结。
1. 回顾SVM优化目标函数
我们首先回顾下我们的优化目标函数:
我们的解要满足的KKT条件的对偶互补条件为:
根据这个KKT条件的对偶互补条件,我们有:
由于w∗=∑j=1mα∗jyjϕ(xj)w∗=∑j=1mαj∗yjϕ(xj),我们令g(x)=w∗∙ϕ(x)+b=∑j=1mα∗jyjK(x,xj)+b∗g(x)=w∗∙ϕ(x)+b=∑j=1mαj∗yjK(x,xj)+b∗,则有:
2. SMO算法的基本思想
上面这个优化式子比较复杂,里面有m个变量组成的向量αα需要在目标函数极小化的时候求出。直接优化时很难的。SMO算法则采用了一种启发式的方法。它每次只优化两个变量,将其他的变量都视为常数。由于∑i=1mαiyi=0∑i=1mαiyi=0.假如将α3,α4,...,αmα3,α4,...,αm 固定,那么α1,α2α1,α2之间的关系也确定了。这样SMO算法将一个复杂的优化算法转化为一个比较简单的两变量优化问题。
为了后面表示方便,我们定义Kij=ϕ(xi)∙ϕ(xj)Kij=ϕ(xi)∙ϕ(xj)
由于α3,α4,...,αmα3,α4,...,αm都成了常量,所有的常量我们都从目标函数去除,这样我们上一节的目标优化函数变成下式:
3. SMO算法目标函数的优化
为了求解上面含有这两个变量的目标优化问题,我们首先分析约束条件,所有的α1,α2α1,α2都要满足约束条件,然后在约束条件下求最小。
根据上面的约束条件α1y1+α2y2=ς0≤αi≤Ci=1,2α1y1+α2y2=ς0≤αi≤Ci=1,2,又由于y1,y2y1,y2均只能取值1或者-1, 这样