支持向量机学习总结

1.支持向量机是什么?

    支持向量机是一个超平面分类算法,他通过对已有标记的数据进行训练得出分类的超平面,对未知标记的点进行分类.

2.支持向量机的工作原理?

    线性可分情况:

        1.求平面wx+b=0,即求w和b的值.使得样本集中的点到平面的距离min yi(wTxi+b)/||w||的值关于xi最小.实际上是求

        maxw,b (minxi (yi(wTxi+b)/||w||))

        因为w,b前加一个系数不影响平面,所以令所有的yi(wTxi+b)>=1.其中最小的那些取等号.取等号的即为支持向量.

        这里实际上是对w和b做了一次变换,设最小的那个点到平面的距离为r.令w'=w/r,b'=b/r.

        2.转化为lagrange dual problem.

        在加入假设之后实际上是求

        maxw,b 1/||w||==>可以转化为minw ||w||2/2

        s.t. yi(wTxi+b)>=1 i=1,...n

        其lagrange函数为

minw,b θ(w)=minw,b maxαi,αi>0 L(α,w,b)=||w||2/2-Σiαi(yi(wTxi+b)-1)

        因为是对αi求最值,所以lagrange函数问题θ(w)与原问题等价.这相当于把二次规划的限制条件放到了目标函数中去了.

        这里是先求max再求min.因为svm的lagrange函数满足slater条件,同时满足KKT条件.所以先求max再求min与先求min再求max得出的结果是一样的.如果不满足条件则

max min f(x,y) 是 min max f(x,y)的一个下界.一个是顶上最矮的,一个是地上最高的. 因而我们求其对偶问题

maxαi,αi>0 minw,b  L(α,w,b)=||w||2/2-Σiαi(yi(wTxi+b)-1)    (1)

又有满足KTT条件: L(α,w,b)对w,b求导为0.即得

w=Σαiyixi    (2)

Σαiy= 0    (3)

        将(2)代入(1)得

L(α,w,b)=Σiαi - (1/2)*Σj,iαiαjyiyjxTixj

这里消掉了w和b.成了α的函数,同时还有Σαiy= 0.于是这就是转化成的新的lagrange dual problem:

maxαi,αi>0 L(α,w,b)=Σiαi - (1/2)*Σj,iαiαjyiyjxTixj

Σαiy= 0 其中αi>=0

这一问题可以用SMO(序列最小最优化算法)求解α就可以通过(2)和wx+b=0解出w和b.最后给测试集x进行判断时就计算wx+b就可以了.

另外可以直接使用(2)导出wx+b=ΣαiyixTix+b.这里可以用支持向量和未知向量的内积来确认未知向量的类型.

    线性不可分情况:

        将数据从低维转化为高维,使其线性可分,然后使用同样的方法对其求解α,w,b.然后通过计算wx+b来确认.当然,这时的难点在于低维到高维的转化.同时,这里求出的w,b也是高维空间中的值,因为只有高维空间才线性可分,满足KKT条件.所有未知向量需要先转化为高维向量再代入计算.这样是非常麻烦的.同时高维向量的内积计算起来也很难.

        这里有核函数将高维空间中的内积转化为低维空间中的计算.这样通过求α就可以进行计算了.其中有多项式核函数和指数核函数.

        因为计算可以转化为高维空间中的内积,所以才可以使用核函数的方法.否则SVM的应用会更加难以推广

 

posted on 2014-03-31 19:25  york_hust  阅读(787)  评论(0编辑  收藏  举报