支持向量机SVM 简要推导过程

本文介绍了支持向量机(SVM)的基本概念与原理,包括如何寻找几何间隔最大的超平面进行数据分类、对偶问题的引入及其解决方法、软间隔的概念及其优化方法,以及核方法的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SVM 是一块很大的内容,网上有写得非常精彩的博客。这篇博客目的不是详细阐述每一个理论和细节,而在于在不丢失重要推导步骤的条件下从宏观上把握 SVM 的思路。

 

1. 问题由来

SVM (支持向量机) 的主要思想是找到几何间隔最大的超平面对数据进行正确划分,与一般的线性分类器相比,这样的超平面理论上对未知的新实例具有更好的分类能力。公式表示如下:

 : 所有点中最小的几何间隔, 实际上就是支持向量上的点的几何间隔

 : 训练样本及对应标签, , 作用是将第 i 个样本点的几何间隔转化为正数

公式的意思是假设每个训练样本点的几何间隔至少是 , 求  的最大值。

由于几何间隔(没帽子)和函数间隔(有帽子)的关系是:

最大化  可以固定  ,求 ||w|| 的最小值或者固定 ||w||, 求  的最大值,一般选择前者: 固定函数间隔为 1, 将 \gamma = 1/||w|| 带入上式,同时为了计算方便, 目标函数等价于最小化 ||w||^2 ,约束优化问题转化为:

这是一个 QP 优化问题。

 

2. 对偶问题

利用拉格朗日乘子法将约束条件融入到目标函数:

SVM 的原始问题实际上是一个极小极大问题:

这个表达式有几个变量,先从哪一个着手?答案是  , 至于为什么,实际上是根据下面这个优化函数将原始问题的约束条件——函数间隔必须不小于 1 转化到拉格朗日乘子  向量上去的,先看函数的后面一部分:

很容易可以看出,如果样本点 xi 满足约束条件,即有 , 上式求最大,必定有 ,  alpha 与后面括号里面的式子必有一个为 0 (VI) 所有的样本点都满足约束条件,极小极大问题就转化为  , 如果有一个样本点不满足约束条件,alpha 值取无穷大,上式将取无穷大,显然是没有意义的。实际上,这段论述就说明了原始问题具有 KKT 强对偶条件,对于原始问题来说需要满足的 KKT 条件有哪些呢?

倒数两个条件是原始问题的条件,肯定成立。第一个条件是上面讨论过的条件:

  • 当样本不在支持向量上,alpha 一定等于 0, w 在不等式2的内部,这是一个松的约束,L 函数就等于 1/2||w||^2 , 取它的偏导为0就可以了。
  • 当样本点在支持向量上时, w 在不等式2的边界上,这是一个等式约束,这就和普通的拉格朗日等式约束相同,在最优点目标函数和约束条件函数的导数平行。用 wiki 的一张图来表示:

原始问题满足 KKT 条件,可以转化成一个最优解等价的对偶极大极小问题,先对极小部分求偏导:

得到对偶最优化问题:

对于一个新来的样本,将上面 w 的值带入 f(x) = w^T·x + b, 可以知道要判断新来的点,我们只需要计算它与训练点的内积即可,这是 kernel trick 的关键:

 

3. 软间隔

软间隔问题是应对 outliers 的一种方法。软间隔问题可以建立目标函数:

与硬间隔的优化方法相似,得到的解是:

 

4. Kernel Method

 核方法是一种很巧妙的方法,既可以将特征映射到较高的维度,又可以地利用了 SVM 的内积运算避免了维度计算量的爆炸。最后的最优化问题与硬间隔优化问题相似,只要将两个样本的内积改为两个样本的核函数即可 (kernel substitution) :

当然,你也可以将两个样本的内积看做最简单的核函数。Kernel method 不仅可以用在 SVM 上,还可以用在 PCA、线性分类器上等,以后再专门写一篇 kernel method 的博客。

 

参考资料:

[1] pluskid 的博客

[2] 统计学习方法, 李航 著

 

