SVM 是一块很大的内容,网上有写得非常精彩的博客。这篇博客目的不是详细阐述每一个理论和细节,而在于在不丢失重要推导步骤的条件下从宏观上把握 SVM 的思路。

1. 问题由来

SVM (支持向量机) 的主要思想是找到几何间隔最大的超平面对数据进行正确划分,与一般的线性分类器相比,这样的超平面理论上对未知的新实例具有更好的分类能力。公式表示如下:

 : 所有点中最小的几何间隔, 实际上就是支持向量上的点的几何间隔

 : 训练样本及对应标签, , 作用是将第 i 个样本点的几何间隔转化为正数

公式的意思是假设每个训练样本点的几何间隔至少是 , 求  的最大值。

由于几何间隔(没帽子)和函数间隔(有帽子)的关系是:

最大化  可以固定  ,求 ||w|| 的最小值或者固定 ||w||, 求  的最大值,一般选择前者: 固定函数间隔为 1, 将 \gamma = 1/||w|| 带入上式,同时为了计算方便, 目标函数等价于最小化 ||w||^2 ,约束优化问题转化为:

这是一个 QP 优化问题。

2. 对偶问题

利用拉格朗日乘子法将约束条件融入到目标函数:

SVM 的原始问题实际上是一个极小极大问题:

这个表达式有几个变量,先从哪一个着手?答案是  , 至于为什么,实际上是根据下面这个优化函数将原始问题的约束条件——函数间隔必须不小于 1 转化到拉格朗日乘子  向量上去的,先看函数的后面一部分:

很容易可以看出,如果样本点 xi 满足约束条件,即有 , 上式求最大,必定有 ,  alpha 与后面括号里面的式子必有一个为 0 (VI) 所有的样本点都满足约束条件,极小极大问题就转化为  , 如果有一个样本点不满足约束条件,alpha 值取无穷大,上式将取无穷大,显然是没有意义的。实际上,这段论述就说明了原始问题具有 KKT 强对偶条件,对于原始问题来说需要满足的 KKT 条件有哪些呢?

倒数两个条件是原始问题的条件,肯定成立。第一个条件是上面讨论过的条件:

  • 当样本不在支持向量上,alpha 一定等于 0, w 在不等式2的内部,这是一个松的约束,L 函数就等于 1/2||w||^2 , 取它的偏导为0就可以了。
  • 当样本点在支持向量上时, w 在不等式2的边界上,这是一个等式约束,这就和普通的拉格朗日等式约束相同,在最优点目标函数和约束条件函数的导数平行。用 wiki 的一张图来表示:

原始问题满足 KKT 条件,可以转化成一个最优解等价的对偶极大极小问题,先对极小部分求偏导:

得到对偶最优化问题:

对于一个新来的样本,将上面 w 的值带入 f(x) = w^T·x + b, 可以知道要判断新来的点,我们只需要计算它与训练点的内积即可,这是 kernel trick 的关键:

3. 软间隔

软间隔问题是应对 outliers 的一种方法。软间隔问题可以建立目标函数:

与硬间隔的优化方法相似,得到的解是:

4. Kernel Method

核方法是一种很巧妙的方法,既可以将特征映射到较高的维度,又可以地利用了 SVM 的内积运算避免了维度计算量的爆炸。最后的最优化问题与硬间隔优化问题相似,只要将两个样本的内积改为两个样本的核函数即可 (kernel substitution) :

当然,你也可以将两个样本的内积看做最简单的核函数。Kernel method 不仅可以用在 SVM 上,还可以用在 PCA、线性分类器上等,以后再专门写一篇 kernel method 的博客。

参考资料:

[1] pluskid 的博客

[2] 统计学习方法, 李航 著

from:http://www.cnblogs.com/daniel-D/ 

