← 返回题目列表

SVM 为什么要转化成对偶问题求解?

高频 困难 第 15 / 25 题 更新于 2026/08/02
支持向量机SVM对偶问题核函数KKT

简化版

SVM 从原始问题转成对偶问题主要有三个理由。一、能用核技巧:对偶形式里样本只以内积 xᵢ·xⱼ 出现,可以直接替换成核函数处理非线性——这是最重要的动机。二、复杂度换了个维度:原始问题的变量数是特征维度 d,对偶问题的变量数是样本数 m,当特征维度很高(甚至无穷维,如 RBF 核)时,转成按样本数求解更可行。三、天然暴露支持向量:对偶解里大部分拉格朗日乘子 α=0,只有支持向量 α>0,模型稀疏、结构清晰。对偶问题仍是凸二次规划,与原始问题最优值相等(强对偶成立)。

详细版

原始问题(Primal):

min_{w,b}  ½‖w‖²  (+ C·Σξ)
s.t.       yᵢ(wᵀxᵢ+b) ≥ 1 (-ξᵢ)
变量:w(d 维)、b       ← 变量数 ≈ 特征维度 d

对偶问题(Dual):

max_α  Σαᵢ - ½ΣΣ αᵢαⱼyᵢyⱼ(xᵢ·xⱼ)
s.t.   Σαᵢyᵢ = 0,  0 ≤ αᵢ ≤ C
变量:α(m 维)          ← 变量数 = 样本数 m

转对偶的三大好处:

好处说明
能用核样本只以内积 xᵢ·xⱼ 出现 → 换成 K(xᵢ,xⱼ) 即可非线性
换维度变量从 d 维变 m 维;d≫m 或 d 无穷(核)时更可解
出支持向量KKT 使非支持向量 α=0,模型稀疏

前提: 强对偶成立(满足 Slater 条件),对偶最优 = 原始最优;解满足 KKT 条件。

完整版教学

一、原始问题长什么样

SVM(软间隔)的原始优化问题是:

min_{w,b,ξ}  ½‖w‖² + C·Σξᵢ
s.t.  yᵢ(wᵀxᵢ+b) ≥ 1 - ξᵢ,  ξᵢ ≥ 0
  • 优化变量是 w(维度 = 特征数 d)和 b(还有松弛 ξ)。
  • 这是个带不等式约束的凸二次规划,本身就能直接解。

既然原始问题能解,为什么还要费劲转成对偶?因为对偶形式带来三个原始形式给不了的关键好处。

二、拉格朗日对偶怎么来的(思路)

对每个约束 yᵢ(wᵀxᵢ+b) ≥ 1-ξᵢ 引入拉格朗日乘子 αᵢ≥0,构造拉格朗日函数 L,然后:

  1. 对原始变量 w、b、ξ 求偏导并令为 0,得到关系:
∂L/∂w = 0  ⟹  w = Σ αᵢyᵢxᵢ      ← w 是样本的线性组合!
∂L/∂b = 0  ⟹  Σ αᵢyᵢ = 0
∂L/∂ξ = 0  ⟹  0 ≤ αᵢ ≤ C
  1. 把这些关系代回 L,消去 w、b、ξ,就得到只含 α 的对偶问题
max_α  Σαᵢ - ½ΣΣ αᵢαⱼyᵢyⱼ(xᵢ·xⱼ)
s.t.   Σαᵢyᵢ = 0,  0 ≤ αᵢ ≤ C

关键观察:代入后,样本 xᵢ 只以两两内积 xᵢ·xⱼ 的形式出现,w 也变成了 Σαᵢyᵢxᵢ。这两点正是后面所有好处的根源。

三、好处一(最重要):能无缝用核技巧

这是转对偶最核心的动机。对偶目标里样本只以内积 xᵢ·xⱼ 出现,预测函数 f(x)=Σαᵢyᵢ(xᵢ·x)+b 也只用内积。

于是要处理非线性,只需把所有内积 xᵢ·xⱼ 替换成核函数 K(xᵢ,xⱼ)=φ(xᵢ)·φ(xⱼ),就等价于在高维空间跑线性 SVM,却完全不用显式做高维映射(见核技巧专题)。

反观原始问题:里面是 wφ(x),w 的维度等于特征映射后的维度。如果用 RBF 核(无穷维),w 就是无穷维向量,原始问题根本没法直接写、没法解。只有对偶形式把一切化成内积,核技巧才用得上。所以「为了能用核」是转对偶的头号理由。

