支持向量机是一种二分类分类模型,基本模型是定义在特征空间上的间隔最大的线性分类器,由简单到复杂可分为:

线性可分支持向量机:适用于训练数据线性可分的情况,通过硬间隔最大化学习一个线性分类器,又称为硬间隔支持向量机。

线性支持向量机:适用于训练数据近似线性可分的情况,通过软间隔最大化,学习一个线性分类器,又称为软间隔支持向量机。

非线性支持向量机:当训练数据线性不可分时,通过使用核技巧和软间隔最大化,学习一个非线性分类器。

前两种的输入空间的元素和特征空间的元素一 一对应,第三种利用一个非线性映射将输入空间的向量映射到特征空间的特征向量,支持向量机的学习是在特征空间上进行的。

一、线性可分支持向量机

对于线性可分的训练数据集,存在一个超平面可以将两类训练样本分开,进而在空间中存在无数个超平面可以将两类训练样本分开。但是哪一个超平面是最好的?

由于训练样本的测量可能有误差,只有图中红色的直线对误差的容忍程度会更多一点。问题又来了,如何定义这样一条红色的直线?首先要定义衡量每一条线的一个标准,每一条线都能算出一个性能指标,而且这个红色直线在这个性能指标下表现最好。

找一条直线,向下与向下的移动该直线,使它刚好擦到一个或者几个向量,将间隔d(margin)定义为性能指标,要使这个间隔最大,擦到的向量叫支撑向量。两侧的两条直线的中间直线就是我们要找的目标直线。

数据及其标签:

,

线性模型:

(超平面)

训练集线性可分:对于训练集

,使得:对
,若
,则
,若
,则

等价于

(公式1)

事实1:

是同一个平面,
,若(w,b)满足公式1,则(aw,ab)也满足公式1

事实2:向量

到超平面
的距离

用一个正数a去缩放超平面方程的系数,

,使得对于支撑向量
,从而
到超平面的距离d =
,要最大化这个距离d,并且对于所有样本
到超平面的距离都要大于等于d,所以这个优化问题的限制条件是
,所以最终的优化问题表述为(把
重新写为
):

s.t.

可以理解目标函数是为了找出超平面的斜率系数w,间隔只与w有关系,同一个w有无数个平行面,下面的约束条件是确定截距,保证最后求出的超平面在左右两侧平面的中间。

构建拉格朗日函数:

,
是拉格朗日乘子,
,每一个训练样本都对应一个约束,即拥有一个拉格朗日乘子。

原问题:

对偶问题:

(1)求

将拉格朗日函数分别对w,b求偏导数并等于0

得:

并带入到拉格朗日函数得:

(2)求

的极大值,等价于求
的极小值

s.t.

常用SMO算法求解上面的对偶问题,如果对偶问题的有最优解

,可以由
求得原始问题的最优解
:
, 最优解
只与
时的支撑向量有关。

证明上述等式:由于KKT条件成立,即得:

(1)求导为零条件:

(2)互补松弛条件:

(3)原问题的条件:

(4)对偶问题的条件:

如果拉格朗日乘子向量

的每一个元素为零,则
,显然这个不是原始最优化问题的解。所以至少存在一个
,而且
所对应的样本就是支撑向量。

由(2)条件知道,对于

, 将
代入得:
,等式两侧乘上
,最终得到
,分离超平面可以写为:

一、线性支持向量机与软间隔最大化

当数据集线性不可分的时候,上述的线性可分支持向量机的优化问题是没有解的,所以要在原有方法上进行改进,原有的约束条件比较苛刻,所以要对每个样本点的约束条件引入一个松弛变量, 优化问题变为:

s.t.

显然线性支持向量机包含了线性可分支持向量机(当所有

都为0),且最常用。

拉格朗日函数:

其中,

得:

,带入拉格朗日函数得:
,然后对
得最大值。得到对偶问题:

s.t.

我们发现对偶问题得求解与松弛变量无关,与惩罚参数

大小有关

如果求得对偶问题的有最优解

,可以由
求得原始问题的最优解
:

证明上述等式:由于KKT条件成立,即得:

(1)求导为零条件:

(2)互补松弛条件:

(3)原问题的条件:

(4)对偶问题条件:

,由条件(1)得知,
,由条件(2)得知,
,把
带入,等式两侧乘以
得到:
,分离超平面:

这个结果与之前的数据集线性可分情况几乎一样,可以理解为去掉训练数据中一小部分样本后,剩余大部分样本变为线性可分了,去掉的样本分布在软间隔内,我们可以通过设置超参数

的大小来控制软间隔的大小,从而决定哪些样本分布在软间隔内。所以整个优化过程与松弛 变量
无关。

重点细节:讲解

不同的值与样本点相对于超平面的位置的关系。

(1)当

为支撑向量

(2)当

(2.1)当

在边界与超平面之间,
离超平面的距离为

(2.2)当

在超平面上

(2.3)当

,
在超平面的另一侧(误分类的一侧),
离超平面的距离为

(3)非线性支持向量机(核技巧) 当训练数据线性不可分时,需要超曲面模型来分开数据,我们可以用非线性映射将低维输入空间线性不可分的样本映射到高维特征空间使其线性可分,从而在高维特征空间采用线性支持向量机学习超平面模型。

