机器学习算法之SVM学习理解(一)
来源:互联网 发布:阿尔法go算法 编辑:程序博客网 时间:2024/06/08 09:25
支持向量机SVM是一种分类方法。首先考虑线性的情况,如图所示的一个二元分类:
红线对应超平面,超平面一边的数据对应的分类结果y全是1,另一边全是-1。
红线对应的分类函数为:
式中,为系数n*1的向量,为数据点向量,大小为n*m。
如下图所示:当时,说明此时的点在超平面上。左侧的点,都使其满足,即,y=-1;右侧的点,都使其满足,即,y=1。
现在考虑超平面在什么位置合适?答案是,在上图中两条虚线的中间位置。途中两条虚线所连接的点就称为支持向量。那么接下来的问题就是求和使得超平面在中间位置,也就是"有最大的间隔"。
1. 函数间间隔和几何间隔
一般而言,一个点距离超平面的远近可以表示为分类预测的确信或准确程度。
在超平面确定的情况下,能够相对的表示点x到距离超平面的远近,而的符号与类标记 y的符号是否一致表示分类是否正确,所以,可以用量的正负性来判定或表示分类的正确性和确信度。
函数间隔定义为:
超平面关于训练集的函数间隔为超平面关于所有样本点(是一个向量,大小为1*m,m代表有m个特征) 的函数间隔最小值,是特征,y是结果标签(1或者-1) ,i表示第i个样本,有:
但是函数间隔会随着成比例的变化而变化,而成比例的变化所对应的最小间隔(或者超平面)还是同一个,不利于进行约束计算。因此,引入几何间隔。
几何间隔定义为:
式中,等式左边 表示几何间隔,右边 表示函数间隔。
如下图所示,几何间隔表示点到超平面的距离。
2. 最大间隔分类器
由于几何间隔为点到超平面的距离,所以,当这个距离越大,代表分类正确的把握(可能性)也越大。为了使一个具有n个点的数据集都分类正确,我们希望的的是找到n个数据集中几何间隔最小的点,并使得其几何间隔最大化。数据集中最小的几何间隔定义为数据集的几何间隔。最大化间隔分类器将使得这个间隔最大。
所以,最大间隔分类器的目标定义为:
(几何间隔)
需要满足的条件:
(函数间隔)
这是因为是数据集中最小的几何间隔。
为方便推导和优化,令(是指函数间隔),由于函数间隔可以任意放大和缩小,所以对目标函数优化没有影响。由于几何间隔,而函数间隔,所以目标函数转化为:
通过求解该问题,即可得到最大间隔分类器。
3. 问题的转化
以上的得到的目标函数,经转化可得到:
这是一个二次优化的问题:目标函数是二次的,约束条件是线性的。
对偶变量的优化求解:
引入Lagrange对偶变量,将约束函数融入到 目标函数中去:
令:
式中, 不小于0,因为若小于0,会无穷大,找不到合适的。
当所有的条件满足时, ,因为后面一部分表达式最小为0。现在的目标函数为:
取的最小值是因为我们的原问题是取得最小值。
当满足KKT条件时,将问题转化为,两者问题等价:
求解上式的过程,第一步,先固定,而让关于和最小化,分别对这两个求偏导数,即令,,得到:
带入到得到:
式中的i,j说明任意两个元素(包括与自身)都要做该运算。
第二步,对求极大值,得到:
这样得到的结果里已经没有和,只有Lagrange乘子。如果解出了,有确定的关系可以得到和。
- 机器学习算法之SVM学习理解(一)
- 【机器学习算法】之SVM
- 机器学习之SVM算法(一)KKT条件
- 系统学习机器学习之SVM(一)
- 机器学习之深入理解SVM
- 机器学习理解之SVM原理详解
- 系统学习机器学习之SVM(四)--SVM算法总结
- 机器学习-SVM算法
- 机器学习算法-SVM
- 机器学习算法入门之(四) SVM
- 机器学习十大算法之SVM
- 机器学习之SVM
- 机器学习之SVM
- 机器学习算法-SVM理论
- 复习机器学习算法:SVM
- 机器学习算法总结--SVM
- 机器学习算法总结--SVM
- 机器学习(一):SVM
- UNIX 环境高级编程Chapter 1.2
- android源码编译之后的刷机过程
- 资深java软件工程师给大家的忠告
- JVM源码分析之堆外内存完全解读
- 计算机系统中与存储有关的那些事
- 机器学习算法之SVM学习理解(一)
- NOIP2013【优质代码】
- hdu2087--kmp
- eclipse的mybatis插件MyBatipse详解
- HDU
- 工业4.0,智能制造和大规模定制
- Introduction to Monte Carlo Tree Search
- 线程安全与可重入函数
- 欢迎使用CSDN-markdown编辑器