2047 字
10 分钟
模式识别与机器学习:线性支持向量机
2026-05-28
无标签

针对普通感知机的三个问题:

实际上当样本可分时,会有无穷多种线性分类器

  • (P1): 哪一个才是最优线性分类器
  • (P2): 如何学习?
  • (P3): 如何推广到线性不可分情形?

最优线性分类器-基本概念#

定义1:超平面

dd 维空间中,超平面是一个 d1d-1 维的子空间,可以用一个线性方程来表示:wTx+b=0\mathbf{w}^T \mathbf{x} + b = 0,其中 w\mathbf{w} 是法向量,bb 是偏置项。

定义2:点到超平面的欧氏距离

对于一个线性分类器 g(x)=wTx+bg(\mathbf{x})=\mathbf{w}^T \mathbf{x}+b,点 x0\mathbf{x}_0 到超平面的距离定义为:

d(x0)=g(x0)w=wTx0+bw12+w22++wd2d(\mathbf{x}_0) = \frac{|g(\mathbf{x}_0)|}{\|\mathbf{w}\|}=\frac{|\mathbf{w}^T \mathbf{x}_0 + b|}{\sqrt{w_1^2 + w_2^2 + \ldots + w_d^2}}

定义3:分类间隔/几何距离/几何间隔/间隔:对于一个线性分类器 g(x)=wTx+bg(\mathbf{x})=\mathbf{w}^T \mathbf{x}+b,分类间隔定义为:

γ=miniyig(xi)w=miniyi(wTxi+b)w12+w22++wd2\gamma = \min_{i} \frac{y_i g(\mathbf{x}_i)}{\|\mathbf{w}\|} = \min_{i} \frac{y_i (\mathbf{w}^T \mathbf{x}_i + b)}{\sqrt{w_1^2 + w_2^2 + \ldots + w_d^2}}
  • 间隔 γ\gamma 是所有训练样本点到超平面的距离的最小值。
  • 其中 yiy_i 是样本 xi\mathbf{x}_i 的类别标签(通常为+1或-1)乘上去就是对样本做规范化。
  • w\|\mathbf{w}\| 是权重向量的欧几里得范数。
  • 分类间隔有正负,正数表示分类正确,负数表示分类错误。(对于规范化后的样本)

线性可分时的SVM=极小极大问题=最大化分类间隔#

支持向量机(SVM)的核心思想是找到一个线性分类器,使得分类间隔 γ\gamma 最大化。SVM 试图找到一个超平面,使得离它最近的训练样本点(即支持向量)与超平面的距离最大。

SVM 的优化问题可以表述为一个最大化分类间隔的极小极大问题

maximizew,bγ=minxiDyi(wTxi+b)w2subject toyi(wTxi+b)0,i\begin{aligned} & \underset{\mathbf{w}, b}{\text{maximize}} \quad \gamma = \min_{\mathbf{x}_i\in \mathcal{D}} \frac{y_i (\mathbf{w}^T \mathbf{x}_i + b)}{\|\mathbf{w}\|_2} \\ & \text{subject to} \quad y_i (\mathbf{w}^T \mathbf{x}_i + b) \geq 0, \quad \forall i \end{aligned}
  • 注意这里是对所有训练样本 (xiD\mathbf{x}_i\in \mathcal{D}) 的约束条件
  • subject to 确保每个样本点都被正确分类。

做两点变换,等价但更易求解:

1. 让式子满足缩放不变性#

即如果我们将 w\mathbf{w}bb 同时乘以一个正数 α\alpha,分类结果不变,但 γ\gamma 会被放大 α\alpha 倍。为了消除这个问题,我们认为规定一个尺度:令最小的那个值等于 1:

subject toyi(wTxi+b)1,i\text{subject to} \quad y_i (\mathbf{w}^T \mathbf{x}_i + b) \geq 1, \quad \forall i

2. 方便求导#

因为 γ=1w\gamma = \frac{1}{\|\mathbf{w}\|},这时候最大化 γ\gamma 就等价于最小化 w\|\mathbf{w}\|。因此,我们可以将优化问题转化为 12w22\frac{1}{2} \|\mathbf{w}\|_2^2 的形式,方便后续求导。

