上篇文章我们简单介绍了SVM的几种情况,这篇文章我们来对SVM的基本型进行研究。

支持向量机简述
软间隔与正则化,核函数

文章目录

  • 前言
  • 一、超平面公式引出
  • 二、最大间隔
  • 三,优化约束,拉格朗日函数,对偶问题
  • 四,最优超平面
  • 五,求解最优超平面

前言

硬间隔就是我们的数据线性可分的情况,是一种比较理想的模型,但是对于新手理解SVM很友好。本篇主要是由图片和数学公式(手写)展示,若字太丑请谅解。


一、超平面公式引出


我们都知道超平面的公式是 W X + b = 0 WX+b=0 WX+b=0,可是为什么会是这个公式呢,而且 w w w和 x x x都是向量(上图中加粗了),那这是为什么呢?

我们从左到右的顺序来,

  • 我们首先画一个坐标轴 x 1 x_1 x1​为横轴, x 2 x_2 x2​为纵轴,因为平面中任何一条直线都可以用斜截式表示,所以我们就有了超平面表示公式的原型.
  • 然后我们移项,就可以得到两个向量相乘的形式,然后再把他们简写为W与X就得到了超平面的数学表达式了(后面为了方便, w w w和 x x x就没有以向量的形式写出来了,但大家一定要知道).
  • 我们推导虚线超平面的过程就是加一个常数 C C C然后除过去就得到我们的+1,-1分类的虚线超平面了.
  • 看右边在超平面上任取两点然后相减就得到了一个两个向量的点积为0,说明 w w w向量是超平面的法向量.

右边第一行是定义域,一定不能忘记啊,后面的图片上是没有的.

二、最大间隔

上面我们知道了超平面是怎么得来的,那现在我们就要真正解决支持向量机的问题了,就是最大化间隔(maximum distance).

  • 首先我们可以直观的通过点到超平面的距离公式直接得到distance,这种方法也告诉了我们间隔距离是由W和b(隐式的)影响着的.其实也可以通过这种方式得到我们的二次约束规划问题,但后面我们还是把他化简了,那我们介绍第二种从几何方向求距离(更好理解).
  • 如图所示,在虚线超平面上面取两个点,两式相减得到我们的向量点积形式.再通过余弦定理转化,distance就等于我们的W向量的模长分之二.
  • 距离得到了,要最大化我们还要满足一个约束,在硬间隔问题当中我们是不允许样本被错误分类的,所有样本只能出现在虚线超平面上或其一侧,我们的约束也是这样.
  • 然后为了便于计算,我们把最大化问题转化为了最小化问题,加平方的原因是利于后面的求导计算.

在W那里有两个绝对值符号,我们将其称为范数,其实只需要把其整体看作是模长就好了,不影响后面的计算.


三,优化约束,拉格朗日函数,对偶问题

上面我们最后得到了一个约束二次规划问题吗,其实他就是我们SVM的基本型了,但是我们要怎么求解呢?

有约束的问题我们一般将其转化为无约束问题求解,这里我们通过Lagrange函数转化,然后先求最小,在求最大问题我们一般用Dual问题再转化.

  • 通过Lagrange函数转化过后我们发现原来的约束条件变成了只需要保证拉式函数的乘子>=0就好了.(使用拉式函数一定要保证约束是小于等于0的啊)
  • 得到无约束的问题后我们就写出他的Dual问题进行求解,首先我们要对拉式函数的 w w w, x x x求偏导,再令偏导等于0(因为我们是求minimize,所以在他的极小值处,一阶导数是为0的),得到结果后在反代回拉式函数.
  • 由于引入了Dual问题,所以我们还要把KKT(karush-kuhn tucker)条件写出来,我们最终寻找最优解也是通过KKT条件来求解的.

因为KKT条件是原对偶问题的具有强对偶性的充要条件,所以我们可以用来求解.从上面的约束二次规划到下面的Dual问题都是可以用数学反推回去的,但是我们只是简单了解SVM,而且需要强大数学专业知识,所以就没必要了.

四,最优超平面

不要忘记我们SVM硬间隔问题是找到一个最优超平面能够将我们的两类数据完美的分隔开,所以我们同过样本测试最终就可以得到一个sign函数,当有新样本的时候我们就可以直接代入知道它属于哪一类了.

  • 寻找最优超平面就是找到 w w w和 x x x的最优解,而 w w w的最优接我们已经在拉式函数求偏导那里得到了,所以我们只需求 b b b的最优解. w w w与 b b b的最优解都是数据的线性组合.

五,求解最优超平面

我们上面已经知道了w的最优解,而现在吧的最优解我们可以通过那个松弛互补得到.

  • 我们优松弛互补条件可得,ai是大于等于0的,那么他的物理意义是什么呢?
  • 当 a i = 0 a_i=0 ai​=0时,样本可以落在平面任何地方,对于我们研究意义不大.
  • 而当 a i > 0 a_i>0 ai​>0时,此时样本必须落在我们的虚线超平面上面,此时,我们也称落在虚线超平面上面的样本为支持向量.那就是说必然存在一个样本 ( x k , y k ) (x_k,y_k) (xk​,yk​)使得等式成立.所以我们可以求出b的最优解.
  • 由于考虑到结果的鲁棒性,我们对b的最优解进行一个求平均值的操作,得到b最终的最优解.
  • 再将我们 b b b带回到上面最优超平面的sign函数中,就得到了最优超平面

