在一个线性分类器中,可以看到SVM形成的思路,并接触很多SVM的核心概念。用一个二维空间里仅有两类样本的分类问题来举个小例子。如图所示

是要区分的两个类别,在二维平面中它们的样本如上图所示。中间的直线就是一个分类函数,它可以将两类样本完全分开。

实际上,一个线性函数是一个实值函数,而我们的分类问题需要离散的输出值,例如用1表示某个样本属于类别,而用0表示不属于(不属于也就意味着属于),这时候只需要简单的在实值函数的基础上附加一个阈值即可,通过分类函数执行时得到的值大于还是小于这个阈值来确定类别归属。 例如我们有一个线性函数:

我们可以取阈值为0,此时也等价于给函数附加一个符号函数,即是最终真正的判别函数。

实际上很容易看出来,中间那条分界线并不是唯一的,我们把它稍微旋转一下,只要不把两类数据分错,仍然可以达到上面说的效果,稍微平移一下,也可以。此时就牵涉到一个问题,对同一个问题存在多个分类函数的时候,哪一个函数更好呢?显然必须要先找一个指标来量化“好”的程度,通常使用的都是叫做“分类间隔”的指标。

函数间隔(functional margin)和几何间隔(geometric margin

给定一个训练样本,x是特征,y是结果标签。i表示第i个样本。我们定义函数间隔如下:

可想而知,当时,在我们的g(z)定义中,的值实际上就是。反之亦然。为了使函数间隔最大(更大的信心确定该例是正例还是反例),当时,应该是个大正数,反之是个大负数。因此函数间隔代表了我们认为特征是正例还是反例的确信度。

继续考虑w和b,如果同时加大w和b,比如在前面乘个系数比如2,那么所有点的函数间隔都会增大二倍,这个对求解问题来说不应该有影响,因为我们要求解的是,同时扩大w和b对结果是无影响的。这样,我们为了限制w和b,可能需要加入归一化条件,毕竟求解的目标是确定唯一一个w和b,而不是多组线性相关的向量。

刚刚我们定义的函数间隔是针对某一个样本的,现在我们定义全局样本上的函数间隔

说白了就是在训练样本上分类正例和负例确信度最小那个函数间隔。

接下来定义几何间隔,先看图

假设我们有了B点所在的分割面。任何其他一点,比如A到该面的距离以表示,假设B就是A在分割面上的投影。我们知道向量BA的方向是(分割面的梯度),单位向量是。A点是,所以B点是(几何向量),带入得:

进一步得到

实际上就是点到平面距离。

上式更为准确的写法(考虑正例和反例):

时,不就是函数间隔吗?是的,前面提到的函数间隔归一化结果就是几何间隔。他们为什么会一样呢?因为函数间隔是我们定义的,在定义的时候就有几何间隔的色彩。同样,同时扩大w和b,w扩大几倍,就扩大几倍,结果无影响。同样定义全局的几何间隔

最优间隔分类器(optimal margin classifier

回想前面我们提到我们的目标是寻找一个超平面,使得离超平面比较近的点能有更大的间距。也就是我们不考虑所有的点都必须远离超平面,我们关心求得的超平面能够让所有点中离它最近的点具有最大间距。形象的说,我们将上面的图看作是一张纸,我们要找一条折线,按照这条折线折叠后,离折线最近的点的间距比其他折线都要大。形式化表示为:

这里用规约w,使得是几何间隔。

到此,我们已经将模型定义出来了。如果求得了w和b,那么来一个特征x,我们就能够分类了,称为最优间隔分类器。接下的问题就是如何求解w和b的问题了。

我们想先处理转化一下,考虑几何间隔和函数间隔的关系,,我们改写一下上面的式子:

这时候其实我们求的最大值仍然是几何间隔,只不过此时的w不受的约束了。

然而这个时候目标函数仍然不是凸函数,没法直接代入优化软件里计算。我们还要改写。(前面说到同时扩大w和b对结果没有影响,但我们最后要求的仍然是w和b的确定值,不是他们的一组倍数值,因此,我们需要对做一些限制,以保证我们解是唯一的。)这里为了简便我们取。这样的意义是将全局的函数间隔定义为1,也即是将离超平面最近的点的距离定义为。由于求的最大值相当于求的最小值(之所以采用这种形式,是因为后面的求解过程会对目标函数作一系列变换,2次方形式会使变换后的形式更为简洁),因此改写后结果为:

这下好了,只有线性约束了,而且是个典型的二次规划问题(目标函数是自变量的二次函数)。代入优化软件可解。

到这里发现,这个讲义虽然没有像其他讲义一样先画好图,画好分类超平面,在图上标示出间隔那么直观,但每一步推导有理有据,依靠思路的流畅性来推导出目标函数和约束。

接下来介绍的是手工求解的方法了,一种更优的求解方法。

2. SVM线性分类器相关推荐

  1. 2.1.SVM线性分类器

    文章目录 1.笔记总结 1.1.Small Questions 1.1.1.图像xi的定义,行列的问题 1.1.2.np.hstack函数 1.1.3.np.random.randn()正态分布随机数 ...

  2. sklearn.svm中LinearSVR(svm线性回归)、LinearSVC(svm线性分类)与SVC(svm分类)、SVR(svm回归)之间的区别

    区别: LinearSVC: SVM线性分类器:用来实现线性的分类任务 """鸢尾花数据集,执行一个分类问题"""import numpy ...

  3. SVM中的线性分类器

    线性分类器: 首先给出一个非常非常简单的分类问题(线性可分),我们要用一条直线,将下图中黑色的点和白色的点分开,很显然,图上的这条直线就是我们要求的直线之一(可以有无数条这样的直线)     假如说, ...

  4. 【机器学习】SVM学习(三):线性分类器的求解

    [机器学习]SVM学习(三):线性分类器的求解 2016-10-10 19:56 239人阅读 评论(0) 收藏 举报 本文章已收录于:  机器学习知识库  分类: 机器学习(37)  目录(?)[+ ...

  5. SVM学习(三):线性分类器的求解

    1.问题的描述 上节说到我们有了一个线性分类函数,也有了判断解优劣的标准--即有了优化的目标,这个目标就是最大化几何间隔,但是看过一些关于SVM的论文的人一定记得什么优化的目标是要最小化||w||这样 ...

  6. 线性分类器:感知器/SVM

    线性可分 存在一个超平面,可以将数据集的正负例完全正确地划分至超平面两侧.如:左图中的数据是线性可分,而右图不是.     线性模型形式 是x在第i个特征的取值. 反映了第i个特征的重要程度.如 可看 ...

  7. CS231n 学习笔记(2)——神经网络 part2 :线性分类器,SVM

    *此系列为斯坦福李飞飞团队的系列公开课"cs231n convolutional neural network for visual recognition "的学习笔记.本文主要 ...

  8. 图像的线性分类器(感知机、SVM、Softmax)

      本文主要内容为 CS231n 课程的学习笔记,主要参考 学习视频 和对应的 课程笔记翻译 ,感谢各位前辈对于深度学习的辛苦付出.在这里我主要记录下自己觉得重要的内容以及一些相关的想法,希望能与大家 ...

  9. 线性分类器与非线性分类器的区别是什么?有哪些优劣特性?

    线性分类器与非线性分类器的区别是什么?有哪些优劣特性? 线性分类器 线性分类器就是用一个"超平面"将两个样本隔离开,如:   (1)二维平面上的两个样本用一条直线来进行分类:    ...

最新文章

  1. numpy向量加一个常数=向量中的每个值加上这个常数,最后返回一个同维的向量
  2. Linux下使用popen()执行shell命令
  3. apache2 指令存取
  4. Spring Boot 2 快速教程:WebFlux Restful CRUD 实践(三)
  5. 软件测试——StringFunction测试
  6. 福建省计算机学会 noip比赛,重磅!福州一三附学生领衔全省前九名!他们将代表福建参加全国比赛!...
  7. freetds 移植
  8. NameNode 启动失败 - There appears to be a gap in the edit log. We expected txid xxx, but got tx
  9. 人工智能导论 王万良教授_FCES2019 panel4:人工智能的第一堂课究竟讲什么?
  10. springsecurity oauth2_跟OAuth2杠上了,老师,我要学全套的!
  11. HDOJ 4302 Holedox Eating (multiset || 线段树)
  12. 【PCB学习笔记】绘制智能车四层板 --- DRC检查,拼版设计及资料输出
  13. 经纬度度分秒转换小数.sql[原创]
  14. 公司电脑企业微信连接不上服务器,企业微信登不上原因是什么?官方回应:服务器升级的锅!...
  15. NOIP 模拟题 小G的城堡
  16. mysql where clause is ambiguous_mysql …in where clause is ambiguous
  17. Zemax学习笔记——序列模式点光源与平行光设置
  18. haml VS erb
  19. 深度学习 Day 8——解决GIF生成错误以及有关GAN过程问题
  20. 求次方的c语言程序,C语言编程求13的13次方的最后三位数

热门文章

  1. 广电+央视能否有力量横扫运营商+互联网?
  2. Kubernetes 的CRI-O容器引擎中存在严重漏洞
  3. C语言利用栈计算算式(表达式)
  4. 无线SD-WAN提供商Cradlepoint完成C轮融资8900万美元
  5. Hdu2680 最短路
  6. 一个肉夹馍引起的思考
  7. 2011年12月1日学习内容总结
  8. .NET 4 并行(多核)编程系列之一入门介绍
  9. Altlas M1 and Tips of Debugger Visualizers
  10. 使用C语言计算utf-8字符串长度 和取子字符串-转