线性可分时的SVM原问题#

minimizew,b12w22=12i=1nwi2subject to1yi(wTxi+b)0,i\begin{aligned} & \underset{\mathbf{w}, b}{\text{minimize}} \quad \frac{1}{2} \|\mathbf{w}\|_2^2=\frac{1}{2} \sum_{i=1}^{n} w_i^2 \\ & \text{subject to}\quad 1- y_i (\mathbf{w}^T \mathbf{x}_i + b) \leq 0, \quad \forall i \end{aligned}
  • 约束写成 1yi(wTxi+b)01- y_i (\mathbf{w}^T \mathbf{x}_i + b) \leq 0 是为了符合拉格朗日乘子法的标准形式。
TIP

二次优化标准型:

minimizex12xTQx+cTxsubject toAxb\begin{aligned} & \underset{\mathbf{x}}{\text{minimize}} \quad \frac{1}{2} \mathbf{x}^T Q \mathbf{x} + \mathbf{c}^T \mathbf{x} \\ & \text{subject to} \quad A \mathbf{x} \leq \mathbf{b} \end{aligned}

线性可分时SVM的求解#

原问题中,需要对每个数据 xiD\mathbf{x}_i\in \mathcal{D} 都有一个约束条件,导致求解困难。我们引入拉格朗日乘子 αi\alpha_i 来将约束条件合并到目标函数中:

线性可分SVM的拉格朗日函数#

引入拉格朗日乘子 αi0\alpha_i \geq 0,构造 拉格朗日函数

L(w,b,α)=12w22+i=1nαi[1yi(wTxi+b)]=12w22+i=1nαii=1nαiyi(wTxi+b)\begin{aligned} L(\mathbf{w}, b, \boldsymbol{\alpha}) &= \frac{1}{2} \|\mathbf{w}\|_2^2 + \sum_{i=1}^{n} \alpha_i [1-y_i (\mathbf{w}^T \mathbf{x}_i + b)] \\ &= \frac{1}{2} \|\mathbf{w}\|_2^2 + \sum_{i=1}^{n} \alpha_i - \sum_{i=1}^{n} \alpha_i y_i (\mathbf{w}^T \mathbf{x}_i + b) \end{aligned}

线性可分SVM的对偶问题#

得到原问题的 对偶问题,即对于 拉格朗日函数最大最小问题

  • 先对 w\mathbf{w}bb 求最小化
  • 再对 α\boldsymbol{\alpha} 求最大化:
maxα0minw,bL(w,b,α)maxα0minw,b(12w22+i=1nαii=1nαiyi(wTxi+b))\begin{aligned} & \underset{\boldsymbol{\alpha} \geq 0}{\text{max}} \quad \underset{\mathbf{w}, b}{\text{min}} \quad L(\mathbf{w}, b, \boldsymbol{\alpha})\\ & \underset{\boldsymbol{\alpha} \geq 0}{\text{max}} \quad \underset{\mathbf{w}, b}{\text{min}} \quad \left( \frac{1}{2} \|\mathbf{w}\|_2^2 + \sum_{i=1}^{n} \alpha_i - \sum_{i=1}^{n} \alpha_i y_i (\mathbf{w}^T \mathbf{x}_i + b) \right) \end{aligned}

线性可分SVM的目标函数#

w\mathbf{w}bb 求导并令其为零:

L(w,b,α)w=wi=1nαiyixi=0w=i=1nαiyixiL(w,b,α)b=i=1nαiyi=0i=1nαiyi=0\begin{aligned} &\frac{\partial L(\mathbf{w}, b, \boldsymbol{\alpha})}{\partial \mathbf{w}} = \mathbf{w} - \sum_{i=1}^{n} \alpha_i y_i \mathbf{x}_i = 0 &\Rightarrow \mathbf{w} = \sum_{i=1}^{n} \alpha_i y_i \mathbf{x}_i \\ &\frac{\partial L(\mathbf{w}, b, \boldsymbol{\alpha})}{\partial b} = -\sum_{i=1}^{n} \alpha_i y_i = 0 &\Rightarrow \sum_{i=1}^{n} \alpha_i y_i = 0 \end{aligned}

