支持向量机(SVM)的详细推导过程及注解
来源:互联网 发布:mysql去除重复列 编辑:程序博客网 时间:2024/05/22 02:01
转自:http://blog.sina.com.cn/s/blog_4298002e010144k8.html
支持向量机的原理很简单,就是VC维理论和最小化结构风险。在阅读相关论文的时候,发现很多文章都语焉不详,就连《A Tutorial on Support Vector Machines for Pattern Recognition》这篇文章对拉格朗日条件极值问题的对偶变换都只是一笔带过,让很多人觉得很困惑。下面我将就SVM对线性可分的情况作详尽的推导。
使离H最近的正负样本刚好分别落在H1和H2上,这样的样本就是支持向量。那么其他所有的训练样本都将位于H1和H2之外,也就是满足如下约束:
写成统一的式子就是:
而超平面H1和H2的距离可知为:
SVM的任务就是寻找这样一个超平面H把样本无误地分割成两部分,并且使H1和H2的距离最大。要找到这样的超平面,只需最大化间隔Margin,也就是最小化。于是可以构造如下的条件极值问题:
其中:
那么我们要处理的规划问题就变为:
上式即为对偶变换,这样就把这个凸规划问题转换成了对偶问题:
其意义是:原凸规划问题可以转化为先对w和b求偏导,令其等于0消掉w和b,然后再对α求L的最大值。下面我们就来求解(6)式,为此我们先计算w和b的偏导数。由(3)式有:
为了让L在w和b上取到最小值,令(7)式的两个偏导数分别为0,于是得到:
将(8)代回(3)式,可得:
再把(9)代入(6)式有:
考虑到(8)式,我们的对偶问题就变为:
这个约束是这样得来的,如果(2)和(5)等效,必有:
把(3)式代入上式中,得到:
化简得到:
又因为约束(1)式和(4)式,有:
所以要使(13)式成立,只有令:,由此得到(12)式的约束。该约束的意义是:如果一个样本是支持向量,则其对应的拉格朗日系数非零;如果一个样本不是支持向量,则其对应的拉格朗日系数一定为0。由此可知大多数拉格朗日系数都是0。
计算得到最优分割面H的法向量w。而分割阈值b也可以通过(12)式的约束用支持向量计算出来。这样我们就找到了最优的H1和H2,这就是我们训练出来的SVM。
- 支持向量机(SVM)的详细推导过程及注解(一)
- 支持向量机(SVM)的详细推导过程及注解(一)
- 支持向量机(SVM)的详细推导过程及注解
- 支持向量机(SVM)的详细推导过程及注解
- 支持向量机(SVM)的详细推导过程及注解
- 支持向量机(svm)推导过程
- 支持向量机SVM推导及求解过程
- 支持向量机SVM推导及求解过程
- SVM支持向量机算法的详细推导
- 支持向量机SVM推导过程
- 支持向量机SVM 简要推导过程
- SVM(支持向量机)中高斯核函数的推导证明过程
- 支持向量机(SVM)推导
- 【机器学习】支持向量机SVM原理及推导
- SVM推导过程及SMO详细求解过程(一)
- SVM推导过程及SMO详细求解过程(二)
- 数据挖掘-SVM(支持向量机)的matlab基础DEMO详细注解
- SVM支持向量机的深入理解与完整的推导(1)
- Maven简介(一)
- JVM调优总结系列之四:分代垃圾回收
- latex字体大小调整
- OC和Swift混合编程引用Pods管理的模块
- DC/PT在任意位置停止执行脚本的方法
- 支持向量机(SVM)的详细推导过程及注解
- linux-GCC 常用命令
- 面试常见题
- Notepad++中格式化html代码的插件tidy2的下载与安装
- 梯度下降法综述
- 数组指针与指针数组
- 周易六十四卦——旅卦
- 排序算法过程
- 【C语言】素数>>准备考试