支持向量机(SVM)的数学推导全解

支持向量机(SVM)是机器学习中经典的二分类模型,它通过找到一个最优的超平面,最大化正负样本的分类间隔,实现对数据的有效分类。本篇博客将从问题定义开始,逐步推导 SVM 的完整数学过程,包括优化目标、拉格朗日对偶理论、KKT 条件的应用和最终决策函数的构造。推导过程力求数学完备,同时以通俗语言讲解每一步推导背后的逻辑。


1. 问题定义

1.1 超平面与分类

假设我们有一个训练数据集 D={(xi,yi)}i=1ND = \{(\mathbf{x}_i, y_i)\}_{i=1}^ND={(xi,yi)}i=1N,其中 xi∈Rn\mathbf{x}_i \in \mathbb{R}^nxiRn 是特征向量,yi∈{−1,+1}y_i \in \{-1, +1\}yi{1,+1} 是分类标签。目标是找到一个超平面,将正类样本 yi=+1y_i = +1yi=+1 和负类样本 yi=−1y_i = -1yi=1 尽可能分开。

超平面

一个超平面可以写成如下数学形式:
w⊤x+b=0, \mathbf{w}^\top \mathbf{x} + b = 0, wx+b=0,
其中:

  • w∈Rn\mathbf{w} \in \mathbb{R}^nwRn 是法向量,决定了超平面的方向;
  • b∈Rb \in \mathbb{R}bR 是偏置,决定了超平面到原点的距离。
分类的条件

对于任意样本点 xi\mathbf{x}_ixi

  • 如果 yi=+1y_i = +1yi=+1(正类),样本应该被分布在超平面的一个侧面,满足 w⊤xi+b>0\mathbf{w}^\top \mathbf{x}_i + b > 0wxi+b>0
  • 如果 yi=−1y_i = -1yi=1(负类),样本应该被分布在超平面的另一个侧面,满足 w⊤xi+b<0\mathbf{w}^\top \mathbf{x}_i + b < 0wxi+b<0

