https://www.toutiao.com/a6670858850679128588/

介绍

支持向量机(Support Vector Machine,以下简称SVM),作为传统机器学习的一个非常重要的分类算法,它是一种通用的前馈网络类型,最早是由Vladimir N.Vapnik 和 Alexey Ya.Chervonenkis在1963年提出,目前的版本(soft margin)是Corinna Cortes 和 Vapnik在1993年提出,1995年发表。深度学习(2012)出现之前,如果不考虑集成学习的算法,不考虑特定的训练数据集,在分类算法中的表现SVM说是排第一估计是没有什么异议的。

SVM本来是一种线性分类和非线性分类都支持的二元分类算法,但经过演变,现在也支持多分类问题,也能应用到了回归问题。本篇文章重点讲解线性支持向量机的模型原理和目标函数优化原理。

目录

  • 感知机模型
  • 理解线性支持向量机

一、感知机模型

在讲解SVM模型之前,我们可以先简单了解感知机模型的原理,因为这两个模型有一些相同的地方。在二维平面中,感知机模型是去找到一条直线,尽可能地将两个不同类别的样本点分开。同理,在三维甚至更高维空间中,就是要去找到一个超平面。定义这个超平面为wTx+b=0(在二维平面中,就相当于直线w_1*x+w_1*y+b=0),而在超平面上方的点,定义为y=1,在超平面下方的点,定义为y=-1。而这样的超平面可能是不唯一的,那么感知机是怎么定期最优超平面呢?从感知机模型的目标函数中,我们了解到它是希望让所有误分类的点(定义为M)到超平面的距离和最小。其目标函数如下:

(注:加入y_i是因为点若在超平面下,w*x_i+b为负数,需要乘上对应的y)

当w和b成比例增加了之后,比如都扩大N倍,会发现,分子和分母都会同时扩大N倍,这对目标函数并不影响。因此,当我们将W扩大或缩小一定倍数使得,||w||=1,分子也会相应的扩大或缩小,这样,目标函数就能简化成以下形式:

这个思想将会应用到支持向量机的目标函数优化上,后文将会详细讲解。

二、理解线性支持向量机

2.1 线性支持向量机思想

正如上文所说,线性支持向量机的思想跟感知机的思想很相似。其思想也是对给定的训练样本,找到一个超平面去尽可能的分隔更多正反例。不同的是其选择最优的超平面是基于正反例离这个超平面尽可能远。

线性支持向量机模型

从上图可以发现,其实只要我们能保证距离超平面最近的那些点离超平面尽可能远,就能保证所有的正反例离这个超平面尽可能的远。因此,我们定义这些距离超平面最近的点为支持向量(如上图中虚线所穿过的点)。并且定义正负支持向量的距离为Margin。

2.2 函数间隔和几何间隔

对SVM思想有一定理解之后,设超平面为wTx+b=0。我们讲解一下函数间隔和几何间隔的区别。

给定一个样本x,|wTx+b|表示点x到超平面的距离。通过观察wTx+b和y是否同号,我们判断分类是否正确。所以函数间隔定义γ'为:

而函数间隔不能正常反应点到超平面的距离,因为当我们等比例扩大w和b的时候,函数间隔也会扩大相应的倍数。因此,我们引入几何间隔。

几何间隔就是在函数间隔的基础下,在分母上对w加上约束(这个约束有点像归一化),定义为γ:

其实参考点到直线的距离,我们可以发现几何间隔就是高维空间中点到超平面的距离,才能真正反映点到超平面的距离。

2.3 SVM目标函数及优化

根据SVM的思想,我们可以知道是要取最大化支持向量到超平面的几何间隔,所以目标函数可以表示为:

在感知机模型最后,我们知道当同时扩大w和b,分子分母都会同样扩大,对目标函数不影响,所以在这里我们将分子(支持向量到超平面的函数间隔)扩大或压缩等于1,则目标函数可以转化为:

但是上式并不是凸函数,不好求解,再进一步转化为:

上式就是一个凸函数,并且不等式约束为仿射函数,因此可以使用拉格朗日对偶去求解该问题。

根据拉格朗日乘子法,引入拉格朗日乘子α,且α≥0我们可以知道,先不考虑min,(2)问题等价于:

然后再考虑min,则有:

应用拉格朗日对偶性,通过求解对偶问题得到最优解,则对偶问题的目标函数为:

这就是线性可分条件下支持向量机的对偶算法。这样做的优点在于:一是原问题的对偶问题往往更容易求解,二者可以自然的引入核函数,进而推广到非线性分类问题。

从(4)中,我们可以先求目标函数对于w和b的极小值,再求拉格朗日乘子α的极大值。

首先,分别对w和b分别求偏导数,并令为0:

将(5)和(6)代入(4)得到:

对(7)取反得到:

只要我们可以求出(8)中极小化的α向量,那么我们就可以对应的得到w和b,而求解α需要使用SMO算法,由于该算法比较复杂,我们将在下一篇文章专门讲解。假设我们现在已经使用SMO算法得到了最优的α值,记为α_ *

再求b:

对于任一样本(x_s, y_s)有:

