【超详细】支持向量机(SVM)数学推导
目录
一、硬间隔SVM(Hard Margin SVM)
二、对偶问题(Dual Problem)
1.将有约束问题转变为无约束问题
2.强对偶关系
3.计算拉格朗日函数的最小值
4.得到对偶形式
三、对偶形式的求解
1.KKT条件的引入
2.计算w*和b*
四、软间隔SVM(Soft Margin SVM)
1.Hinge Loss的引入
2.软间隔SVM的形式
SVM是一种无监督机器学习方法,常用于二分类问题。其相较于逻辑回归,引入了核函数的概念,对非线性关系有更好的分类效果;同时由于对偶问题的引入,使得计算的复杂性由维度的大小转变为样本的数量,避免了维度爆炸。但是由于SVM的本质是二次规划问题,样本数量大的时候,需要占用大量的存储空间和时间,不容易实现;同时SVM解决多分类问题存在一定困难。
一、硬间隔SVM(Hard Margin SVM)
硬间隔SVM是一个二次凸规划问题,其形式为:
其推导过程为:
(1)列出原始目标函数和约束条件。
目标函数:使间隔最大(间隔指离分隔线最近点到分隔线的距离)
约束条件:分隔线两侧的所有点均属于同一类别
即:
其中,间隔(最小距离)的推导过程如下:
(2)表达式化简
目标函数中,由于w与x无关,所以可以将1/||w||提出来;
由第一步得到的约束条件可知,必定存在一个γ>0,使得所有样本到分隔线的距离>γ,即:
这样,可以将目标函数中的min后所有元素进行替换,即:
(3)最终形式
目标函数:将max化为min,转化为二次型
约束条件:由于最小距离等于1,所以所有样本的距离大于等于1
二、对偶问题(Dual Problem)
在本问题中,可以将上面推出的二次规划问题转化为对偶形式:
引入对偶形式后,其目的为:
(1)方便引入核函数
(2)使约束函数从由维度、样本数量有关,变为仅与样本数量有关,方便计算。
其推导过程使用了拉格朗日(Lagrange)乘子法,拉格朗日乘子法方法的推导可参考下面博客。我们在这里仅套用Lagrange乘子法。
深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件_lijil168的博客-CSDN博客_拉格朗日乘子法
1.将有约束问题转变为无约束问题
带入Lagrange函数以及KKT条件,得到如下形式:
2.强对偶关系
拉格朗日为凹函数,其仅有最小值,没有最大值。
而目前的形式需要求拉格朗日函数的最大值,无法求得。所以需要对问题进行转变。
拉格朗日函数满足强对偶关系,即min max f(x) = max min f(x),可将上式化简为:
3.计算拉格朗日函数的最小值
拉格朗日函数有唯一最小值,故极小值即为最小值。
极小值的计算方式为:令偏导数等于0
4.得到对偶形式
代回原目标函数,即可得到最终结果。
三、对偶形式的求解
1.KKT条件的引入
由KKT条件的第三个式子可知,只有处于支持向量上的点(yf(x)-1=0)才可以满足第三个条件。所以在SVM中,仅有在支持向量上的点才有意义
2.计算w*和b*
w*和b*即为确定超平面的参数。
w*的求解:直接带入条件即可
b*的求解:由于仅有支持向量上的点起作用,所以代回支持向量上的样本点,对b*进行求解。
四、软间隔SVM(Soft Margin SVM)
引入软间隔SVM的目的是:防止由于噪声数据而产生的过拟合现象。
1.Hinge Loss的引入
Hinge Loss设置了一个阈值,使得偏差数值尽可能小。其函数图像如下。
2.软间隔SVM的形式
【超详细】支持向量机(SVM)数学推导相关推荐
- 超详细支持向量机知识点,面试官会问的都在这里了
(图片付费下载自视觉中国) 作者 | 韦伟 来源 | 知乎 导语:持续准备面试中,准备的过程中,慢慢发现,如果死记硬背的话很难,可当推导一遍并且细细研究里面的缘由的话,面试起来应该什么都不怕,问什么问 ...
- 支持向量机SVM 简要推导过程
SVM 是一块很大的内容,网上有写得非常精彩的博客.这篇博客目的不是详细阐述每一个理论和细节,而在于在不丢失重要推导步骤的条件下从宏观上把握 SVM 的思路. 1. 问题由来 SVM (支持向量机) ...
- 支持向量机 SVM 算法推导优缺点 代码实现 in Python
1.基本思想 前面讲到的Logistic Regression在拟合过程,实际上关注所有样本点的贡献,即寻找这么一个超平面,使得正例的特征远大于0,负例的特征远小于0,强调在全部训练数据上达到这一目标 ...
- 微积分、线性代数、概率论,这里有份超详细的ML数学路线图
大学时期学的数学现在可能派上用场了,机器学习背后的原理涉及许多数学知识.深入挖掘一下,你会发现,线性代数.微积分和概率论等都和机器学习背后的算法息息相关. 机器学习算法背后的数学知识你了解吗?在构建模 ...
- SVM(支持向量机)原理及数学推导全过程详解
由于格式问题,为方便阅读,请点击下方链接访问原文 点击此处访问原文 点击此处访问原文 点击此处访问原文 点击此处访问原文 关于SVM网上已经有很多很多的前辈有过讲解,这两天自己在网上看了看资料,结合前 ...
- 支持向量机(SVM)----超详细原理分析讲解
文章目录 支持向量机(SVM) 直观的本质理解 几个基础概念 决策超平面的求解(SVM模型的推导) 最大硬间隔的寻找与公式构建 拉格朗日乘数法的应用 使用对偶问题求解 一个小例子(求解决策超平面与决策 ...
- SVM支持向量机 超详细过程讲解
SVM支持向量机 超详细过程讲解 前言 一.线性模型 前言 此篇文章为B站浙大机器学习课程支持向量机部分的个人笔记,不喜勿喷.笔记顺序从线性模型到非线性模型,层层递进,十分易懂. 一.线性模型 先从一 ...
- 『自己的工作3』梯度下降实现SVM多分类+最详细的数学推导+Python实战(鸢尾花数据集)
梯度下降实现SVM多分类+最详细的数学推导+Python实战(鸢尾花数据集)! 文章目录 一. SVM梯度公式详细推导 1.1. SVM多分类模型 1.2. SVM多分类梯度公式推导 1.3. SVM ...
- SVM支持向量机-手写笔记(超详细:拉格朗日乘数法、KKT条件、对偶性质、最优化、合页损失、核函数...)
SVM支持向量机-手写笔记 作者:某丁 日期:2021.05.21 写完了,发现想要真正理解SVM还需要继续深入学习,以上所写只不过是冰山一角,我的管中窥豹而已. 参考 [1] 一文搞懂支持向量机(S ...
- 【机器学习基础】数学推导+纯Python实现机器学习算法8-9:线性可分支持向量机和线性支持向量机...
Python机器学习算法实现 Author:louwill 前面两讲我们对感知机和神经网络进行了介绍.感知机作为一种线性分类模型,很难处理非线性问题.为了处理非线性的情况,在感知机模型的基础上有了两个 ...
最新文章
- TaggerX——AI数据标注引入乡村振兴工作站解决农村地区青年就业问题【数据故事计划一等奖】...
- SQL Server查看错误日志存档编号及其详情
- 平板python_Wacom平板电脑的Python示例
- 问题解决:无法获得锁 /var/lib/dpkg/lock
- vs2008 c++ 调用java
- 搜索python代码的软件_用python编写一个高效搜索代码工具
- android原生webview,Android 原生与WebView JS的交互
- 企业级php第三方支付平台,ThinkPHP新版企业级php第三方api第四方支付平台程序源码商业版 带接口文件等 某宝售价3000元...
- nltk安装punkt等语料库时报SSL错误完美解决方案及离线安装方法
- python日志,支持彩色打印和文件大小切片写入和写入mongodb
- 使用 Python 实现鼠标键盘自动化
- 华为P30 Pro终极渲染图曝光:后置徕卡四摄颜值出众
- 例2.3 日期差值 - 九度教程第6题(日期类问题)
- Protel99se基本教程 Protel 99SE从零开始学习教程视频教程
- C++ cout的使用,看这一篇就够了
- 汇编:根据段大小计算偏移地址
- HTML+CSS大作业——水果介绍-橙子之家(6页) HTML+CSS+JavaScript 学生dreamweaver网页设计作业成品
- 《人类简史-从动物到上帝》读后感
- 2019念念不忘,2020必有回响!!!
- Adobe Acrobat XI Pro 软件下载安装详细教程
热门文章
- Selenium 详解CSS定位
- 什么是Trap消息?
- nunit php-fpm,首页 C#使用NUnit的-如何获得当前正在执行...
- 携程鞠躬道歉背后:三个月被投诉149次,涉嫌欺诈被多次起诉
- 站长新手如何做好SEO优化,如何让关键词快速上百度搜狗,神马,360首页
- 【xdoj难题集】 1018 Josephus环的复仇的复仇
- 阿里达摩院python教程真的吗_阿里达摩院推荐的最新400集python教程,据说懂中文就能上手...
- winform调用html,C#_C#通过html调用WinForm的方法,本文实例讲述了C#通过html调用W - phpStudy...
- Dynamic Web TWAIN 17.2.5
- 政府网站从管理型向服务型政府网站的转变过程中