四、好处二:把「按特征维度」求解变成「按样本数」求解

  • 原始问题变量是 w,维度 = 特征数 d
  • 对偶问题变量是 α,维度 = 样本数 m

这在特征维度远大于样本数时是巨大优势:

  • 用核方法时特征维度可能几千、几万甚至无穷,按 d 求解不可行;按样本数 m 求解就现实得多。
  • 文本等高维稀疏场景 d≫m,对偶更合适。

(反过来,如果样本数 m 远大于特征数 d,原始问题按 d 求解反而更快——所以像 LIBLINEAR 对大样本线性 SVM 会选择解原始问题。转对偶不是无脑更优,而是为了核和高维。)

五、好处三:天然产生稀疏的支持向量

对偶解满足 KKT 互补松弛条件,使得:

  • 间隔外、分类正确的样本 αᵢ=0(非支持向量)。
  • 只有间隔边界上/内/分错的样本 αᵢ>0(支持向量)。

w = Σαᵢyᵢxᵢ只有 α>0 的支持向量真正决定模型。这带来:模型稀疏(只需存支持向量)、预测只需和支持向量算核、结构清晰、对远处离群点鲁棒(见支持向量专题)。这个「谁是支持向量」的信息,是对偶形式自然给出的。

六、理论保障:强对偶与 KKT

转对偶要「合法」,需要对偶最优值 = 原始最优值(强对偶成立)。SVM 是凸问题且满足 Slater 约束规范,所以强对偶成立——解对偶和解原始得到同一个最优。最优解还满足 KKT 条件(平稳性、原始/对偶可行、互补松弛),这既是求解的依据,也是推出「非支持向量 α=0」的来源。

七、常见追问

  • 转对偶一定更快吗? 不一定。样本多、特征少、线性核时解原始更快(变量少);特征高维/无穷、要用核时对偶才是必须。
  • 对偶问题怎么解? 经典是 SMO 算法(每次选两个 α 优化、解析更新),高效处理二次规划。
  • b 怎么求?0<α<C 的支持向量满足 yᵢ(wᵀxᵢ+b)=1 反解并平均。
  • 原始问题就不能用核吗? 很难——原始里 w 与 φ(x) 显式耦合,无穷维时无法表示;对偶只依赖内积才让核可行。

八、用算例与工程边界复核

线性 SVM 原始变量主要随特征维度 d 增长,对偶变量有 n 个、每个样本一个。若 n=100 万、d=100,直接说“对偶更快”显然错误;对偶的关键价值是内积形式与核技巧,求解优势取决于 n、d、稀疏性和算法。

对象/方案核心机制选择或风险
原始问题变量规模主要与 d 相关大 n 小 d 常更合适
对偶问题n 个 α 与 Gram 矩阵核化、支持向量稀疏
强对偶凸问题+可行条件KKT 连接原始与对偶

把推导和选择压缩成执行路径:

form Lagrangian
 -> stationarity eliminates w,b
 -> dual in α with inner products
 -> KKT recover w/b and SVs

“转对偶是为了降维”不是普遍结论;样本数大于特征数时,对偶变量反而更多。

九、常见误区与追问

  • 误区:SVM 对偶问题始终比原始问题更容易。 核 SVM 依赖对偶,但线性大样本常用原始或专用线性求解器。
  • 误区:α 非零只是一种数值巧合。 互补松弛把 α 与活跃间隔约束连接起来,形成支持向量。
  • 追问:对偶约束 Σα_i y_i=0 从哪来? 对拉格朗日函数中的偏置 b 求驻点得到该等式。
  • 追问:为什么 α 有上界 C? 软间隔中对 ξ 求驻点并结合乘子非负,可推出 0≤α_i≤C。
  • 追问:如何从 α 恢复 w? 线性情形 w=Σα_i y_i x_i;核情形通常保留对偶展开而不显式构造 w。

十、加强记忆

记忆时抓住这条主线:SVM 转对偶三大理由:① 能用核(最重要)——对偶目标和预测只以内积 xᵢ·xⱼ 出现,替换成核函数 K 即可处理非线性,而原始问题里 w 与 φ(x) 耦合、无穷维核根本没法写;② 换求解维度——变量从特征维 d(原始)变样本数 m(对偶),特征高维/无穷时按样本数解才可行(反过来样本远多于特征时解原始更快);③ 天然出支持向量——KKT 使非支持向量 α=0、w=Σαᵢyᵢxᵢ 只由支持向量决定,模型稀疏。理论上 SVM 满足 Slater 条件、强对偶成立,对偶最优=原始最优,解满足 KKT。对偶常用 SMO 求解。