注意到任一样本都有y_s^2=1,则将右式的1用y_s^2代:

将(9)代入上式,可以得到:

这样,我们就能够求解得到线性支持向量机的目标函数的各个参数,进而得到最优的超平面,将正负样本分隔开。但是在上文中我们没有讲解求α向量的SMO算法,在下篇文章,将会详细讲解SMO算法,欢迎继续关注。

支持向量机原理讲解(一)相关推荐

  1. SVM -支持向量机原理详解与实践之五

    SVM -支持向量机原理详解与实践之四 SVM原理分析 SMO算法分析 SMO即Sequential minmal optimization, 是最快的二次规划的优化算法,特使对线性SVM和稀疏数据性 ...

  2. Python3《机器学习实战》学习笔记(八):支持向量机原理篇之手撕线性SVM

    原 Python3<机器学习实战>学习笔记(八):支持向量机原理篇之手撕线性SVM 置顶 2017年09月23日 17:50:18 阅读数:12644 转载请注明作者和出处: https: ...

  3. SVM -支持向量机原理与实践之实践篇

    SVM -支持向量机原理与实践之实践篇 前言 最近太忙,这几天还是抽空完成实践篇,毕竟所有理论都是为实践服务的,上一篇花了很大篇幅从小白的角度详细的分析了SVM支持向量积的原理,当然还有很多内容没有涉 ...

  4. php 伪静态 page-18.html,PHP 伪静态实现技术原理讲解

    PHP 伪静态实现技术原理讲解 发布于 2015-01-18 23:52:58 | 129 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext Pre ...

  5. nginx反向代理原理讲解

    一 .概述                  反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器:并将从服务器上得到的结果 ...

  6. 支持向量机原理(五)线性支持回归

    支持向量机原理(一) 线性支持向量机 支持向量机原理(二) 线性支持向量机的软间隔最大化模型 支持向量机原理(三)线性不可分支持向量机与核函数 支持向量机原理(四)SMO算法原理 支持向量机原理(五) ...

  7. 微信小游戏开发教程-2D游戏原理讲解

    微信小游戏开发教程-2D游戏原理讲解 原理 为了更加形象的描述,这里先上一张图: 背景 a. 首先,我们看到背景好像是一张无限长的图片在向下移动.实际则不然,这是一张顶部和底部刚好重叠的图片.这是一种 ...

  8. 解密汽车全景行车安全系统的前世和今生——第二讲:原理讲解

    解密汽车全景行车安全系统的前世和今生--第二讲:原理讲解 来源:深圳市汽车电子行业协会 作者:姜卫忠 发布时间:2013-3-7  浏览(4648)次 解密汽车全景行车安全系统的前世和今生 第二讲:全 ...

  9. MATLAB机器学习系列-7支持向量机原理及其代码实现

    支持向量机原理 分类 如图,在分类中,我们需要找到一个超平面(图中包括间隔的平面)把圆圈和方框分开 原问题 间隔最小,同时保证真实输出和模型输出积大于1 对偶问题 原先的最小化问题变成了最大化问题,原 ...

最新文章

  1. Oracle Study之--ORA-12537(TNS:connection closed) 错误案例
  2. 来看看BAT在AR领域的布局,你给打几分?
  3. Tensorflow + OpenCV4 安全帽检测模型训练与推理
  4. swaagerui2 与guava_Swagger使用总结
  5. hive防止数据误删
  6. (08)Vivado时钟约束
  7. 关于Boost库的split函数在不同的编译器下的使用
  8. python operator 模块
  9. 图01---图的基本概念与模型
  10. 冰点还原精灵如何修改密码
  11. 银河麒麟WPS表格打开TXT文件的方法
  12. SPSS 探索性因素分析与验证性因素分析的区别【SPSS 034期】
  13. CSS基础教程(上)
  14. SCLK时钟信号可以高电平有效也可以低电平有效
  15. C++:identifier “string“ is undefined
  16. oracle误删除数据,恢复删除的数据,删除数据后提交恢复
  17. 康耐视VisionPro基础教程-GigE方式 连接相机
  18. html 怎么几秒后自动隐藏,3秒或5秒后自动隐藏提示消息和重定向到另一页
  19. MATLAB一元线性回归(最小二乘法)小例子
  20. 初中计算机教案模板,初中计算机教案模板

热门文章

  1. 开启注册丨EMNLP 2021论文预讲会,邀你一起共赏自然语言处理学术盛宴(日程全公开)...
  2. 国内唯一ACL最佳论文得主冯洋:冲击最佳论文需要知道的事情
  3. 手把手教你用Python构建自己的「王二狗」
  4. Python是一门杰出的语言,值得你去学习
  5. sci face 补全
  6. 【TPAMI2022】关联关系驱动的多模态分类
  7. 铲屎官福音:汪星人和喵星人的小情绪,AI 可以识别了
  8. 清华思客 | 蓝志勇:人工智能时代公共治理创新迫在眉睫
  9. 《人工智能与工业融合发展研究报告》: AI入局推动工业产业6大趋势变化(附PPT)...
  10. 送你200+篇论文,学习图或图神经网络必读!(附下载)