【机器学习-西瓜书】六、支持向量机(SVM):最大间隔;对偶问题;KKT条件
来源:互联网 发布:java助理工程师要求 编辑:程序博客网 时间:2024/05/17 01:34
推荐阅读:对偶问题,KKT条件
关键词:最大间隔;支持向量;对偶问题;KKT条件;SMO算法
6.1 间隔与支持向量
关键词:最大间隔;支持向量。
支持向量机(Support Vector Machine,SVM)是常见的二分类器,与逻辑回归不同,SVM 寻找的是使得间隔最大的那一个超平面作为分类器。间隔是什么意思?就是两个异类支持向量(Support Vector)到超平面的距离之和。什么是支持向量呢?就是距离超平面最近的那几个训练样本。如下图,圈出来的那三个样本就是支持向量。 间隔就是两条虚线的距离。
超平面可用线性方程:
那么我们的目标方程是什么呢?我们的目标就是最大化间隔
等价于:
这个公式就称之为 支持向量机的基本型。
6.2 对偶问题
关键词:对偶问题;KKT条件;SMO算法
SVM的基本型是一个凸二次规划(convex quadratic programming)问题,可直接求解,但是可以使用拉格朗日乘子法可得到其“对偶问题”(dual problem),对偶问题更方便于求解,其形式如下:
怎么使用拉格朗日乘子法将原问题转换到其对偶问题的呢? 首先,对原问题的约束(也就是对每个训练样本所产生的约束)添加拉格朗日乘子
再对w和b分别求偏导,再置0可得:
,将这两个式子带入
关键词:KKT条件。
KKT(Karush-Kuhn-Tucker)条件是一种方法,什么方法呢?就是处理含有不等式约束的优化问题的方法。对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值;如果含有不等式约束,可以应用KKT条件去求取。
对于含有不等式约束的优化问题, 把所有的不等式约束、等式约束和目标函数全部写为一个式子L(a, b, x)= f(x) + a*g(x)+b*h(x)。其中,h(x)为等式约束,g(x)为不等数约束,KKT条件是说最优值必须满足以下条件:
1. L(a, b, x)对x求导为零;
2. h(x) =0;
3. a*g(x) = 0;
求取这三个等式之后就能得到候选最优值。其中第三个式子非常有趣,因为g(x)<=0,如果要满足这个等式,必须a=0或者g(x)=0. 这是SVM的很多重要性质的来源,如支持向量的概念。
(根据自己思路总结一下,仅做参考。求解SVM基本型不太方便,于是乎求解其对偶问题,对偶问题是一个不等式约束问题,求不等式约束问题采用KKT条件,KKT条件中有一个条件很有意思,就是 a*g(x)=0,要么拉格朗日乘子为0,要么g(x)=0,g(x)=0,表示样本是支持向量,也就是只有支持向量才使得g(x)=0,而a=0的样本就不需要了)
解这个对偶问题的一个著名方法是SMO算法
推荐博客,理解拉格朗日乘子法和KKT条件(http://blog.csdn.net/xianlingmao/article/details/7919597)
- 【机器学习-西瓜书】六、支持向量机(SVM):最大间隔;对偶问题;KKT条件
- 支持向量机(SVM)关键点攻略(最大间隔,对偶问题)
- 【机器学习-西瓜书】六、支持向量机:核技巧;软间隔;惩罚因子C;松弛变量
- 林轩田--机器学习技法--SVM笔记2--对偶支持向量机(dual+SVM)
- 机器学习----支持向量机(对偶)
- 支持向量机(SVM)必备知识(KKT、slater、对偶)
- SVM的kkt条件和对偶问题。
- 机器学习(六)支持向量机svm初级篇
- 机器学习(六)支持向量机svm初级篇
- 支持向量机SVM中的对偶问题
- 学习笔记——支持向量机svm(2)对偶问题
- 学习SVM(二) 如何理解支持向量机的最大分类间隔
- 【机器学习基础】对偶支持向量机
- 【机器学习基础】对偶支持向量机
- SVM(支持向量机)中拉格朗日乘子法(Lagrange Multiplier) 和KKT条件
- 机器学习---支持向量机(SVM)
- 机器学习:支持向量机(SVM)
- 机器学习-支持向量机(SVM)
- MD5算法原理及其实现
- [后端][php]获取完整URL
- Warring the /usr/local/mysql/data directory is not owned by the 'mysql' or '_mysql' user
- 算法系列-topk问题
- 【Python】Python3 List copy()方法
- 【机器学习-西瓜书】六、支持向量机(SVM):最大间隔;对偶问题;KKT条件
- CentOS 7 VM下修改网卡名为eth0并启动问题解决
- 双目立体匹配算法--SAD(C++\FPGA)
- ffmpeg视频压缩的一些参考信息
- html5图片展示
- Runnable和Callable的区别:
- 《C++ Primer》第五版课后习题解答_第三章(5)(37-45)
- global.js
- 彻底删除的文件还能找回来吗?