[置顶] 为什么支持向量机要用拉格朗日对偶算法来解最大化间隔问题
2016-03-15 16:32
288 查看
1) 不等式约束一直是优化问题中的难题,求解对偶问题可以将支持向量机原问题约束中的不等式约束转化为等式约束;
2) 支持向量机中用到了高维映射,但是映射函数的具体形式几乎完全不可确定,而求解对偶问题之后,可以使用核函数来解决这个问题。
以上。
并不一定要用拉格朗日对偶。
要注意用拉格朗日对偶并没有改变最优解,而是改变了算法复杂度:
在原问题下,求解算法的复杂度与样本维度(等于权值w的维度)有关;
而在对偶问题下,求解算法的复杂度与样本数量(等于拉格朗日算子a的数量)有关。
因此,如果你是做线性分类,且样本维度低于样本数量的话,在原问题下求解就好了,Liblinear之类的线性SVM默认都是这样做的;
但如果你是做非线性分类,那就会涉及到升维(比如使用高斯核做核函数,其实是将样本升到无穷维),升维后的样本维度往往会远大于样本数量,此时显然在对偶问题下求解会更好。
这样:
就可以由求特征向量w转化为求比例系数a,
就可以导出含有内积形式的目标函数,
就可以实现对内积后的gram矩阵使用核函数,以达到非线性分类的目的。
简而言之,就是以上。
有人回复:嗯,这是为了方便引入核函数。如果是线性可分问题,那么直接用一般解QP问题的方法是否更好?
个人意见:支持向量机实现非线性的方法的数学本质是升维,升维升到无穷维你还怎么表达那个w?所以还是使用拉格朗日对偶方法更好一点。准确的说,可以用一些优化算法直接求最小间距,但是,升维的时候核要是正定的,且升维可数,而且不是很大的时候可以用。不建议这么搞。
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 https://www.zhihu.com/question/36694952
2) 支持向量机中用到了高维映射,但是映射函数的具体形式几乎完全不可确定,而求解对偶问题之后,可以使用核函数来解决这个问题。
以上。
并不一定要用拉格朗日对偶。
要注意用拉格朗日对偶并没有改变最优解,而是改变了算法复杂度:
在原问题下,求解算法的复杂度与样本维度(等于权值w的维度)有关;
而在对偶问题下,求解算法的复杂度与样本数量(等于拉格朗日算子a的数量)有关。
因此,如果你是做线性分类,且样本维度低于样本数量的话,在原问题下求解就好了,Liblinear之类的线性SVM默认都是这样做的;
但如果你是做非线性分类,那就会涉及到升维(比如使用高斯核做核函数,其实是将样本升到无穷维),升维后的样本维度往往会远大于样本数量,此时显然在对偶问题下求解会更好。
这样:
就可以由求特征向量w转化为求比例系数a,
就可以导出含有内积形式的目标函数,
就可以实现对内积后的gram矩阵使用核函数,以达到非线性分类的目的。
简而言之,就是以上。
有人回复:嗯,这是为了方便引入核函数。如果是线性可分问题,那么直接用一般解QP问题的方法是否更好?
个人意见:支持向量机实现非线性的方法的数学本质是升维,升维升到无穷维你还怎么表达那个w?所以还是使用拉格朗日对偶方法更好一点。准确的说,可以用一些优化算法直接求最小间距,但是,升维的时候核要是正定的,且升维可数,而且不是很大的时候可以用。不建议这么搞。
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 https://www.zhihu.com/question/36694952
相关文章推荐
- tomcat虚拟目录配置方法
- dagger2的集成和使用
- 3.15学习笔记 从零开始
- org.apache.hadoop.ipc.Client: Retrying connect to server异常的解决
- 防携程筛选,listview和checkbox结合使用
- Python 学习历程- 看我一步一步走过来 未完待续。。。
- java中两个Integer类型的值相比较的问题
- EasyUI加载树控件自动展开所有目录
- #define is unsafe——I
- Java 编码规范 StandardCharsets.UTF_8 三个方法 toString() name() displayName(),到底用哪个方法更合适?
- aspectj pointcut 找不到类型pointcut cannot be resolved to a type
- 4个走之前的书签 随手记下来
- C语言是实现顺序表(非动态)
- squid编译安装 web缓存服务器
- PHP中foreach有关引用的问题
- intent传递有没有大小限制,是多少?
- Ubuntu Eclipse CDT C++11的支持
- Android Service服务的简单总结
- 坑爹的Android Ble 问题记录日志
- Android 教你打造炫酷的ViewPagerIndicator