至此,我们SVM的基本型数学原理推导结束,之后还会更新SVM的相关文章,包括软间隔与正则化,核函数etc,如果需要了解上面的相关数学知识,B站,知乎上面都有不错的资源.

机器学习——支持向量机——硬间隔与支持向量相关推荐

  1. 机器学习——支持向量机(SVM)之超平面、间隔与支持向量

    描述 SVM是一种二类分类模型,基本模型是定义在特征空间中的间隔最大的线性分类器. 学习策略是间隔最大化. 训练集线性可分时,通过硬间隔最大化,学习一个线性可分支持向量机: 训练集近似线性可分时,通过 ...

  2. 百面机器学习 #3 经典算法:01-1 线性可分(硬间隔)支撑向量机SVM

    文章目录 ①从原始问题到对偶问题 ②对偶问题的解的形式化简 ③从对偶问题的解到原问题的解 ④从原问题的解到分离超平面和决策函数.支撑向量 参考李航统计学习方法第7章. 支持向量机学习的基本想法是求解能 ...

  3. 机器学习西瓜书笔记:软间隔和支持向量回归SVR

    1.首先由SVM问题(最大间隔超平面模型):所有样本都可以正确分类的最优化问题,引入软间隔SVM(允许分类错误)的最优化问题,即需要添加损失函数(样本不满足约束的程度,或者说分类错误的程度),然后最优 ...

  4. 机器学习-SVM硬间隔与软间隔:重要参数C

    SVM在软间隔数据上的推广 到这里,我们已经了解了线性SVC的基本原理,以及SVM如何被推广到非线性情况下,还了解了核函数的选择和应用.但实际上,我们依然没有完全了解SVM用于二分类的全貌.我们之前在 ...

  5. 算法工程师面试备战笔记9_支持向量机(SVM)中的支持向量是什么意思

    题目 我们在下面的二元标签的数据集上训练一个线性SVM模型 这个模型中的支持向量是哪些? A. (−1,1),(1,1),(2,1) B. (−1,1),(−1,−1),(2,1) C. (0,1), ...

  6. 谢文睿:西瓜书 + 南瓜书 吃瓜系列 8. 软间隔与支持向量回归

    Datawhale南瓜书是经典机器学习教材<机器学习>(西瓜书)的公式推导解析指南,旨在让在学习西瓜书的过程中,再也没有难推的公式,学好机器学习. 航路开辟者:谢文睿.秦州 开源内容:ht ...

  7. 支持向量机中所谓的支持向量究竟是什么?

    1.支撑向量本质是向量,而这些向量却起着很重要的作用,如果做分类,他们就是离分界线最近的向量.也就是说分界面是靠这些向量确定的,他们支撑着分类面.名字就是这么来的...(就是离最优分类平面最近的离散点 ...

  8. [机器学习]支持向量机3——引入松弛因子

    支持向量机1--间隔和支持向量 支持向量机2--对偶问题 支持向量机3--引入松弛因子 支持向量机4--SMO算法 很多情况下,一个分离超平面并不能完全将训练数据分成两部分.那么我们这时可以允许出现一 ...

  9. 【机器学习系列】之SVM硬间隔和软间隔

    作者:張張張張 github地址:https://github.com/zhanghekai [转载请注明出处,谢谢!] [机器学习系列]之SVM硬间隔和软间隔 [机器学习系列]之SVM核函数和SMO ...

最新文章

  1. flask_模拟请求post,get
  2. jQuery-1.9.1源码分析系列(四) 缓存系统
  3. css编写要注意什么 及一些公用的样式和外部引用 转码
  4. Java的List排序
  5. proxy负载均衡、读写分离
  6. go mod引用git仓库中的包:拉取存放在gitee中的package
  7. C++中事件机制的简洁实现
  8. windows系统c 实现ftp服务器,windows系统c 实现ftp服务器
  9. 超一流 | 从XLNet的多流机制看最新预训练模型的研究进展
  10. 跋山涉水——深入 Redis 字典遍历
  11. 【代码优化】方法签名及参数检查
  12. oracle mysql 中文排序规则_Oracle 对汉字的order by排序规则
  13. 关于Nand Flash行地址和列地址的计算
  14. ORACLE通过dblink同步SDO_ORDINATE_ARRAY_STR的数据
  15. “人工智能”•从入门到入土 –导言
  16. java五子棋棋盘_java绘制五子棋棋盘代码示例
  17. python百度、必应、搜狗根据关键字爬取图片
  18. java 获取服务器信息
  19. linux下修改或删除包含乱码、特殊符号等文件名的文件
  20. 【C语言培训2】 前言 C语言程序设计课程介绍

热门文章

  1. 魔方(12)镜面魔方、苹果魔方、粽子魔方、三面体魔方
  2. Joint Discriminative and Generative Learning for Person Re-identification
  3. PHP中preg_match函数详解
  4. #你好Unity3D#避免玩家作弊(来自我的长微博)
  5. 微信小程序如何修改小程序名称
  6. 英特尔530和535哪个好_2020年终好物推荐,英特尔Evo平台认证更出彩
  7. (附源码)基于SpringBoot+Vue实验预约系统 毕业设计201524
  8. html 获取声音频谱,[前端]利用WebAudioAPI获取音频频谱(html5音频可视化)
  9. 【大数据开发】SparkCore——进阶算子、Action算子、查看分区数的三种方式
  10. -什么样的网站能赚钱