支持向量机SVM 简要推导过程相关推荐

  1. 支持向量机 SVM 算法推导优缺点 代码实现 in Python

    1.基本思想 前面讲到的Logistic Regression在拟合过程,实际上关注所有样本点的贡献,即寻找这么一个超平面,使得正例的特征远大于0,负例的特征远小于0,强调在全部训练数据上达到这一目标 ...

  2. 机器学习支持向量机SVM笔记

    SVM简述: SVM是一个线性二类分类器,当然通过选取特定的核函数也可也建立一个非线性支持向量机.SVM也可以做一些回归任务,但是它预测的时效性不是太长,他通过训练只能预测比较近的数据变化,至于再往后 ...

  3. 机器学习算法の03 支持向量机SVM

    机器学习算法の03 支持向量机SVM SVM的基本概念 线性可分支持向量机 非线性支持向量机和核函数 线性支持向量机与松弛变量 LR与SVM的区别与联系 SVM的基本概念 基本概念: 支持向量机(su ...

  4. SVM支持向量机超详细数学推导过程

    感谢哔哩哔哩阿婆主:shuhuai008 .视频讲解:https://www.bilibili.com/video/av28186618/?p=1 SVM有三宝:间隔.对偶.核技巧(核函数) 三个不同 ...

  5. 使用支持向量机进行光学字符识别_从零推导支持向量机 (SVM)

    雷锋网 AI 科技评论按,本文作者张皓,目前为南京大学计算机系机器学习与数据挖掘所(LAMDA)硕士生,研究方向为计算机视觉和机器学习,特别是视觉识别和深度学习. 个人主页:http://lamda. ...

  6. 从零推导支持向量机 (SVM)

    雷锋网(公众号:雷锋网) AI 科技评论按,本文作者张皓,目前为南京大学计算机系机器学习与数据挖掘所(LAMDA)硕士生,研究方向为计算机视觉和机器学习,特别是视觉识别和深度学习. 个人主页:http ...

  7. [转] 从零推导支持向量机 (SVM)

    原文连接 - https://zhuanlan.zhihu.com/p/31652569 摘要 支持向量机 (SVM) 是一个非常经典且高效的分类模型.但是,支持向量机中涉及许多复杂的数学推导,并需要 ...

  8. SVM推导过程注解(一)

    前言 支持向量机(Support Vector Machine)的原理其实比较简单,它是基于结构风险最小化理论之上在特征空间中建构最优分割超平面.在二维中就是线,在三维中就是面,但我们统称为超平面. ...

  9. 支持向量机(SVM)推导

    1.svm定义   SVM从线性可分情况下的最优分类面发展而来 .最优分类面就是要求分类线不但能将两类正确分开( 训练错误率为0),且使分类间隔最大.SVM 考虑寻找一个满足分类要求的超平面,并且使训 ...

最新文章

  1. CentOS 6安装DHCP
  2. iOS FMDB之FMDatabaseQueue(事物与非事物)
  3. npm中package-lock.json的作用:npm install安装时使用
  4. 当YOLOv5遇见OpenVINO
  5. Android判断当前的android设备是否处于联网状态
  6. linux 内存不足时候 应该及时回收page cache
  7. 各种Oracle常见操作2
  8. 从html导出带样式的excel,关于将HTML导出到Excel中时样式的问题
  9. Service Mesh 是新瓶装旧酒吗?
  10. 基于知识图谱的问答系统实践
  11. Android开发笔记(一百五十六)通过渲染纹理展示地球仪
  12. 衔接UI线程和管理后台工作线程的类(多线程、异步调用)[转]
  13. python :super 的作用
  14. 华为配置DHCPv6
  15. ECharts数据可视化:入门、实战与进阶干货分享(GitHub 44.5k)
  16. Kali——绕过杀毒软件检测工具Veil-Evasion
  17. mysql ibd 恢复_MySQL:如何从ibd文件中恢复数据
  18. MySQL插入数据库乱码问题Incorrect string value: ‘\xE8\xB5\xB5‘ for column ‘name‘ at row 1
  19. PCM音频处理一:分离左右声道音频
  20. UnicodeEncodeError: ‘gbk‘ codec can‘t encode character ‘\xa0‘ in position 21: illegal multibyte sequ

热门文章

  1. Rust语言之HelloWorld Web版
  2. AI“入侵”华尔街 高端职位也不保
  3. Docker Review - 图形化工具 Portainer
  4. 计网 - TCP 实战:如何进行 TCP 抓包调试?
  5. Apache ZooKeeper - 高可用ZK集群模式搭建与运维
  6. 实战SSM_O2O商铺_06logback配置与使用
  7. Python-爬取自己博客文章的URL
  8. Oracle-使用awrrpt.sql生成AWR报告
  9. java投票输出票数最高前三名,给你喜欢的作品投票,票数前三名获本平台赠送书一本。|诗花朵朵...
  10. 项目实战-解决AES(java.security.InvalidKeyException: Illegal key size)