SVM压制了神经网络好多年,如果不考虑集成学习算法,不考虑特定的训练集,在分类算法中SVM表现排第一。

  SVM是一个二元分类算法。

  SVM学习策略:间隔最大化,可形式化为一个求解凸二次规划问题。

  间隔最大化使它有别于感知机。

  SVM包括核技巧,使它成为非线性分类器。

  支持向量机模型包括:线性可分支持向量机、线性支持向量机、非线性支持向量机。当训练集线性可分,通过硬间隔最大化学习的线性分类器为线性可分支持向量机,又称硬间隔支持向量机;通过软间隔最大化学习的线性分类器为线性支持向量机,又称软间隔支持向量机;当训练及线性不可分,通过核技巧及软间隔最大化学习的称为非线性支持向量机。

1. 回顾感知机模型

  在感知机原理中,在二维就是找到一条直线,在三维或者更高维就是找到一个超平面,将所有二元类别分开。这个超平面定义为:wTx+b=0。如图,在超平面wTx+b=0上方定义y=1,在超平面下方定义y=-1。可以看出满足这个超平面的不止一个。我们尝试找到最好的。

  感知机损失函数优化的思想:让所有误分类点(定义为M)到超平面的距离之和最小,即下面式子的最小化:

  当w和b扩大N倍,分母L2范数也会扩大N倍。也就是分子,分母有倍数关系。所以可以固定分子或分母为1,然后求分母倒数或另一个分子最小化作为损失函数。感知机模型中,固定分母||w||2=1,则感知机损失函数简化为:

2. 函数间隔与集合间隔

  超平面为wTx+b=0,|wTx+b|为点x到超平面的相对距离。当wTx+b与y同号,分类正确,否则,分类不正确。这里引入函数间隔的感念,定义函数间隔 γ为:

  即函数间隔就是感知机模型中误分类点到超平面距离的分子。对于训练集中m个样本点对应的m个函数间隔的最小值,就是整个训练集的函数间隔。

  函数间隔并不能正常反应点到超平面的距离,在感知机模型中,分子成比例增长,分母也增长。为了统一度量,对法向量w加上约束条件,得到几何间隔γ为:

  几何间隔是点到超平面的真正距离,感知机模型里用到的距离就是几何距离。

3. 支持向量

  感知机利用误分类最小的策略,求得分离超平面有无穷多个;线性可分支持向量机利用间隔最大化求得最优分离超平面只有一个。

  如图,线性可分支持向量机:决策边界(实),间隔边界(虚),支持向量(红点)。

  支持向量到超平面的距离为1/||w||2,两个支持向量之间的距离为2/||w||2

  

4. SVM模型目标函数与优化

  SVM模型:让所有点到超平面的距离大于支持向量到超平面的距离。数学表达式:

  一般取函数间隔r‘(i)为1,表达式变为:

  也就是说在约束条件下 yi(wTxi + 1)≥1 (i = 1,2,3...m)下,最大化1/||w||2。可以看出,SVM是固定分子优化分母,同时加上支持向量的限制。

  由于的最大化等同于最小化。所以SVM的优化函数等价于:

  由于目标函数是凸函数,同时约束条件不等式是仿射的,根据凸优化理论,通过拉格朗日函数将优化目标转化为无约束的优化函数,这和最大熵模型原理中讲的目标函数优化方法一样。优化函数转化为:

  由于引入拉格朗日乘子,优化目标变为:

  和最大熵模型一样,这个优化函数满足KKT条件,可以通过拉格朗日对偶将优化问题转化为等价的对偶问题。

  

转载于:https://www.cnblogs.com/keye/p/10633530.html

