机器学习技法-Linear Support Vector Machine
来源:互联网 发布:warframe无网络连接 编辑:程序博客网 时间:2024/06/05 09:00
大纲
Large-Margin Separating Hyperplane
由于PLA算法的随机性,可能得到多条分割超平面,那么那条是最好的呢?
直觉告诉我们,最右边的是最好的。为什么呢?
先给个简单解释,一般情况下,训练样本外的测量数据应该分布在训练样本附近,但与训练样本的位置有一些偏差。若要保证对未知的测量数据也能进行正确分类,最好让分类直线距离正类负类的点都有一定的距离。这样能让每个样本点附近的圆形区域是“安全”的。圆形区域越大,表示分类直线对测量数据误差的容忍性越高,越“安全”。
如上图所示,左边的点距离分类直线的最小距离很小,它的圆形区域很小。那么,这种情况下,分类线对测量数据误差的容忍性就很差,测量数据与样本数据稍有偏差,很有可能就被误分。而右边的点距离分类直线的最小距离更大一些,其圆形区域也比较大。这种情况下,分类线对测量数据误差的容忍性就相对来说大很多,不容易误分。也就是说,左边分类线和右边分类线的最大区别是对这类测量误差的容忍度不同。
也就是说我们想要找一个最胖的分离超平面,胖瘦程度是指他和最近点的距离。
我们的目标应该是
- fatness,即margin最大
margin=minn=1...Ndistance(xn,W) - correctness:对于每一个样本点都有
ynWTxn>0
Standard Large-Margin Problem
1.点到超平面的距离
我们可以用
wTx1=−b wTx2=−b wT 是超平面的法向量,因为wT(x2−x1)=0 - 点到平面的距离是
project(x−x1)到wT上的长度
因此
将
因为对于分离超平面来说,每个点到分离超平面的距离可以写为
所以
我们可以把我们的目标函数转化为
2.Margin of Special Separating Hyperplane
我们知道
因此我们可以可欧率一种特殊的缩放
而且这里还可以省略
因为我们比较熟悉求解最小化问题,我们还可以把问题稍微转变一下,即
到这里我们已经推出了SVM的标准形式
Support Vector Machine
1.为什么叫做支持向量机
如上图所示,最大分离超平面只和边界上的点有关,而与其他的点没有关系,去掉这些点也没有关系,这些落在边界上的点叫做支持向量,支持向量一般很少,所以分离超平面由很少的重要的点所决定。
支持向量机的一般解法
本质上SVM的优化问题其实是一个二次规划问题,我们可以利用现有的二次规划工具来求解,我们只要把SVM与二次规划的参数对应好即可,如下图所示
因此(
计算对应的二次规划参数:
Q,p,aTn,cn 利用
QP(Q,p,A,C)⇒(b,w) 将
b,w带入gsvm 中求解分离超平面
Reasons behind Large-Margin Hyperplane
1 Why Large-Margin Hyperplane?
从视觉和直觉的角度,我们认为Large-Margin Hyperplane的分类效果更好。SVM的这种思想其实与我们之前介绍的机器学习非常重要的正则化regularization思想很类似。regularization的目标是将Ein最小化,条件是wTw≤C;SVM的目标是wTw最小化,条件是yn(wTxn+b)≥1,即保证了Ein=0。有趣的是,regularization与SVM的目标和限制条件分别对调了。其实,考虑的内容是类似的,效果也是相近的。SVM也可以说是一种weight-decay regularization,限制条件是Ein=0。
2 Large-Margin Restricts Dichotomies
从另一方面来看,Large-Margin会限制Dichotomies的个数。这从视觉上也很好理解,假如一条分类面越“胖”,即对应Large-Margin,那么它可能shtter的点的个数就可能越少:
Dichotomies是与VC维紧密相关的,Dichotomies越小,VC维越小,从而模型复杂度低,泛华能力强。
3 Benefits of Large-Margin Hyperplanes
- 分离超平面越少,
dVC 越小,泛华能力越强 - 分离边界越复杂,可能得到更好的
Ein
所以启发我们是否可以设计一种新算法
- 机器学习技法-Linear Support Vector Machine
- 机器学习技法-1-Linear Support Vector Machine
- 机器学习技法 笔记一 linear support vector machine
- 机器学习技法:01 Linear Support Vector Machine
- 机器学习技法-Kernel Support Vector Machine
- 机器学习技法总结(一):支持向量机(linear support vector machine,dual support vector machine)
- 台湾大学林轩田机器学习技法课程学习笔记1 -- Linear Support Vector Machine
- 机器学习技法课程学习笔记1 -- Linear Support Vector Machine
- 机器学习技法——第1-2讲.Linear Support Vector Machine
- Coursera 台大 机器学习技法 第一讲 Linear Support Vector Machine
- 机器学习技法-2-Dual Support Vector Machine
- 机器学习技法-3-Kernel Support Vector Machine
- 机器学习技法-4-Soft Margin Support Vector Machine
- 机器学习技法 笔记二 dual support vector machine
- 机器学习技法 笔记三 Kernel Support Vector Machine
- 机器学习技法 笔记四 Soft-Margin Support Vector Machine
- 机器学习技法 笔记二 dual support vector machine
- 机器学习技法-01-4-Support Vector Machine
- TP5 layui 自定义模板
- Scala基本语法
- h5选择结构
- 嵌套盒元素子元素margin-top影响父元素
- Scala隐式转换和隐式参数
- 机器学习技法-Linear Support Vector Machine
- NYOJ 860 又见01背包
- varargin和arargout用法
- 在suse Linux环境下搭建ES集群
- 用排列组合的方式实现输入三个数据从大到小输出数据
- LRU算法java数据结构实现
- 如何用html 写八卦
- 枚举类型
- 通信协议