【超详细】支持向量机(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*的求解:直接带入\frac{\partial L(\lambda , w,b) }{\partial \lambda } = 0条件即可

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

 四、软间隔SVM(Soft Margin SVM)

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

1.Hinge Loss的引入

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

 2.软间隔SVM的形式

  • 10
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
支持向量机(Support Vector Machine, SVM)是一种常用于机器学习中的分类算法。其数学原理可以总结为以下几点: 1. 定义训练数据和标签:在SVM算法中,我们需要定义训练数据集的位置(xi)和对应的标签(yi)。这里的训练数据是指用于训练模型的输入样本,而标签是指每个训练样本所属的类别。 2. 线性可分思路:SVM算法的基本思想是将训练数据映射到一个高维空间,在这个空间中找到一个最优的平面,使得不同类别的样本尽可能地分开。这个最优的平面被称为分割平面。 3. 支持向量和间隔:在SVM算法中,支持向量是离分割平面最近的训练样本。支持向量的存在决定了分割平面的位置和方向。而间隔是指分割平面到最近的支持向量之间的距离。 4. 松弛变量:为了处理线性不可分的情况,SVM引入了松弛变量,允许一些样本距离分割平面有一定的误差。这样可以避免这些样本对模型学习的影响。 5. 核函数:SVM算法可以通过使用核函数来实现非线性分类。核函数的作用是将低维输入空间映射到高维特征空间,从而使得原本线性不可分的样本在高维空间中线性可分。 6. 多分类问题:虽然SVM最初是用于二分类问题的,但也可以扩展到多分类问题。常用的方法包括一对一(OvO)和一对多(OvR)策略,通过多个二分类模型的组合来实现多分类。 总结起来,支持向量机算法利用训练数据和标签定义模型,通过找到一个最优的分割平面来实现分类。它能够解决小样本情况下的机器学习问题,并通过核函数处理非线性分类。然而,SVM算法也存在一些缺点,比如对大规模训练样本的效率较低,对多分类问题的解决效果不理想,并且需要进行参数调优。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值