加上TTK条件,代入拉格朗日函数中,得到对偶问题的 目标函数

maxα0L(α)=i=1nαi12i=1nj=1nαiαjyiyjxiTxjsubject toi=1nαiyi=0,αi0,i\boxed{ \begin{aligned} & \underset{\boldsymbol{\alpha} \geq 0}{\text{max}} \quad L(\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^T \mathbf{x}_j \\ & \text{subject to} \quad \sum_{i=1}^{n} \alpha_i y_i = 0, \quad \alpha_i \geq 0, \quad \forall i \end{aligned} }
  • 这是一个凸二次优化问题

极大化目标函数 L(α)L(\boldsymbol{\alpha}) 等价于极小化 i=1nαi+12i=1nj=1nαiαjyiyjxiTxj-\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^T \mathbf{x}_j,可以用梯度下降,因此写成:

minα012i=1nj=1nαiαjyiyjxiTxji=1nαisubject toi=1nαiyi=0,αi0,i\boxed{ \begin{aligned} & \underset{\boldsymbol{\alpha} \geq 0}{\text{min}} \quad \frac{1}{2} \sum_{i=1}^{n} \sum_{j=1}^{n} \alpha_i \alpha_j y_i y_j \mathbf{x}_i^T \mathbf{x}_j - \sum_{i=1}^{n} \alpha_i \\ & \text{subject to} \quad \sum_{i=1}^{n} \alpha_i y_i = 0, \quad \alpha_i \geq 0, \quad \forall i \end{aligned} }

从对偶问题的解恢复原问题的解#

该优化问题的解 α=(α1,α2,,αn)T\boldsymbol{\alpha}^*=(\alpha_1^*, \alpha_2^*, \ldots, \alpha_n^*)^T 可以用来恢复原问题的解 w\mathbf{w}^*bb^*

根据KKT条件中的原问题可行性条件+互补松弛条件,定义 支持向量

xi 是支持向量    yi(wTxi+b)=1 且 αi>0\mathbf{x}_i \text{ 是支持向量} \iff y_i(\mathbf{w}^T \mathbf{x}_i + b)= 1 \text{ 且 } \alpha_i > 0
  • 支持向量是那些距离超平面 最近 的训练样本点。

  • 支持向量 xs\mathbf{x}_s 加上其对应的拉格朗日乘子 αi\alpha_i^* 可以求出权重向量

    • w=i=1nαiyixi\mathbf{w}^*=\sum_{i=1}^{n} \alpha_i^* y_i \mathbf{x}_i
  • 偏置项 bb^* 用任意一个支持向量 xs\mathbf{x}_s 来计算:

    • b=yswTxsb^* = y_s - \mathbf{w}^{*T} \mathbf{x}_s
  • 其他非支持向量的 αi\alpha_i^* 都为零,对最终的分类器没有贡献。决策函数只由支持向量决定。

不完全线性可分时的软间隔SVM=引入松弛变量=惩罚分类错误#

当训练数据不完全线性可分时,我们引入松弛变量 ϵi0\epsilon_i \geq 0 来允许某些样本点违反分类约束。新的优化问题称为软间隔SVM

参考线性可分的问题思路,线性不可分情况的 原问题

minimizew,b,ϵ12w22+Ci=1nϵisubject toyi(wTxi+b)1ϵi,ϵi0,i\begin{aligned} & \underset{\mathbf{w}, b, \boldsymbol{\epsilon}}{\text{minimize}} \quad \frac{1}{2} \|\mathbf{w}\|_2^2 + C \sum_{i=1}^{n} \epsilon_i \\ & \text{subject to} \quad y_i (\mathbf{w}^T \mathbf{x}_i + b) \geq 1 - \epsilon_i, \quad \epsilon_i \geq 0, \quad \forall i\\ \end{aligned}
  • 其中 C>0C > 0 是一个超参数,控制分类错误的惩罚程度。
  • ϵi\epsilon_i 是第 ii 个样本的松弛变量,表示该样本点违反分类约束的程度。
  • 写成 1ϵiyi(wTxi+b)01-\epsilon_i - y_i (\mathbf{w}^T \mathbf{x}_i + b) \leq 0 是为了符合拉格朗日乘子法的标准形式。

ϵi\epsilon_i 的两种选择:

  1. 定义为分类错误的个数,但这个定义不可导,无法使用梯度方法求解。
  2. 定义为分类错误的程度,即 ϵi=max(0,1yi(wTxi+b))\epsilon_i = \max(0, 1 - y_i (\mathbf{w}^T \mathbf{x}_i + b)),这个定义是可导的,可以使用梯度方法求解。
TIP

这个其实借鉴了感知机的损失函数,称为合页损失(Hinge Loss):

省略推导,直接给出目标函数

minαL(α)=12i=1nj=1nαiαjyiyjxiTxji=1nαisubject toi=1nαiyi=0,0αiC,i\boxed{ \begin{aligned} & \underset{\boldsymbol{\alpha}}{\text{min}} \quad L(\boldsymbol{\alpha}) = \frac{1}{2} \sum_{i=1}^{n} \sum_{j=1}^{n} \alpha_i \alpha_j y_i y_j \mathbf{x}_i^T \mathbf{x}_j -\sum_{i=1}^{n} \alpha_i \\ & \text{subject to} \quad \sum_{i=1}^{n} \alpha_i y_i = 0, \quad 0 \leq \alpha_i \leq C, \quad \forall i \end{aligned} }
  • 软间隔SVM的对偶问题与线性可分时的SVM非常相似,唯一的区别是 αi\alpha_i 的约束从 αi0\alpha_i \geq 0 变为 0αiC0 \leq \alpha_i \leq C

αi=(α1,α2,,αn)T\alpha_i^*=(\alpha_1^*, \alpha_2^*, \ldots, \alpha_n^*)^T 是软间隔SVM对偶问题的最优解,那么原问题的解 w\mathbf{w}^*bb^* 可以通过以下方式恢复:

w=i=1nαiyixib=yswTxs(任意一个满足 0<αs<C 的样本点 xs\begin{aligned} & \mathbf{w}^* = \sum_{i=1}^{n} \alpha_i^* y_i \mathbf{x}_i \\ & b^* = y_s - \mathbf{w}^{*T} \mathbf{x}_s \quad \text{(任意一个满足 $0 < \alpha_s^* < C$ 的样本点 $\mathbf{x}_s$)} \end{aligned}

由于 bb^* 的值可能不唯一,实际可以通过所有满足 0<αi<C0 < \alpha_i^* < C 的样本点来计算 bb^*,然后取平均值。

核技巧可将线性 SVM 扩展为非线性分类器。核函数 K(xi,xj)=ϕ(xi)Tϕ(xj)K(\mathbf{x}_i, \mathbf{x}_j) = \phi(\mathbf{x}_i)^T \phi(\mathbf{x}_j) 隐式地将样本映射到高维空间,只需将对偶问题中的内积 xiTxj\mathbf{x}_i^T \mathbf{x}_j 替换为 K(xi,xj)K(\mathbf{x}_i, \mathbf{x}_j) 即可。该内容在核方法一章中展开。

SVM不用增广#

偏置项 bb 不能吸收进权重向量 w\mathbf{w}

如果使用增广的权重向量 w=[w;b]\mathbf{w}' = [\mathbf{w}; b],那么目标函数 min12w22=12(w22+b2)\min\frac{1}{2} \|\mathbf{w}'\|_2^2 = \frac{1}{2} (\|\mathbf{w}\|_2^2 + b^2) 会导致偏置项 bb 也被最小化。

并且后面拉格朗日函数没法对 bb 求导,因为 bb 也被包含在 w\mathbf{w}' 中了。直接少了对 bb 的约束条件 i=1nαiyi=0\sum_{i=1}^{n} \alpha_i y_i = 0,导致求解的结果不正确。

模式识别与机器学习:线性支持向量机
https://biscuit0613.github.io/posts/ml/linearclf-svm/
作者
Biscuit
发布于
2026-05-28
许可协议
CC BY-NC-SA 4.0
模式识别与机器学习:线性分类器-多分类问题
模式识别与机器学习:线性分类器-感知机和LMSE