支持向量机(SVM) 凸优化与对偶问题求解

一、对偶问题的转化

先写出一个转化对偶问题的一般性结论

原问题:

支持向量机(SVM) 凸优化与对偶问题求解

支持向量机(SVM) 凸优化与对偶问题求解

     支持向量机(SVM) 凸优化与对偶问题求解

转化为的对偶问题是:

支持向量机(SVM) 凸优化与对偶问题求解

支持向量机(SVM) 凸优化与对偶问题求解

其中a,b是根据原问题的限制条件产生的新的变量。


二、SVM模型问题转化

原问题:

支持向量机(SVM) 凸优化与对偶问题求解

支持向量机(SVM) 凸优化与对偶问题求解

支持向量机(SVM) 凸优化与对偶问题求解

即:

支持向量机(SVM) 凸优化与对偶问题求解

支持向量机(SVM) 凸优化与对偶问题求解

 支持向量机(SVM) 凸优化与对偶问题求解

注意这里待求参数是w,xi,b。

转化为的对偶问题是:

支持向量机(SVM) 凸优化与对偶问题求解

支持向量机(SVM) 凸优化与对偶问题求解

注意这里实际只有a,b其实还是a只是为了区别不同的限制条件。

先求xita(a,b),分别对w,xi,b求偏导,再代回,得

支持向量机(SVM) 凸优化与对偶问题求解

支持向量机(SVM) 凸优化与对偶问题求解

这样的方程求解就比较容易了,书上说用SMO算法。得到所有的a;

大学课上编程实现的好像是梯度下降。。。

对于支持向量机的优化模型来说,原问题与对偶问题同解所以可以这么做,即minf(x)=max xita(a,b)。


三、对样本进行判别求解

1、按正常的逻辑来说,根据得到的a,可以带入求得w,b;从而得到超平面,可以带入判断yi是否大于0进行判别。计算方法如下,直接截图了,公式实在打不动了。

w:

支持向量机(SVM) 凸优化与对偶问题求解

 b:

支持向量机(SVM) 凸优化与对偶问题求解

 2、但考虑到用核函数时,具体的fa(x)时不知道的,只能得到fa(x1)*fa(x2)=K(x1,x2)这样的结果,所以我们计算不出来W,但可以通过计算w*x来规避这样的问题。

w:

支持向量机(SVM) 凸优化与对偶问题求解

 


四、总结

最后总结下SVM具体的流程,因为其中很多证明的步骤在运用时时不需要的,这样剩下的就不多了。

第一步:直接求解之前得到的对偶问题就行了 ,得到a。

支持向量机(SVM) 凸优化与对偶问题求解

第二步,计算得到超平面的偏移量b。

第三步,基于判别条件,带入y(wfa(x)+b)计算得到判别结果。

收官,公式实在太难打了。证明的部分有些我还不是特别理解就没写了,KKT条件那个略懂。

主要参考浙大机器学习那个。

上一篇:程序员的幸福感和颈椎病


下一篇:基于蝗虫算法优化最小二乘支持向量机lssvm实现预测matlab代码