定义一个低维空间到高维空间的非线性映射函数

,待优化问题目标函数变为:

核技巧思想:由于映射后的特征空间维度很高,甚至是无穷维,计算

太困难,所以定义一个核函数
来代替
,即在原先的低维空间定义一个运算来计算高维空间的点积,不需要显示地定义映射函数
。对于给定的核函数,特征空间和映射函数取法不唯一,即便对于同一个特征空间也可以采用不同的映射函数,优化问题转化为:

s.t.

找一个

,所求最优解
由于映射函数
未知,没办法计算,这时候就要体现出SVM核技巧精髓,整体求

最终的分离超平面为:

几种常见的核:

(1)多项式核函数:

(2)高斯核函数:

(3)指数核函数:

(4)拉普拉斯核函数:

支持向量机的基本思想_支持向量机理论详细推导相关推荐

  1. 支持向量机的基本思想_支持向量机的分类思想

    支持向量机是一种经典的机器学习算法,在小样本数据集的情况下有非常广的应用.本文将循序渐进地讲解支持向量机的分类思想. 目录: 函数间隔和几何间隔 支持向量机的分类思想 总结 1.函数间隔和几何间隔 为 ...

  2. 支持向量机matlab代码程序_支持向量机(SVM)小结

    什么是SVM? SVM(全称:Support Vector Machine)支持向量机,这只是它的名称,向量就是和我们以前学过的向量一样(下文有介绍),它可以有效解决分类问题(我们只讨论分类问题),何 ...

  3. 深入理解张正友相机标定法:数学理论详细推导

    最近在项目中需要在激光雷达(Lidar)和相机(Camera)之间进行标定,即需要标定出相机内参和外参,使用的标定方法是张正友标定法,这里给出其数学理论推导过程. 论文原文:<A Flexibl ...

  4. 6.支持向量机(SVM)、什么是SVM、支持向量机基本原理与思想、基本原理、课程中关于SVM介绍

    6.支持向量机(SVM) 6.1.什么是SVM 6.2.支持向量机基本原理与思想 6.2.1.支持向量机 6.2.2.基本原理 6.3.课程中关于SVM介绍 6.支持向量机(SVM) 6.1.什么是S ...

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

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

  6. 支持向量机 回归分析_支持向量机和回归分析

    支持向量机 回归分析 It is a common misconception that support vector machines are only useful when solving cl ...

  7. 从贝叶斯滤波理论到容积卡尔曼滤波算法(CKF)详细推导及编程实现常转弯率模型估计。(matlab)

    容积卡尔曼滤波(CKF)是由加拿大学者Arasaratnam和Haykin在2009年提出的.该算法的核心思想是针对非线性高斯系统,通过三阶球面径向容积准则来近似状态的后验均值和协方差,以保证在理论上 ...

  8. 支持向量机之松弛因子与线性支持向量机

    一.线性支持向量机解决的问题 线性可分支持向量机只支持线性可分的训练数据,通过硬间隔最大化实现分类数据:如果训练数据不是线性可分的,我们就需要使用线性支持向量机的方法,去除其中的一些异常点,从而实现剩 ...

  9. pca各个向量之间的相关度_详细推导PCA算法

    本文主要思路如下: 1 PCA优化目标 PCA(主成分分析)是一种数据降维的方法,即用较少特征地数据表达较多特征地数据(数据压缩,PCA属于有损压缩).PCA推导有两种主要思路: 最大化数据投影后的的 ...

最新文章

  1. mysql常用语句集锦
  2. 各种主流 SQLServer 迁移到 MySQL 工具对比
  3. 2、前端环境搭建(19.04.12)
  4. 前端性能优化 Web前端应该从哪些方面来优化网站?
  5. kafka副本数据同步策略
  6. SQL优化:化解表关联的多对多join
  7. GeekOS课程设计-project1
  8. python基础之进程、线程、协程篇
  9. mysql查看实例下的表_mysql 实例下具体查看库,和表的大小
  10. Altium Designer 学习笔记
  11. 还在为记不住js中的api烦恼吗?下面是我整理的我在学习js初级时用到过的部分api,希望能帮助到大家
  12. 德国汉诺威地面材料展览会搭建就找上海宽创国际
  13. linux中流设备_Linux纯干货知识总结|面试专用
  14. JVM(4)—类加载机制
  15. Windows 10电脑使用VMware虚拟机安装macOS苹果系统[一站式保姆级别教程]
  16. Java链表(基本操作)
  17. 淘宝天猫API_获取商品详情原数据
  18. securecrt连接不上vmware
  19. 如何与更优秀的人做朋友
  20. 产业分析:平台经济是什么

热门文章

  1. VS解决方案的目录结构设置和管理
  2. tp-03 模板显示
  3. 远程调试运行在Resin上面的Web应用程序
  4. 写一段最短的代码,用上js所有关键字
  5. OpenCV-图像金字塔cv::buildPyramid
  6. python ssh模块_python ssh之paramiko模块使用
  7. C语言题库青岛理工大学,青岛理工大学C语言期末复习题库.doc
  8. 21天jenkins打卡Day4-新增账号
  9. android 崩溃,android 9出现崩溃
  10. matlab虚拟现实之在V-Realm Builder2中建立父子关系