SVM明确的解释1__ 线性可分问题
笔者:liangdas
出处:简单点儿,通俗点儿,机器学习 http://blog.csdn.net/liangdas/article/details/44251469
引言:
1995年Cortes和Vapnik于首先提出了支持向量机(Support Vector Machine)。因为其可以适应小样本的分类。分类速度快等特点,性能不差于人工神经网络,所以在这之后,人们将SVM应用于各个领域。大量使用SVM模型的论文不断涌现,包含国内和国外。
可是。直到如今,非常少能见到对在一个能对SVM的原理准确,具体,通俗。严谨阐述的论文或者资料。所以决定查阅非常多的资料。结合自己的思考和理解,来写一篇关于SVM的系列文章。
线性可分问题:
在分类问题中。最简单的分类就是二分类问题,并且这个二分类问题是一个线性可分问题。那么对于一个线性二分类问题,它的目标函数是什么呢?确定目标函数之后。我们又用什么方法来求解呢?
在一维空间,也就是一个坐标轴上面。要分开两个能够分开的点集合,我们仅仅须要找到一个点。如图1:
图1 一维线性可分示意图
在二维空间中,要分开两个线性可分的点集合,我们须要找到一条分类直线就可以,如图2:
图2 二维线性可分示意图
在三维空间中,要分开两个线性可分的点集合,我们须要找到一个分类面:如图3:
图3 三维线性可分示意图
在n维空间中。要分开两个线性可分的点集合,我们须要找到一个超平面(Hyper Plane)。
为了直观,我们以上面二维空间为样例来分析:在图2中分布着两类点:淡蓝色和黑色的点。分别代表着不同的两个类别,显然,我们能够找到一条直线来把这两类点分开。高中的时候,常见的直线方程表达式是y=ax+b。我们如今用向量来表示,就是:,把向量(a。-1)用向量符号w来表示,维数向量(x。y)用向量符号x(此时的x是一个向量)来表示。那么直线方程就变成了w*x+b=0。
目标函数:
再次观察图2。能够知道,在这个二维平面中,能够把两类点的分开的直线有非常多条。如图4所看到的,那么这些直线中。哪一条才是最好的呢?也就是怎样选择出一条最好的直线呢?
图4 多条分类直线
在图4中。我们先看淡蓝色的点。假设这些点到分类直线的距离越大,分类直线也就越远离蓝色的点。那么再来一个新的点,假设这个点是按照淡蓝色点集合的特性产生的(也就是它不是一个相对于蓝色点集合非常神秘的点)。那么这个点也非常可能和蓝色的点集合一样,分布在直线的同一側。分布在同一側,表明它和蓝色集合点属于同一个类别。
用相同的思想,图4中,对于黑色的集合点,这条分类直线离它们的距离也要越远越好。所以找最优分类线。就是要找到这条一条直线,使它到两个类别点的距离越大越好。
回顾一下高中所学的点到直线的距离公式:直线(一般式):Ax+By+C=0另外一个点的坐标(x0, y0)。那么这点到这直线的距离就是:
那么。对于直线wx+b=0的形式,假设有一个点x,那么它到直线的距离公式就是。把向量
写成二范数的形式,即是:
所以上面的二维线性可分问题的目标函数就能够抽象成例如以下的数学表达式:
目标函数的简化:
对于一个待分类类别。为了自己的类别能准确地分类,都希望分类直线到自己的距离大些。当有两类的时候,就会形成相互竞争,最后的竞争结果就是让这条分类直线,到两个类别的距离相等。在生活中。通常也是这样达到一种平衡状态的。
如图5,我们作两条直线,和分类直线平行。让这两条直线分别经过以下蓝色和黑色集合的边界,同一时候。满足这两条直线到中间分类直线的距离相等,那么,我们能够假定这两条直线方程各自是wx+b=c, wx+b=-c。
图5 两类别到分类直线的距离相等
用两条平行直线的距离计算公式, 那么。两个类别集合到分类直线的近期距离
,这个公式,事实上和上面点到直线的距离公式是一样的。
对于一条直线,wx+b=c,我们对应的成比例的缩小他们的系数,如变成。这条直线和原来的直线还是同一条直线。如今把它变成
,新的直线还是和曾经直线是同一条直线。也就是说。对于直线wx+b=c,我们总能够找到另外的一条新的
w1=w/c, b1=w/c。使w1*x+b1=1, 并且这两条直线事实上表达的是同一条直线,这种话,上面的图5能够变成例如以下的图6:
图6 两类别到分类直线的距离相等
从图6中,结合我们要寻找的最优分类直线。是到两类类别点集合的距离最大的直线的思想,我们能够抽象出此时的目标函数:
这样,这个目标函数看起来就比原来简洁多了。
目标函数的约束条件:
在图6中。对蓝色样本点而言,不在w1*x+b1=1直线上的点。一定是在直线上面的点,它们满足w1*x+b1>1,所以对全部的蓝色样本点而言,它们都满足w1*x+b1>=1。同理,对全部黑色的样本点,都是满足w1*x+b1<=-1。
这两个条件是我们求解的限制条件。也就是我们寻找上面的目标函数的时候。必须满足上面的两个不等式约束。
满足条件:
观察上面的不等式条件表达式,是不是有一种想把两个式子合并成一个式子的冲动?事实上。上面蓝色点相应的不等式,我们在不等式两边同一时候乘以一个y=1;同理。黑色点相应的不等式,在式子两边同一时候乘以一个y=-1。 那么上面的两个式子能够变成。
可是,为什么能够在一个不等式的两边乘以一个1,而另外一个乘以-1呢?我们来看蓝色点相应的不等式,式子左边是样本点的维度向量x的表达式。对于一些训练样本点。它们另一个已知的类别标记量label,这里我们把它叫做y。这种话。对蓝色点的y值,我们人为将其定为1。而对黑色点的y值,我们将其定为-1,所以,对上面的两个不等式,分别在不等式的两边乘以类别值y,我们就能够自然将两个不等式合并成上面的那一个不等式了。
这也是为什么我们在生成SVM训练样本的时候,将两个类别分别定义成1和-1的原因!
到这里,我们目标函数能够写成:
这种一个目标函数是一个带不等式约束条件的优化问题。它怎么来求解呢?后面一章节来继续解说这个问题。
ps:使用或者转载请标明出处。禁止以商业为目的的使用。
版权声明:本文博主原创文章,博客,未经同意不得转载。
SVM明确的解释1__ 线性可分问题的更多相关文章
- 支持向量机(SVM)理论总结系列.线性可分(附带R程序案例:用体重和心脏重量来预测一只猫的性别)
附注:不要问我为什么写这么快,是16年写的. 1.名词解释 支持向量机中的机:在机器学习领域,常把一些算法看做一个机器,如分类机(也叫作分类器) 2.问题描述 空间中有很多已知类别的点,现在想用一个面 ...
- SVM清晰讲解——线性可分问题
转载作者:liangdas 引言: 1995年Cortes和Vapnik于首先提出了支持向量机(Support Vector Machine),由于其能够适应小样本的分类,分类速度快等特点,性能不差于 ...
- 线性可分支持向量机--SVM(1)
线性可分支持向量机--SVM (1) 给定线性可分的数据集 假设输入空间(特征向量)为,输出空间为. 输入 表示实例的特征向量,对应于输入空间的点: 输出 表示示例的类别. 线性可分支持向量机的定义: ...
- 线性可分SVM中线性规划问题的化简
在网上找了许多关于线性可分SVM化简的过程,但似乎都不是很详细,所以凭借自己的理解去详解了一下. 线性可分SVM的目标是求得一个超平面(其实就是求w和b),在其在对目标样本的划分正确的基础上,使得到该 ...
- 线性可分支持向量机与软间隔最大化--SVM(2)
线性可分支持向量机与软间隔最大化--SVM 给定线性可分的数据集 假设输入空间(特征向量)为,输出空间为. 输入 表示实例的特征向量,对应于输入空间的点: 输出 表示示例的类别. 我们说可以通过间隔最 ...
- svm 之 线性可分支持向量机
定义:给定线性可分训练数据集,通过间隔最大化或等价的求解凸二次规划问题学习获得分离超平面和分类决策函数,称为线性可分支持向量机. 目录: • 函数间隔 • 几何间隔 • 间隔最大化 • 对偶算法 1. ...
- 统计学习:线性可分支持向量机(SVM)
模型 超平面 我们称下面形式的集合为超平面 \[\begin{aligned} \{ \bm{x} | \bm{a}^{T} \bm{x} - b = 0 \} \end{aligned} \tag{ ...
- 统计学习2:线性可分支持向量机(Scipy实现)
1. 模型 1.1 超平面 我们称下面形式的集合为超平面 \[\begin{aligned} \{ \bm{x} | \bm{a}^{T} \bm{x} - b = 0 \} \end{aligned ...
- RBF网络——核心思想:把向量从低维m映射到高维P,低维线性不可分的情况到高维就线性可分了
RBF网络能够逼近任意的非线性函数,可以处理系统内的难以解析的规律性,具有良好的泛化能力,并有很快的学习收敛速度,已成功应用于非线性函数逼近.时间序列分析.数据分类.模式识别.信息处理.图像处理. ...
随机推荐
- amazeui学习笔记--css(基本样式2)--基础设置Base
amazeui学习笔记--css(基本样式2)--基础设置Base 一.总结 1.盒子模型:外margin,内padding,这里的内外指的边框 2.border-box:Amaze UI 将所有元素 ...
- 深度学习利器: TensorFlow系统架构及高性能程序设计
2015年11月9日谷歌开源了人工智能平台TensorFlow,同时成为2015年最受关注的开源项目之一.经历了从v0.1到v0.12的12个版本迭代后,谷歌于2017年2月15日发布了TensorF ...
- 如何把别人的原理图和pcb图建立一个完整的工程
这里是我从网友那里下载的pcb图和原理图 我们怎么通过这两个文件建立一个完整的工程 我们选中pcb图文件,通过下面的操作,就可以导出pcb封装库: 同样的方法,我选中pcb图,然后用下面图的方法,就可 ...
- HDU2438 Turn the corner【三分法】【数学几何】
Turn the corner Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- C++小项目-本校科协管理系统
前几天老师说让我把之前做过的一个小项目改动一下,用于新成员练手. 想到在我刚接触面向对象编程的时候,也是急需一个小的case来熟悉和深入对C++的理解.如今搞的这个东西.希望能够帮到学弟学妹们,嘻嘻. ...
- 飞镖忍者 quick-cocos2d-x3.2
经典的入门小游戏.这里用quick-cocos2d-x3.2又一次写一遍,以便熟悉下quick 首先,创建project,假设不会自行百度啊. 1.编译效果例如以下: watermark/2/text ...
- Intel X86 CPU 系列的寻址方式
Intel X86 CPU 系列的寻址方式 数据总线和地址总线要尽量相同,这个是一个地址就是一个指针.
- Ansible 部署
环境: vim /etc/hosts 192.168.199.61 Ansible 192.168.199.60 Nginx1192.168.199.62 Nginx2192.168.199.63 H ...
- WCF 设计和实现服务协定(01)
作者:jiankunking 出处:http://blog.csdn.net/jiankunking WCF 术语: • 消息 – 消息是一个独立的数据单元,它可能由几个部分组成,包含消息正文和消息头 ...
- [Err] 1136 - Column count doesn't match value count at row 1
1 错误描写叙述 [Err] 1136 - Column count doesn't match value count at row 1 Procedure execution failed 113 ...