支持向量机原理(一)线性支持向量机相关推荐

  1. SVM支持向量机原理(二) 线性支持向量机的软间隔最大化模型

    在支持向量机原理(一) 线性支持向量机中,我们对线性可分SVM的模型和损失函数优化做了总结.最后我们提到了有时候不能线性可分的原因是线性数据集里面多了少量的异常点,由于这些异常点导致了数据集不能线性可 ...

  2. 支持向量机原理(一) 线性支持向量机

    我只是一名搬运工,以下内容来自:刘建平Pinard:https://www.cnblogs.com/pinard/p/6097604.html 1. 背景   支持向量机(Support Vecor ...

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

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

  4. 支持向量机 一 :线性支持向量机介绍

    一.SVM简介 支持向量机(suport vector mechine,SVM)主要用于解决二分类问题.这里简单介绍一下线性SVM,希望能对SVM的入门者有所帮助. SVM是如何对样本对进行分类的呢? ...

  5. 支持向量机原理之线性SVM与非线性SVM

    一.什么是SVM? SVM的英文全称是Support Vector Machines,我们叫它支持向量机.支持向量机是我们用于分类的一种算法.让我们以一个小故事的形式,开启我们的SVM之旅吧. 在很久 ...

  6. 支持向量机原理(四)SMO算法原理

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

  7. 支持向量机原理_支持向量机

    支持向量机原理 Python数据科学 (Python Data Science) The support vector machines (SVM) algorithm has application ...

  8. 支持向量机1-线性可分支持向量机

    线性可分支持向量机 一.理论基础 一.支持向量机分类 二.函数间隔与几何间隔 三.支持向量 四.线性可分支持向量机 4.1 线性可分支持向量机的优化函数 4.2 线性可分支持向量机的最优化问题求解 4 ...

  9. 支持向量机原理讲解(一)

    https://www.toutiao.com/a6670858850679128588/ 介绍 支持向量机(Support Vector Machine,以下简称SVM),作为传统机器学习的一个非常 ...

  10. 支持向量机 二 :非线性支持向量机

    如果您还未了解 线性向量机,建议首先阅读 <支持向量机 一:线性支持向量机> 一.为什么要用非线性支持向量机? 线性支持向量机不香吗?为什么还要用非线性支持向量机? 线性支持向量机香是香, ...

最新文章

  1. 下怎么运行sh脚本_基于CentOS7系统添加自定义脚本服务及参数说明,附实例
  2. TortoiseGit入门(图文教程) Git,Github,puttygen,SSH
  3. 程序间数据共享与传递(2):EXPORT/IMPORT、SAP/ABAP Memory
  4. 【项目源码分享】基于C++实现的网店购物管理系统(VS2019控制台)
  5. 【OS学习笔记】二十六 保护模式八:任务门---任务切换
  6. mysql inputoutput_PHP:同时使用INPUT和OUTPUT参数(不“ INOUT”)调用MySQL存储过程
  7. Bootstrap 编码规范之HTML5 Doctype
  8. opencv 从原始的图像中找出ROI区域
  9. 服务器数据恢复过程(服务器数据恢复通用方法)
  10. 《万字长文》-吃透Docker-进阶篇
  11. 【论文笔记】Dynamic Convolution: Attention over Convolution Kernels
  12. 猜数字游戏(C语言)
  13. NOIP2016 天天爱跑步
  14. VS 2022 C++ 自定义头文件示例
  15. 机器学习——pr图的画法
  16. Git:SSL错误导致失败的解决办法
  17. 勒索病毒克星——No More Ransom
  18. 西瓜书决策树实现(基于ID3)——采用字典数据结构
  19. OpenGL ES EGL eglSwapBuffer
  20. i5 13400 和 i5-12400 差距 i513400对比12400选哪个好

热门文章

  1. OVS bridgebundleport分析(三十四)
  2. DPDK 大页内存实现(二十二)
  3. java中 菜单的触发事件_javaweb ajax+div实现左边菜单右边内容时点击菜单应该触发事件但是右边没反应...
  4. 测带宽的工具_iperf:服务端吞吐量测试工具
  5. 拼音转汉字 和 字符编码测试
  6. c# enum 解析
  7. 第一次react-native项目实践要点总结
  8. 区块链金融应用论坛关于量化的分享
  9. Linux内存管理 (2)页表的映射过程
  10. Log4j扩展使用--自定义输出