from:http://www.cnblogs.com/daniel-D/ 
<think>嗯,用户想了解支持向量机SVM)的工作原理。SVM是机器学习中的一种分类算法,对吧?首先,我需要回忆一下SVM的基本概念。根据引用[2]提到的,SVM的目标是找到一个超平面,将不同类别的样本分开,并且使间隔最大化。那这里的超平面是什么?应该是高维空间中的一个分界,比如在二维中是直线,三维是平面,更高维就是超平面了。 接下来,间隔最大化的概念。间隔指的是支持向量到超平面的距离,而支持向量应该是离超平面最近的那些点。所以,SVM不仅要正确分类,还要让这两个类别之间的间隔尽可能大。这听起来像是优化问题,可能需要用到拉格朗日乘数法来处理约束条件下的最优化问题。 然后,核函数的作用。当数据线性不可分时,SVM通过核函数将数据映射到高维空间,使其变得线性可分。常见的核函数有线性核、多项式核、高斯核(RBF)等。用户可能对核技巧的原理不太清楚,需要解释为什么映射到高维空间有助于分类,以及如何避免计算高维空间中的内积带来的计算复杂度问题。 另外,关于软间隔和硬间隔的区别。硬间隔要求所有样本都被正确分类,这在现实中可能不现实,因为数据可能有噪声或重叠。所以软间隔引入了松弛变量,允许一些样本被错误分类,从而提高模型的泛化能力。这部分需要说明正则化参数C的作用,C越大,模型越不允许错误,可能导致过拟合;C越小,允许更多的错误,可能欠拟合。 还要提到SVM的数学推导,比如原始问题转化为对偶问题,使用拉格朗日乘子法,以及如何求解对偶问题中的二次规划。这部分可能比较复杂,用户可能需要一个概览,而不用深入数学细节,但作为工作原理,还是需要简要说明。 根据引用[3],SVM在处理高维和低维数据时表现都不错,但数据集规模不能太大。这里可能需要解释为什么SVM适合小样本数据,因为它的复杂度与样本数量的平方相关,导致大规模数据时计算成本高。 用户的问题提到了分类算法,所以应该强调SVM最初是针对二分类问题设计的,如何处理多分类问题,比如使用一对多或一对一的方法。此外,SVM在回归问题中的应用(支持向量回归)可能也值得提及,但用户的问题集中在分类上,所以可能不需要深入。 总结一下,回答的结构应该是:首先介绍SVM的基本思想(最大间隔超平面),然后解释支持向量的定义,接着讨论线性可分和不可分的情况(核函数和软间隔),再简要描述数学原理(对偶问题、核技巧),最后提到优缺点和应用场景。确保使用正确的中文术语,行内公式用$...$,独立公式用$$...$$,并引用提供的参考资料。 需要检查是否有遗漏的关键点,比如几何间隔和函数间隔的区别,或者为什么最大化间隔可以提升泛化能力。可能还需要提到Hinge损失函数,但不确定是否属于工作原理的核心部分。根据引用[2],间隔最大化的目标,所以应该围绕这个展开。 最后,生成的相关问题要围绕SVM的优缺点、应用场景、参数调优、与其他算法的比较等。例如,核函数的选择如何影响性能,或者为什么SVM在小样本数据中表现好。</think>### 支持向量机SVM)工作原理 支持向量机SVM)是一种基于**最大间隔分类**思想的监督学习算法,其核心目标是找到一个能最优分隔不同类别数据的超平面。以下是其工作原理的分步解析: --- #### 1. **基本概念:超平面与间隔** - **超平面**:在$n$维空间中,超平面是一个$n-1$维的线性子空间,例如二维空间中的直线、三维空间中的平面。数学表达式为: $$w^T x + b = 0$$ 其中$w$是法向量,$b$是偏置项[^2]。 - **间隔(Margin)**:超平面到最近样本点的距离。SVM的目标是找到使间隔最大化的超平面,以提高分类的鲁棒性。 --- #### 2. **支持向量的定义** - **支持向量**是距离超平面最近的样本点,这些点决定了超平面的位置和方向。间隔的宽度由支持向量到超平面的距离决定: $$\text{间隔宽度} = \frac{2}{\|w\|}$$ 因此,最大化间隔等价于最小化$\|w\|$。 --- #### 3. **线性可分与不可分情况** - **线性可分**:若数据可通过一个超平面完全分开,则直接通过**硬间隔最大化**求解: $$\min_{w,b} \frac{1}{2} \|w\|^2 \quad \text{s.t.} \quad y_i(w^T x_i + b) \geq 1 \quad (i=1,2,\dots,n)$$ - **线性不可分**:引入**软间隔**和**松弛变量**$\xi_i$,允许部分样本分类错误: $$\min_{w,b,\xi} \frac{1}{2} \|w\|^2 + C \sum_{i=1}^n \xi_i \quad \text{s.t.} \quad y_i(w^T x_i + b) \geq 1 - \xi_i, \quad \xi_i \geq 0$$ 其中$C$是正则化参数,控制对分类错误的容忍度。 --- #### 4. **核函数与非线性分类** 当数据非线性可分时,SVM通过**核技巧(Kernel Trick)**将数据映射到高维空间: - **核函数**直接计算高维空间的内积,避免显式映射的复杂度: $$K(x_i, x_j) = \phi(x_i)^T \phi(x_j)$$ 常用核函数包括多项式核、高斯核(RBF)等[^1][^3]。 - 非线性SVM的决策函数为: $$f(x) = \text{sign}\left( \sum_{i=1}^n \alpha_i y_i K(x_i, x) + b \right)$$ 其中$\alpha_i$是拉格朗日乘子。 --- #### 5. **数学原理:对偶问题与优化** 原始问题通过拉格朗日乘子法转化为**对偶问题**,简化计算: $$\max_{\alpha} \sum_{i=1}^n \alpha_i - \frac{1}{2} \sum_{i,j=1}^n \alpha_i \alpha_j y_i y_j K(x_i, x_j)$$ 约束条件为$\sum_{i=1}^n \alpha_i y_i = 0$且$0 \leq \alpha_i \leq C$。求解后,仅支持向量对应的$\alpha_i > 0$[^2]。 --- #### 6. **优点与局限性** - **优点**: - 适合高维数据和小样本场景[^3]。 - 核函数灵活处理非线性问题。 - **局限性**: - 计算复杂度高,大规模数据性能下降[^3]。 - 需谨慎选择核函数和参数$C$。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值