支持向量机原理SMO算法原理

Posted 郑兴鹏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了支持向量机原理SMO算法原理相关的知识,希望对你有一定的参考价值。

  支持向量机原理(一) 线性支持向量机

    支持向量机原理(二) 线性支持向量机的软间隔最大化模型

    支持向量机原理(三)线性不可分支持向量机与核函数

    支持向量机原理(四)SMO算法原理

    支持向量机原理(五)线性支持回归

 

  在SVM的前三篇里,我们优化的目标函数最终都是一个关于αα向量的函数。而怎么极小化这个函数,求出对应的αα向量,进而求出分离超平面我们没有讲。本篇就对优化这个关于αα向量的函数的SMO算法做一个总结。

1. 回顾SVM优化目标函数

    我们首先回顾下我们的优化目标函数:

minα12i=1,j=1mαiαjyiyjK(xi,xj)i=1mαimin⏟α12∑i=1,j=1mαiαjyiyjK(xi,xj)−∑i=1mαi
s.t.i=1mαiyi=0s.t.∑i=1mαiyi=0
0αiC0≤αi≤C

 

    我们的解要满足的KKT条件的对偶互补条件为:

αi(yi(wϕ(xi)+b)1)=0αi∗(yi(w∗∙ϕ(xi)+b∗)−1)=0

 

    根据这个KKT条件的对偶互补条件,我们有:

αi=0yi(wϕ(xi)+b)1αi∗=0⇒yi(w∗∙ϕ(xi)+b)≥1
0αiCyi(wϕ(xi)+b)=10≤αi∗≤C⇒yi(w∗∙ϕ(xi)+b)=1
αi=Cyi(wϕ(xi)+b)1αi∗=C⇒yi(w∗∙ϕ(xi)+b)≤1

 

     由于w=j=1mαjyjϕ(xj)w∗=∑j=1mαj∗yjϕ(xj),我们令g(x)=wϕ(x)+b=j=1mαjyjK(x,xj)+bg(x)=w∗∙ϕ(x)+b=∑j=1mαj∗yjK(x,xj)+b∗,则有:

αi=0yig(xi)1αi∗=0⇒yig(xi)≥1
0αiCyig(xi)=10≤αi∗≤C⇒yig(xi)=1
αi=Cyig(xi)1αi∗=C⇒yig(xi)≤1

 

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都成了常量,所有的常量我们都从目标函数去除,这样我们上一节的目标优化函数变成下式:

minα1,α112K11α21+12K22α22+y1y2K12α1α2(α1+α2)+y1α1i=3myiαiKi1+y2α2i=3myiαiKi2min⏟α1,α112K11α12+12K22α22+y1y2K12α1α2−(α1+α2)+y1α1∑i=3myiαiKi1+y2α2∑i=3myiαiKi2
s.t.α1y1+α2y2=i=3myiαi=ςs.t.α1y1+α2y2=−∑i=3myiαi=ς
0αiCi=1,20≤αi≤Ci=1,2

 

3. SMO算法目标函数的优化

    为了求解上面含有这两个变量的目标优化问题,我们首先分析约束条件,所有的α1,α2α1,α2都要满足约束条件,然后在约束条件下求最小。

    根据上面的约束条件α1y1+α2y2=ς0αiCi=1,2α1y1+α2y2=ς0≤αi≤Ci=1,2,又由于y1,y2y1,y2均只能取值1或者-1, 这样以上是关于支持向量机原理SMO算法原理的主要内容,如果未能解决你的问题,请参考以下文章

ML-9-3支持向量机--SMO算法原理

SVM -支持向量机原理详解与实践之四

支持向量机原理线性支持回归

支持向量机原理 线性支持向量机

支持向量机原理 线性支持向量机

机器学习之支持向量机:SMO算法