对svm的理解

原创 2016年08月29日 13:33:59

在搜索了很多资料后终于搞明白了SVM,对几个关键的部分做一些记录。
SVM的全称Support Vector Machine,中文名支持向量机,是一种分类算法,常见于二分类问题,和常见的二分类算法不同,该算法是在两类(或多类,以下简写为两类)标记之间找到离两类标记最远的一个超平面来分割数据,比如二维点就是找一条线来分割,三维点就是找一个平面来分割,n维数据找一个n-1维超平面来分割。
如何找这个超平面是最关键的部分,也就是算法需要计算的部分,在这我记录以下数学推导。这里写图片描述
在两个超平面之间距离为图中的m(可以根据几何推导,和二维类似)要最大化,只要使||w||最小化,即让它最小,这个||w||指的是它的模,也就是让w^2最小,为了求导之后消去系数,我们让w^2/2最小。还有一个限制条件,就是所有的点都在H1和H2之外,即yi (wTxi + b)>=1。我们所求的是这里写图片描述第二个是约束条件
接下来我们要使用拉格朗日乘数法来优化这个问题,使w^2/2最小,构造拉格朗日函数这里写图片描述
对w、b分别求偏导,得这里写图片描述,代入到拉格朗日函数这里写图片描述,得这里写图片描述
这里我有一个问题开始没有搞明白,就是为什么含aiyi的项全部消掉了,其实这是因为kkt条件下(参见http://www.cnblogs.com/zhangchaoyang/articles/2726873.html这里写图片描述是能推导出一定是ai=0或yi=0不会是我之前想的情况有正有负- -

参考资料
1.http://www.cnblogs.com/zhangchaoyang/articles/4306833.html
2.http://blog.csdn.net/zouxy09/article/details/17291543(包括松弛变量的部分)

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

机器学习实战python实例(2)SVM与核函数

前两篇博客涉及到的SVM还只是一个线性分类器,如果在二维情况下遇到如下的情况,线性分类器的效果就不会很好了 这个时候我们就需要一个叫做核函数的东西,简单来说它的最大作用就是把低维数据映射到高维数据,...

机器学习实战python实例(2)SVM优化

简易版的SVM中,SMO算法中α的选择采取遍历且随机的方式,见http://blog.csdn.net/xiaonannanxn/article/details/52372085 优化版中,我们采取...

学习笔记——支持向量机svm(3)kernel trick(核函数)

回顾上一篇讲到了svm的对偶问题: 将svm的算法维度(w维度)由vc维变成了跟数据量N,但是这样真的就完全简化了么?在我们求Q这个矩阵时,需要先将x转化为z,然后再做内积,复杂度是d^2。在这...

机器学习实战python实例(2)SVM

以下代码涉及到的公式推导参照于以下两篇文章,数学推导的部分写的非常好!(如果不了解数学推导过程,代码中的一些部分很可能看不懂) http://www.thebigdata.cn/JieJueFang...

Android屏幕中隐藏标题栏和状态栏

在android开发中时常会碰到要全屏显示程序的时候,有2个方法可以解决这个问题一个是在Activity的setContextView()方法之前调用//隐藏标题栏 this.requestWind...
  • yimo29
  • yimo29
  • 2011-03-04 18:01
  • 30049
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)