为了统一地描述正负样本的分类关系,我们引入 yiy_iyi(取值为 +1+1+1−1-11),将分类条件重新表达为:
yi(w⊤xi+b)>0,∀i. y_i (\mathbf{w}^\top \mathbf{x}_i + b) > 0, \quad \forall i. yi(wxi+b)>0,i.

  1. 对于正类样本(yi=+1y_i = +1yi=+1
    分类条件是 w⊤xi+b>0\mathbf{w}^\top \mathbf{x}_i + b > 0wxi+b>0,这意味着点 xi\mathbf{x}_ixi 位于超平面的正侧面。乘以 yi=+1y_i = +1yi=+1 后,条件仍然满足:
    yi(w⊤xi+b)=(w⊤xi+b)>0. y_i (\mathbf{w}^\top \mathbf{x}_i + b) = (\mathbf{w}^\top \mathbf{x}_i + b) > 0. yi(wxi+b)=(wxi+b)>0.

  2. 对于负类样本(yi=−1y_i = -1yi=1
    分类条件是 w⊤xi+b<0\mathbf{w}^\top \mathbf{x}_i + b < 0wxi+b<0,这意味着点 xi\mathbf{x}_ixi 位于超平面的负侧面。乘以 yi=−1y_i = -1yi=1 后,负号翻转,使得条件仍然满足:
    yi(w⊤xi+b)=−(w⊤xi+b)>0. y_i (\mathbf{w}^\top \mathbf{x}_i + b) = -(\mathbf{w}^\top \mathbf{x}_i + b) > 0. yi(wxi+b)=(wxi+b)>0.

因此,不论正类还是负类,yi(w⊤xi+b)y_i (\mathbf{w}^\top \mathbf{x}_i + b)yi(wxi+b) 在分类正确时都大于 000,可以用统一的条件描述分类关系。


1.2 分类间隔

样本到超平面的几何距离

要量化样本与超平面之间的关系,我们关注样本到超平面的几何距离。对于样本点 xi\mathbf{x}_ixi,到超平面的几何距离公式为:
∣w⊤xi+b∣∥w∥, \frac{| \mathbf{w}^\top \mathbf{x}_i + b |}{\|\mathbf{w}\|}, wwxi+b,
其中 ∥w∥=w⊤w\|\mathbf{w}\| = \sqrt{\mathbf{w}^\top \mathbf{w}}w=ww 是法向量的欧几里得范数。


分类间隔的定义

我们希望找到一个超平面,使得正负样本之间的间隔最大化。这里需要明确两种“分类间隔”的定义和区别:

  1. 几何间隔:单个样本到超平面的几何距离;

几何间隔用于度量单个样本点到超平面的距离。对于任意样本点 xi\mathbf{x}_ixi,到超平面的几何距离定义为:
∣w⊤xi+b∣∥w∥, \frac{| \mathbf{w}^\top \mathbf{x}_i + b |}{\|\mathbf{w}\|}, wwxi+b,
其中:

  • w\mathbf{w}w 是超平面的法向量;
  • ∥w∥=w⊤w\|\mathbf{w}\| = \sqrt{\mathbf{w}^\top \mathbf{w}}w=ww 是法向量的欧几里得范数。

对于支持向量机的优化目标,我们关心的并不是任意样本到超平面的几何距离,而是距离最近的样本点到超平面的几何距离。这些最近的样本点被称为支持向量

为了方便后续推导,我们可以通过归一化 w\mathbf{w}wbbb,调整几何间隔的表达形式。

分类器归一化假设

我们在优化问题中引入了归一化假设,即通过调整 w\mathbf{w}wbbb,让支持向量到超平面的几何距离恰好为 111。在这种归一化条件下,支持向量满足:
yi(w⊤xi+b)=1. y_i (\mathbf{w}^\top \mathbf{x}_i + b) = 1. yi(wxi+b)=1.

对于其他样本点,由于几何距离大于 111,满足:
yi(w⊤xi+b)≥1,∀i. y_i (\mathbf{w}^\top \mathbf{x}_i + b) \geq 1, \quad \forall i. yi(wxi+b)1,i.

在归一化条件下,单个样本点到超平面的几何距离为:
几何间隔=1∥w∥. \text{几何间隔} = \frac{1}{\|\mathbf{w}\|}. 几何间隔=w1.


  1. 分类间隔:正类支持向量与负类支持向量之间的距离。

分类间隔描述的是正类支持向量与负类支持向量之间的距离,具体是:

  • 最近的正类支持向量到超平面的距离;
  • 最近的负类支持向量到超平面的距离。

两侧支持向量之间的总距离(即分类间隔)是:
分类间隔=2∥w∥. \text{分类间隔} = \frac{2}{\|\mathbf{w}\|}. 分类间隔=w2.

关系说明

  • 分类间隔是两倍的几何间隔(因为它考虑的是正负支持向量之间的总距离)。
  • 几何间隔则仅描述单个点(支持向量)到超平面的距离。

在支持向量机中,最大化分类间隔实际上是等价于最大化几何间隔,因为两者的比例是固定的。

1.3 问题转化

最大化分类间隔

在分类问题中,我们追求样本与超平面的距离尽可能大,即最大化分类间隔。如果分类间隔更大,分类器对样本的判别能力就更强,也就是说分类器的泛化能力更好。

我们希望选择的超平面尽可能“远离”样本点。这是因为:

  1. 如果样本点离超平面更远,即分类间隔更大,那么分类器的鲁棒性更好;
  2. 这样的分类器对于未知样本的预测会更稳定,具有更好的泛化能力。
问题简化

为了最大化分类间隔 2∥w∥\frac{2}{\|\mathbf{w}\|}w2,我们可以将问题转化为最小化 ∥w∥\|\mathbf{w}\|w,即:
min⁡w,b∥w∥. \min_{\mathbf{w}, b} \|\mathbf{w}\|. w,bminw∥.
为了计算方便,通常我们最小化的是 12∥w∥2\frac{1}{2} \|\mathbf{w}\|^221w2(平方形式的目标函数使得偏导数更简单)。因此,目标函数变为:
min⁡w,b12∥w∥2. \min_{\mathbf{w}, b} \frac{1}{2} \|\mathbf{w}\|^2. w,bmin21w2.

同时,分类间隔的归一化条件导致如下约束条件:
yi(w⊤xi+b)≥1,∀i. y_i (\mathbf{w}^\top \mathbf{x}_i + b) \geq 1, \quad \forall i. yi(wxi+b)1,i.


支持向量的引入

从上述归一化条件可以看出:

  • 分类结果由那些紧贴支持向量边界的点决定。这些点满足:
    yi(w⊤xi+b)=1. y_i (\mathbf{w}^\top \mathbf{x}_i + b) = 1. yi(wxi+b)=1.
  • 对于其他离超平面更远的点,yi(w⊤xi+b)>1y_i (\mathbf{w}^\top \mathbf{x}_i + b) > 1yi(wxi+b)>1,它们对分类器的位置没有直接影响。

因此,我们可以通过只关注 支持向量 来确定分类器的位置。支持向量是使 yi(w⊤xi+b)=1y_i (\mathbf{w}^\top \mathbf{x}_i + b) = 1yi(wxi+b)=1 的点。这一性质使得 SVM 具有稀疏性:最终模型只依赖于支持向量,而不依赖于其他点。

转换为优化问题

最终,SVM 的目标可以总结为:找到一个超平面,最小化 12∥w∥2\frac{1}{2} \|\mathbf{w}\|^221w2,同时满足约束条件:
yi(w⊤xi+b)≥1,∀i. y_i (\mathbf{w}^\top \mathbf{x}_i + b) \geq 1, \quad \forall i. yi(wxi+b)1,i.

这就构成了一个带约束的优化问题,其核心思想是:

  • 通过最大化分类间隔(对应最小化 ∥w∥\|\mathbf{w}\|w)找到最优超平面;
  • 分类结果仅依赖于支持向量。

2. 优化问题建模

在上述归一化假设下,SVM 的目标是最大化分类间隔,等价于最小化 ∣w∣|\mathbf{w}|w,即:

min⁡w,b12∥w∥2 \min_{\mathbf{w}, b} \frac{1}{2} \|\mathbf{w}\|^2 w,bmin21w2
同时满足约束条件:

s.t. yi(w⊤xi+b)≥1,∀i. \text{s.t. } y_i (\mathbf{w}^\top \mathbf{x}_i + b) \geq 1, \quad \forall i. s.t. yi(wxi+b)1,i.

这就构成了一个典型的 约束优化问题 。直接优化上述问题并不方便,因此我们引入拉格朗日乘子法。


3. 拉格朗日乘子法

3.1 拉格朗日函数构造

为将约束融入优化目标,引入拉格朗日乘子 αi≥0\alpha_i \geq 0αi0i=1,…,Ni = 1, \dots, Ni=1,,N),定义拉格朗日函数:
L(w,b,α)=12∥w∥2−∑i=1Nαi[yi(w⊤xi+b)−1] L(\mathbf{w}, b, \boldsymbol{\alpha}) = \frac{1}{2} \|\mathbf{w}\|^2 - \sum_{i=1}^N \alpha_i \left[ y_i (\mathbf{w}^\top \mathbf{x}_i + b) - 1 \right] L(w,b,α)=21w2i=1Nαi[yi(wxi+b)1]
其中,α=[α1,α2,…,αN]⊤\boldsymbol{\alpha} = [\alpha_1, \alpha_2, \dots, \alpha_N]^\topα=[α1,α2,,αN] 是拉格朗日乘子向量。

拉格朗日函数将约束条件通过 αi\alpha_iαi 融入优化目标,使得我们可以处理无约束优化问题。


3.2 KKT 条件

KKT 条件是约束优化问题的必要条件。在最优解处,需满足以下条件:

  1. 原始约束条件
    yi(w⊤xi+b)−1≥0,∀i;y_i (\mathbf{w}^\top \mathbf{x}_i + b) - 1 \geq 0, \quad \forall i;yi(wxi+b)10,i;
    这是问题本身的约束条件,确保支持向量机的分类间隔正确。

  2. 拉格朗日乘子非负性
    αi≥0,∀i;\alpha_i \geq 0, \quad \forall i;αi0,i;
    拉格朗日乘子只能对违反约束的情况施加惩罚,因此必须非负。

  3. 互补松弛条件
    αi[yi(w⊤xi+b)−1]=0,∀i;\alpha_i \left[ y_i (\mathbf{w}^\top \mathbf{x}_i + b) - 1 \right] = 0, \quad \forall i;αi[yi(wxi+b)1]=0,i;
    表示对于每个样本,只有在分类间隔恰好为 1 的情况下 αi\alpha_iαi 才可能非零(支持向量的定义),否则 αi=0\alpha_i = 0αi=0

  4. 梯度为零条件
    ∂L∂w=0,∂L∂b=0.\frac{\partial L}{\partial \mathbf{w}} = 0, \quad \frac{\partial L}{\partial b} = 0.wL=0,bL=0.
    确保在最优解处,目标函数对优化变量的梯度为零。

总结
KKT 条件是连接原始优化问题与对偶问题的关键桥梁,只有在满足 KKT 条件的情况下,通过拉格朗日方法求解得到的解,才能与原始问题的最优解等价 。这是支持向量机优化过程严谨性和数学完备性的核心保障。


4. 求解过程

4.1 求偏导

  1. w\mathbf{w}w 求偏导
    ∂L∂w=w−∑i=1Nαiyixi=0 \frac{\partial L}{\partial \mathbf{w}} = \mathbf{w} - \sum_{i=1}^N \alpha_i y_i \mathbf{x}_i = 0 wL=wi=1Nαiyixi=0
    解得:
    w=∑i=1Nαiyixi \mathbf{w} = \sum_{i=1}^N \alpha_i y_i \mathbf{x}_i w=i=1Nαiyixi
    这表示最优的 w\mathbf{w}w 是由支持向量加权求和得到的,其中 αi\alpha_iαi 是权重,yiy_iyi 是类别,xi\mathbf{x}_ixi 是样本。

  2. bbb 求偏导
    ∂L∂b=−∑i=1Nαiyi=0 \frac{\partial L}{\partial b} = -\sum_{i=1}^N \alpha_i y_i = 0 bL=i=1Nαiyi=0
    解得:
    ∑i=1Nαiyi=0 \sum_{i=1}^N \alpha_i y_i = 0 i=1Nαiyi=0
    这表示支持向量的拉格朗日乘子加权和在类别上必须平衡。


4.2 对偶问题

w=∑i=1Nαiyixi\mathbf{w} = \sum_{i=1}^N \alpha_i y_i \mathbf{x}_iw=i=1Nαiyixi 代入拉格朗日函数 LLL 中,消去 w\mathbf{w}wbbb,得到仅关于 α\boldsymbol{\alpha}α 的函数:

首先,将 12∥w∥2\frac{1}{2} \|\mathbf{w}\|^221w2 展开:
12∥w∥2=12(∑i=1Nαiyixi)⊤(∑j=1Nαjyjxj). \frac{1}{2} \|\mathbf{w}\|^2 = \frac{1}{2} \left( \sum_{i=1}^N \alpha_i y_i \mathbf{x}_i \right)^\top \left( \sum_{j=1}^N \alpha_j y_j \mathbf{x}_j \right). 21w2=21(i=1Nαiyixi)(j=1Nαjyjxj).
利用向量的内积展开公式:
12∥w∥2=12∑i=1N∑j=1Nαiαjyiyj(xi⊤xj). \frac{1}{2} \|\mathbf{w}\|^2 = \frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j (\mathbf{x}_i^\top \mathbf{x}_j). 21w2=21i=1Nj=1Nαiαjyiyj(xixj).

拉格朗日函数 LLL 中的第一项为:
−12∥w∥2=−12∑i=1N∑j=1Nαiαjyiyj(xi⊤xj). -\frac{1}{2} \|\mathbf{w}\|^2 = -\frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j (\mathbf{x}_i^\top \mathbf{x}_j). 21w2=21i=1Nj=1Nαiαjyiyj(xixj).

再看第二项:
∑i=1Nαi. \sum_{i=1}^N \alpha_i. i=1Nαi.

因此,对偶问题的目标函数为:
max⁡α∑i=1Nαi−12∑i=1N∑j=1Nαiαjyiyj(xi⊤xj). \max_{\boldsymbol{\alpha}} \sum_{i=1}^N \alpha_i - \frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j (\mathbf{x}_i^\top \mathbf{x}_j). αmaxi=1Nαi21i=1Nj=1Nαiαjyiyj(xixj).

4.3 求解 α\boldsymbol{\alpha}α

优化上述对偶问题后,得到最优解 α∗=[α1∗,α2∗,…,αN∗]⊤\boldsymbol{\alpha}^* = [\alpha_1^*, \alpha_2^*, \dots, \alpha_N^*]^\topα=[α1,α2,,αN],从中可得法向量:
w=∑i=1Nαi∗yixi. \mathbf{w} = \sum_{i=1}^N \alpha_i^* y_i \mathbf{x}_i. w=i=1Nαiyixi.

支持向量是那些对应 αi∗>0\alpha_i^* > 0αi>0 的样本点。


5. 最终结果

在支持向量机中,我们通过优化对偶问题的拉格朗日乘子 αi∗\alpha_i^*αi 来求解超平面。最终的结果包括偏置项 bbb 和分类决策函数 f(x)f(\mathbf{x})f(x)。这一部分不仅适用于线性可分数据,还可以通过引入核函数扩展到非线性可分问题。

5.1 偏置项 bbb

对于任意支持向量 xk\mathbf{x}_kxk(满足 αk∗>0\alpha_k^* > 0αk>0 的样本),根据支持向量的约束条件:
yk(w⊤xk+b)=1, y_k (\mathbf{w}^\top \mathbf{x}_k + b) = 1, yk(wxk+b)=1,
w\mathbf{w}w 的表达式 w=∑i=1Nαi∗yixi\mathbf{w} = \sum_{i=1}^N \alpha_i^* y_i \mathbf{x}_iw=i=1Nαiyixi 代入得到:
b=yk−∑i=1Nαi∗yi(xi⊤xk). b = y_k - \sum_{i=1}^N \alpha_i^* y_i (\mathbf{x}_i^\top \mathbf{x}_k). b=yki=1Nαiyi(xixk).

注意:

  • 理论上,任意支持向量都可以用来计算 bbb
  • 在实际计算中,取所有支持向量的结果求平均以减少数值误差。

5.2 决策函数

根据支持向量机的原理,分类决策函数为:
f(x)=sign(w⊤x+b). f(\mathbf{x}) = \text{sign} \left( \mathbf{w}^\top \mathbf{x} + b \right). f(x)=sign(wx+b).
w\mathbf{w}w 的表达式代入:
f(x)=sign(∑i=1Nαi∗yi(xi⊤x)+b). f(\mathbf{x}) = \text{sign} \left( \sum_{i=1}^N \alpha_i^* y_i (\mathbf{x}_i^\top \mathbf{x}) + b \right). f(x)=sign(i=1Nαiyi(xix)+b).

这表明:

  1. 决策函数仅依赖于支持向量,因为 αi∗=0\alpha_i^* = 0αi=0 对应的样本不参与决策;
  2. 决策函数只需要计算支持向量与待分类样本 x\mathbf{x}x 的内积 xi⊤x\mathbf{x}_i^\top \mathbf{x}xix

5.3 核函数的引入:处理非线性可分问题

在许多实际问题中,数据并非线性可分。这时我们可以通过核方法(Kernel Trick),将原始特征映射到一个更高维的特征空间,使得数据在高维空间中线性可分。

核函数的作用

核函数是一种函数,用来高效地计算两个样本在映射空间中的内积,而不需要显式地进行映射。记映射函数为 ϕ(⋅)\phi(\cdot)ϕ(),核函数定义为:
K(xi,xj)=ϕ(xi)⊤ϕ(xj). K(\mathbf{x}_i, \mathbf{x}_j) = \phi(\mathbf{x}_i)^\top \phi(\mathbf{x}_j). K(xi,xj)=ϕ(xi)ϕ(xj).

使用核函数替代内积

在对偶问题和决策函数中,所有的内积 xi⊤xj\mathbf{x}_i^\top \mathbf{x}_jxixj 都可以替换为核函数 K(xi,xj)K(\mathbf{x}_i, \mathbf{x}_j)K(xi,xj)。因此,决策函数扩展为:
f(x)=sign(∑i=1Nαi∗yiK(xi,x)+b). f(\mathbf{x}) = \text{sign} \left( \sum_{i=1}^N \alpha_i^* y_i K(\mathbf{x}_i, \mathbf{x}) + b \right). f(x)=sign(i=1NαiyiK(xi,x)+b).

通过核函数,支持向量机可以有效地处理非线性可分问题,而不需要显式地在高维空间中操作。这使得 SVM 成为一种强大的非线性分类方法。


常见核函数

以下是一些常见的核函数及其用途:

  1. 线性核
    K(xi,xj)=xi⊤xj K(\mathbf{x}_i, \mathbf{x}_j) = \mathbf{x}_i^\top \mathbf{x}_j K(xi,xj)=xixj
    等价于标准线性 SVM,不做特征映射。

  2. 多项式核
    K(xi,xj)=(xi⊤xj+c)d K(\mathbf{x}_i, \mathbf{x}_j) = (\mathbf{x}_i^\top \mathbf{x}_j + c)^d K(xi,xj)=(xixj+c)d
    适用于捕获多项式关系的数据,ddd 是多项式的次数。

  3. 高斯核(RBF 核)
    K(xi,xj)=exp⁡(−∥xi−xj∥22σ2) K(\mathbf{x}_i, \mathbf{x}_j) = \exp\left(-\frac{\|\mathbf{x}_i - \mathbf{x}_j\|^2}{2\sigma^2}\right) K(xi,xj)=exp(2σ2xixj2)
    非线性分类的常用选择,适合处理复杂的非线性边界。

  4. Sigmoid 核
    K(xi,xj)=tanh⁡(axi⊤xj+c) K(\mathbf{x}_i, \mathbf{x}_j) = \tanh(a \mathbf{x}_i^\top \mathbf{x}_j + c) K(xi,xj)=tanh(axixj+c)
    与神经网络的激活函数相关。


6. 总结

通过完整推导,我们展示了如何从最大化分类间隔的思想出发,构造支持向量机的优化问题,并通过拉格朗日乘子法与 KKT 条件求解,最终得到决策函数。

SVM 的关键在于:

  1. 支持向量的稀疏性:最终模型 仅依赖于支持向量
  2. 对偶问题的计算效率:利用对偶问题可高效处理高维数据;
  3. 扩展到核函数:通过内积替换可轻松扩展至非线性问题。

支持向量机的这一套理论奠定了其在机器学习领域的经典地位。

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