【超详细】支持向量机(SVM)数学推导

article/2025/9/13 6:36:13

目录

一、硬间隔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*的求解:直接带入\frac{\partial L(\lambda , w,b) }{\partial \lambda } = 0条件即可

b*的求解:由于仅有支持向量上的点起作用,所以代回支持向量上的样本点,对b*进行求解。

 四、软间隔SVM(Soft Margin SVM)

引入软间隔SVM的目的是:防止由于噪声数据而产生的过拟合现象。

1.Hinge Loss的引入

Hinge Loss设置了一个阈值,使得偏差数值尽可能小。其函数图像如下。

 2.软间隔SVM的形式


http://chatgpt.dhexx.cn/article/5exWko8J.shtml

相关文章

svm原理详细推导

笔者在查阅了大量资料和阅读大佬的讲解之后,终于对svm有了比较深一点的认识,先将理解的推导过程分享如下: 本文主要从如下五个方面进行介绍:基本推导,松弛因子,核函数,SMO算法,小结…

支持向量机SVM推导及求解过程

支持向量机是属于原创性、非组合的具有明显直观几何意义的分类算法,具有较高的准确率。 使用SVM算法的思路:(1)简单情况,线性可分情况,把问题转化为一个凸优化问题,可以用拉格朗日乘子法简化&am…

SVM 公式推导

1、SVM思想 (1)SVM算法的依据就是分类器B的分类间隔比分类器C的分类间隔大。这里涉及到第一个SVM独有的概念”分类间隔”。在保证决策面方向不变且不会出现错分样本的情况下移动决策面,会在原来的决策面两侧找到两个极限位置(越过…

机器学习笔记之十二——SVM原理及推导

svm(support vector machine)是一种二分类算法,它的目标在于寻找一个能将两种点分离的直线或平面或超平面。 如图(来自wiki): 图中的红线将两边数据点分开,这条线就是分割直线,同样…

DFS与DP算法

名词解释: DFS(Dynamic Plan):动态规划 DFS(Depth First Search):深度优先搜索 DFS与DP的关系 很多情况下,dfs和dp两种解题方法的思路都是很相似的,这两种算法在一定程度上是可以互相转化的。 想到dfs也就常常会想到dp…

​Python—数据结构与算法​---动态规划—DP算法(Dynamic Programing)

我们一路奋战, 不是为了改变世界, 而是为了不让世界改变我们。 目录 我们一路奋战, 不是为了改变世界, 而是为了不让世界改变我们。 动态规划——DP算法(Dynamic Programing) 一、🏔斐波那契…

XDOJ(智慧平台)--分配宝藏(用动态规划dp算法解决)(C语言)

------------------------------------------------------------ 作为西电渣渣,这是我第一次接触需要一些很明确的算法的题目。 第一次博客写废话较多hhh,可以直接到下面看分析 我在昨天晚上和舍友一起肝这道题,肝了一个晚上都没有解决&…

dp算法篇Day1

"多希望有人来陪我,度过末日啊~" 讲讲我为什么突然想更新这篇栏目。 想想自己也算 "系统" 接触计算机这个学科也有差不多一年了,回想起当初下定决心要全身心投入到这个专业或者说行业中来,现在到了这样的地步&#xff0c…

第十四周DP算法总结

这周自己主要再看DP算法的博客,感觉DP这一部分内容确实比之前的都要麻烦一些,最后攻克这一部分难题还是挺好的。 这周自己总结了一些题型,以及一些方法思路,最后再把动态规划和之前的分治和贪心做一下比较。下面是详细的总结。 动…

DP算法(Dynamic Programming,俗称动态规划)是最经典算法之一

DP算法(Dynamic Programming,俗称动态规划)是最经典算法之一.本笔记以耳熟能详的数塔问题为引子,深入讨论01背包的解决方法. 首先,如下图所示,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少? 这个问题,对…

DP算法:动态规划算法

步骤 (1)确定初始状态 (2)确定转移矩阵,得到每个阶段的状态,由上一阶段推到出来 (3)确定边界条件。 例题 蓝桥杯——印章(python实现) 使用dp记录状态&#x…

动态规划(DP)算法初识

先用大白话来说一下几种经典算法大概的意思: 贪心算法:我就一次机会,为了达到目的,其他的我啥也不考虑回溯算法:我有无数次机会,还能怕我有达不到目的的时候?动态规划算法:我能随意…

常用十大算法_动态规划算法(DP)

动态规划算法(DP) 高能预警:DP算法不容易理解,需要动脑筋查资料找例题 动态规划算法(Dynamic Programming),是将复杂问题拆分成子问题,并在子问题的基础上,求解复杂问题…

动态规划算法(DP)

校招笔试面试前,大家一般都会先去牛客网上刷刷题,《剑指offer》,《leetcode》走起来,然后初次入手,发现很多不会,不会到什么程度呢,连个想法都没有,于是就去讨论区看答案,然后java大神,c++大神会给出花式解答,他们喜欢在答案前加一句,简单的dp算法,递归就可以解决…

【算法笔记】树形DP算法总结详解

0. 定义 树形DP,又称树状DP,即在树上进行的DP,是DP(动态规划)算法中较为复杂的一种。 1. 基础 令 f [ u ] f[u]~ f[u] 与树上顶点 u u u有关的某些数据,并按照拓扑序(从叶子节点向上到根节点…

★动态规划(DP算法)详解

什么是动态规划:动态规划_百度百科 内容太多了不作介绍,重点部分是无后效性,重叠子问题,最优子结构。 问S->P1和S->P2有多少种路径数,毫无疑问可以先从S开始深搜两次,S->P1和S->P2找出所有路…

ubuntu安装qt

Ubuntu安装qt 到qt官网下载“qt-opensource-linux-x64-5.9.1.run” 分别安装g, build-essential, libglq-mesa-dev, libglu1-mesa-dev freeglut3-dev 输入指令:”sudo apt-get install g” -> “sudo apt-get install build-essential” -> “sudo apt-get i…

QT安装、构建套件(MSVC、MinGW)配置

QT安装、构建套件(MSVC、MinGW)配置 1. QT框架及QT Creator下载 登录QT官网-https://www.qt.io/download。 点击downloads for open source users 在页面最下方,点击Download the QT online Installer。 在安装网页的最下方处有一行小字 “We do recommend yo…

QT linux安装

转载地址:http://www.cnblogs.com/tangkaixuan/p/6504102.html 文章来自https://lug.ustc.edu.cn/sites/qtguide/ 1.4 Qt在Linux下安装 Qt在Linux系统里的安装要稍微复杂一些,因为Linux发行版众多,所以安装过程有些差异。 由于Linux系统都可…

Qt国内镜像安装

下载安装程序 https://download.qt.io/official_releases/online_installers/ 使用国内镜像打开安装程序 G:\下载\qt-unified-windows-x64-4.5.1-online.exe --mirror https://mirror.nju.edu.cn/qt清华源 https://mirrors.tuna.tsinghua.edu.cn/qt/online/qtsdkrepository/win…