您的位置:首页 > 其它

[置顶] 为什么支持向量机要用拉格朗日对偶算法来解最大化间隔问题

2016-03-15 16:32 274 查看
1) 不等式约束一直是优化问题中的难题,求解对偶问题可以将支持向量机原问题约束中的不等式约束转化为等式约束;
2) 支持向量机中用到了高维映射,但是映射函数的具体形式几乎完全不可确定,而求解对偶问题之后,可以使用核函数来解决这个问题。
以上。

并不一定要用拉格朗日对偶。

要注意用拉格朗日对偶并没有改变最优解,而是改变了算法复杂度

在原问题下,求解算法的复杂度与样本维度(等于权值w的维度)有关;

而在对偶问题下,求解算法的复杂度与样本数量(等于拉格朗日算子a的数量)有关。

因此,如果你是做线性分类,且样本维度低于样本数量的话,在原问题下求解就好了,Liblinear之类的线性SVM默认都是这样做的;

但如果你是做非线性分类,那就会涉及到升维(比如使用高斯核做核函数,其实是将样本升到无穷维),升维后的样本维度往往会远大于样本数量,此时显然在对偶问题下求解会更好。

这样:

就可以由求特征向量w转化为求比例系数a,

就可以导出含有内积形式的目标函数,

就可以实现对内积后的gram矩阵使用核函数,以达到非线性分类的目的。

简而言之,就是以上。

有人回复:嗯,这是为了方便引入核函数。如果是线性可分问题,那么直接用一般解QP问题的方法是否更好?

个人意见:支持向量机实现非线性的方法的数学本质是升维,升维升到无穷维你还怎么表达那个w?所以还是使用拉格朗日对偶方法更好一点。准确的说,可以用一些优化算法直接求最小间距,但是,升维的时候核要是正定的,且升维可数,而且不是很大的时候可以用。不建议这么搞。

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 https://www.zhihu.com/question/36694952
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: