外观
第三讲:支持向量机、对偶优化与核方法
约 5350 字大约 18 分钟
Machine LearningSupport Vector MachineKernel Method
本文由 GPT-5.6-sol 完成。
支持向量机(Support Vector Machine, SVM)的出发点很朴素:如果许多超平面都能分开训练数据,应该选择哪一个?SVM 的答案是——选择离两类样本都尽量远的超平面,也就是最大化分类间隔。
这句话同时引出了本讲的三条主线:最大间隔给出 SVM 的几何意义;Lagrangian 对偶把约束优化变成可计算的问题;核方法则把线性分类器搬到高维特征空间,从而得到非线性决策边界。
一、从线性分类到最大间隔
1. 问题与符号
考虑二分类训练集
D={(xi,yi)}i=1n,xi∈Rd,yi∈{−1,+1}.
线性分类器的打分函数和预测分别为
f(x)=w⊤x+b,h(x)=sgnf(x).
其中 w 是超平面 w⊤x+b=0 的法向量,b 是截距。样本被正确分类等价于
yif(xi)>0.
yif(xi) 称为样本的函数间隔(functional margin)。它的符号反映分类是否正确,绝对值则反映样本离决策边界有多“放心”。不过函数间隔有一个缩放问题:同时把 w,b 乘上正数,决策边界完全不变,函数间隔却会跟着变大。因此,真正具有几何意义的量还要除以 ∥w∥2。
2. 点到超平面的距离
点 x 到超平面 w⊤x+b=0 的距离为
dist(x,H)=∥w∥2∣w⊤x+b∣.
若数据线性可分,可以利用前面的缩放自由度,把离超平面最近的样本归一化到
iminyi(w⊤xi+b)=1.
此时两条间隔边界分别是
w⊤x+b=+1,w⊤x+b=−1.
每条边界到分类超平面的距离都是 1/∥w∥2,所以两类之间的总间隔为
γ=∥w∥22.
这里的常数 1 本身不是间隔,它只是利用缩放自由度选定的规范;真正的几何间隔是 2/∥w∥2。这个区别很小,却是第一次学习 SVM 时最容易混淆的地方之一。
3. 硬间隔 SVM
最大化 2/∥w∥2 等价于最小化 ∥w∥2。为使目标函数光滑且形式方便,通常写成
w,bmins.t.21∥w∥22yi(w⊤xi+b)≥1,i=1,…,n.
这就是硬间隔支持向量机(hard-margin SVM)。目标函数是凸二次函数,约束是线性的,因此它是一个凸二次规划问题。
位于两条间隔边界上的样本满足
yi(w⊤xi+b)=1,
它们就是支持向量(support vectors)。直观上,远离边界的样本即使被轻微移动,也不会改变最优超平面;真正“撑住”间隔的是离边界最近的少量样本。
硬间隔模型有一个严格前提:训练数据必须线性可分。现实数据中只要存在噪声、离群点或类别重叠,这个约束就可能无解;即使勉强可分,一个离群点也可能把间隔压得很窄,造成过拟合。
二、软间隔 SVM:允许犯错,但要付出代价
1. 松弛变量
对每个样本引入松弛变量 ξi≥0,把约束放宽为
yi(w⊤xi+b)≥1−ξi.
ξi 的几何含义很清楚:
| ξi 的范围 | 样本位置 |
|---|---|
| ξi=0 | 位于间隔外侧或间隔边界上 |
| 0<ξi<1 | 分类正确,但进入了间隔内部 |
| ξi=1 | 落在决策超平面上 |
| ξi>1 | 已被错误分类 |
如果只放宽约束而不惩罚 ξi,模型当然可以把所有 ξi 都取得很大。因此要在“间隔尽量宽”和“违约尽量少”之间做折中:
w,b,ξmins.t.21∥w∥22+Ci=1∑nξiyi(w⊤xi+b)≥1−ξi,ξi≥0,i=1,…,n.
这就是软间隔支持向量机(soft-margin SVM)。参数 C>0 控制两种目标的相对权重:
- C 较大时,模型更不愿容忍违约,倾向于减小训练误差,但可能得到更窄、更受离群点影响的间隔;
- C 较小时,模型更愿意忽略少量困难样本,间隔通常更宽,正则化也更强。
不同教材会写成 C∑iξi、nC∑iξi 或 λ∥w∥2/2+n1∑iξi。这些写法主要是参数缩放约定不同,比较公式时应先确认 C 或 λ 的定义。
2. Hinge loss 与无约束形式
固定 w,b 后,使约束成立的最小松弛量为
ξi=max{0,1−yif(xi)}.
因此软间隔 SVM 等价于无约束的正则化经验风险最小化:
w,bmin21∥w∥22+Ci=1∑nmax{0,1−yi(w⊤xi+b)}.
其中
ℓhinge(t)=max(0,1−t),t=yf(x),
称为 hinge loss。它不只要求分类正确,即 t>0,还要求样本达到单位函数间隔,即 t≥1。当 t≥1 时损失为零;当样本进入间隔或被错分时,损失线性增加。
这也说明 SVM 并没有直接优化不可导、非凸的 0-1 损失,而是优化它的一个凸上界。线性增长使 hinge loss 比指数损失更不容易被严重错分点无限放大,但 SVM 仍不是对离群点完全免疫,C 的选择依然重要。
3. 用随机梯度下降求解原问题
采用
J(w,b)=21∥w∥22+nCi=1∑nmax{0,1−yi(w⊤xi+b)}
的约定。对随机抽到的样本 (xi,yi),关于 w 的一个次梯度为
gi={w,w−Cyixi,yi(w⊤xi+b)≥1,yi(w⊤xi+b)<1.
于是可以做更新 w←w−ηgi。截距 b 通常不参与 L2 正则化:若样本违反间隔,则其对应次梯度为 −Cyi;否则为 0。
原问题形式适合线性 SVM 和大规模数据。若要使用一般核函数,则通常转向对偶形式,因为对偶问题中样本只通过内积出现。
4. 多分类 SVM
最简单的推广是 one-vs-rest:每一类训练一个“本类对其余类”的二分类器,再选择打分最高的类别。不过各分类器独立训练,其分数未必处在同一尺度上。
一种联合训练方式是令每一类 j 都有参数 (wj,bj),并要求正确类别的分数比其他类别至少高 1−ξi:
{wj,bj},ξmins.t.21j=1∑M∥wj∥22+Ci=1∑nξiwyi⊤xi+byi≥wj⊤xi+bj+1−ξi,∀j=yi,qquadξi≥0.
预测时取 argmaxj(wj⊤x+bj)。这种形式直接约束类间分数差,但原生 SVM 分数不是概率;若任务需要校准概率,还要额外做概率校准,或者直接考虑 softmax regression 等模型。
三、约束优化、Lagrangian 与 KKT 条件
SVM 的几何构造已经完成,接下来要回答的是:如何系统地求解带约束的优化问题?
1. 一般约束优化问题
考虑原问题(primal problem)
xmins.t.f(x)gj(x)≤0,j=1,…,J,hk(x)=0,k=1,…,K.
它的 Lagrangian 函数定义为
L(x,λ,μ)=f(x)+j=1∑Jλjgj(x)+k=1∑Kμkhk(x),
其中不等式约束的乘子必须满足 λj≥0,等式约束的乘子 μk 没有符号限制。
对一个满足适当约束资格条件的最优解,Karush-Kuhn-Tucker(KKT)条件包括:
- 原问题可行性:gj(x∗)≤0,hk(x∗)=0;
- 对偶可行性:λj∗≥0;
- 驻点条件:∇xL(x∗,λ∗,μ∗)=0;
- 互补松弛:λj∗gj(x∗)=0。
互补松弛的意思是:若某个约束没有顶在边界上,即 gj(x∗)<0,对应乘子只能为零;若乘子非零,该约束必然是活跃约束 gj(x∗)=0。稍后会看到,支持向量正是“活跃约束对应的样本”。
2. 对偶函数与弱对偶
定义 Lagrangian 对偶函数
Γ(λ,μ)=xinfL(x,λ,μ).
对偶问题为
λ,μmaxΓ(λ,μ)s.t. λ≥0.
对任意原问题可行点和对偶可行乘子,都有
Γ(λ,μ)lep∗,
其中 p∗ 是原问题最优值。这叫弱对偶:对偶问题提供原问题最优值的下界。
原问题最优值与对偶问题最优值相等时称为强对偶。凸问题并不会无条件自动满足强对偶;还需要适当的正则性条件。对凸问题而言,Slater 条件是常用的充分条件。SVM 的目标是凸函数、约束是仿射函数,在通常的可行情形下可以使用强对偶和 KKT 条件。
四、软间隔 SVM 的对偶问题
1. 写出 Lagrangian
把软间隔约束改写为
1−ξi−yi(w⊤xi+b)≤0,−ξi≤0.
分别引入乘子 αi≥0 和 μi≥0:
L(w,b,ξ,α,μ)=21∥w∥22+Ci∑ξi+i∑αi[1−ξi−yi(w⊤xi+b)]−i∑μiξi.
分别对原变量求偏导并令其为零:
∂w∂L=0⟹w=i=1∑nαiyixi,
∂b∂L=0⟹i=1∑nαiyi=0,
∂ξi∂L=0⟹C−αi−μi=0.
因为 μi≥0,最后一式给出盒约束 0≤αi≤C。把驻点关系代回 Lagrangian,得到对偶问题
αmaxs.t.i=1∑nαi−21i=1∑nj=1∑nαiαjyiyjxi⊤xji=1∑nαiyi=0,0≤αi≤C,i=1,…,n.
这是带线性约束的凸二次规划。传统上可用 QP 求解器;针对 SVM 的 Sequential Minimal Optimization(SMO)则每次只更新少量对偶变量,避免直接处理一个大型 QP 子问题。
2. 为什么只剩下支持向量
由
w=i∑αiyixi
可知,最优法向量是训练样本的线性组合。但多数样本的 αi 为零,真正影响模型的是 αi>0 的样本。
结合 KKT 条件,可以更精确地分类:
| 对偶变量 | 样本的典型位置 |
|---|---|
| αi=0 | 通常位于间隔外,yif(xi)≥1 |
| 0<αi<C | 恰在间隔边界,yif(xi)=1 |
| αi=C | 位于间隔内或被错分,yif(xi)≤1 |
因此预测函数可写成
f(x)=i∈SV∑αiyixi⊤x+b.
这就是“支持向量”这个名字的代数来源:决策边界只由非零对偶系数对应的训练样本支撑。
五、核方法:不显式进入高维空间
1. 从特征映射到核函数
线性不可分不代表永远不可分。可以先用非线性映射
Φ:X→H
把输入送入更高维的特征空间,再在 H 中训练线性分类器。问题在于,显式计算 Φ(x) 可能非常昂贵,特征空间甚至可能是无限维的。
观察 SVM 对偶问题可知,样本只通过内积
Φ(xi)⊤Φ(xj)
出现。如果能直接计算这个内积,就不必真的构造高维向量。定义
k(x,z)=⟨Φ(x),Φ(z)⟩H,
便得到核函数(kernel function)。把所有内积替换为核函数,就是所谓的核技巧(kernel trick)。
核化后的对偶问题为
αmaxs.t.i∑αi−21i,j∑αiαjyiyjk(xi,xj)i∑αiyi=0,0≤αi≤C.
预测函数则变成
f(x)=i∈SV∑αiyik(xi,x)+b.
训练和预测都只需要核函数值,而不需要知道 Φ 究竟长什么样。
2. 多项式核
以二维输入和二次齐次多项式为例,取
Φ(x1,x2)=(x12,x22,2x1x2).
则
Φ(x)⊤Φ(z)=x12z12+x22z22+2x1x2z1z2=(x⊤z)2.
所以 k(x,z)=(x⊤z)2 隐式完成了二次特征映射。一般的多项式核常写为
k(x,z)=(x⊤z+c)p.
c=0 时只包含 p 次齐次项;c>0 时还会混入较低阶项。高阶多项式能表达更复杂的边界,但也更容易过拟合,并可能带来数值尺度问题。
3. RBF 核为什么对应无限维特征
径向基函数核(Radial Basis Function kernel, RBF kernel)为
k(x,z)=exp(−2σ2∥x−z∥22).
它把距离近的样本视为相似,把距离远的样本视为不相似。参数 σ 控制相似性的作用范围:σ 小时每个样本的影响很局部,边界更曲折;σ 大时相似度变化更缓慢,边界更平滑。
在一维且 σ=1 时,利用 Taylor 展开可以写出一个无限维映射
[Φ(x)]j=j!1e−x2/2xj,j=0,1,2,…
于是
⟨Φ(x),Φ(z)⟩=e−(x2+z2)/2j=0∑∞j!(xz)j=e−(x2+z2)/2exz=e−(x−z)2/2.
也就是说,一个一维输入经过 RBF 核后,可以对应到无限维特征空间;然而核函数本身仍能用有限次运算直接求出。这大概是核技巧最漂亮的地方。
4. 什么函数可以作为核
给定样本 x1,…,xn,定义 Gram 矩阵
Kij=k(xi,xj).
一个实值函数要作为合法核,标准判据是:它应当对称,并且对任意有限样本集得到的 Gram 矩阵都为半正定,即
c⊤Kc≥0,∀c∈Rn.
这个条件保证 k 确实可以被解释为某个 Hilbert 空间中的内积。常用核包括线性核、多项式核和 RBF 核。已有合法核的非负加权和仍是合法核;但任意一个看起来像“相似度”的函数并不一定满足半正定条件。
六、表示定理:为什么核方法不只属于 SVM
设正则化经验风险具有形式
J(w)=L(⟨w,Φ(x1)⟩,…,⟨w,Φ(xn)⟩)+R(∥w∥),
其中 L 是任意依赖训练集预测值的损失,R 关于范数单调不减。表示定理(Representer Theorem)说明:至少存在一个最优解可以写为
w∗=i=1∑nαiΦ(xi).
证明思路并不复杂。把任意 w 分解为
w=w∥+w⊥,
其中 w∥ 位于训练特征 {Φ(xi)} 张成的子空间内,w⊥ 与这个子空间正交。由于
⟨w⊥,Φ(xi)⟩=0,
删除 w⊥ 不会改变任何训练样本上的预测,却不会增大正则项。因此总能在训练特征张成的有限维子空间里找到最优解。
这个定理解释了为什么核化不只适用于 SVM:只要目标满足上述结构,线性回归、正则化逻辑回归等方法也可以把 w 改写为训练样本的线性组合,再用 Gram 矩阵完成核化。
不过要注意,表示定理只说明解的形式,并没有自动解决计算量问题。核矩阵需要存储和处理大量样本对之间的相似度,因此标准核方法更适合中等规模数据;样本很多时,线性模型、随机特征或 Nyström 近似往往更实际。
七、SVM 的几个延伸
1. 支持向量回归
支持向量回归(Support Vector Regression, SVR)使用 ε-不敏感损失
ℓε(f(x),y)=max{∣f(x)−y∣−ε,0}.
预测误差只要落在宽度为 2ε 的“管道”内,就不产生损失;超出管道后才线性惩罚。对应的正则化目标可以写成
w,bmin21∥w∥22+nCi=1∑nmax{∣w⊤xi+b−yi∣−ε,0}.
ε 控制容忍区间,C 控制超出区间后的惩罚强度。
2. Transductive SVM
Transductive SVM(TSVM)把未标注样本也纳入训练,希望决策边界穿过低密度区域,而不是切开一团密集样本。这可以看成“最大间隔”直觉在半监督学习中的延伸。
困难在于,未标注样本的伪标签也是待优化变量,目标通常不再是简单凸问题。实际使用自训练近似时,分类置信度与概率校准会直接影响伪标签质量。
3. One-Class SVM
异常检测中往往只有“正常样本”,没有可靠的负类。One-Class SVM 在特征空间中寻找一个超平面,把大多数数据与原点分开:
w,ξ,ρmins.t.21∥w∥22+νn1i=1∑nξi−ρw⊤Φ(xi)≥ρ−ξi,ξi≥0.
决策函数为
f(x)=sgn(w⊤Φ(x)−ρ).
在标准条件下,ν∈(0,1] 可以解释为训练异常比例的上界,同时也是支持向量比例的下界。它不等于最终测试集上的异常率,仍需结合验证数据选取。
4. Support Vector Data Description
Support Vector Data Description(SVDD)采用另一幅几何图像:不再用超平面把数据与原点分开,而是在特征空间中寻找包围大多数数据的最小球:
R,a,ξmins.t.R2+Ci=1∑nξi∥Φ(xi)−a∥22≤R2+ξi,ξi≥0.
其中 a 是球心,R 是半径。可以定义异常分数
s(x)=∥Φ(x)−a∥22−R2.
s(x)>0 表示样本落在球外,可判为异常;s(x)≤0 表示样本位于数据描述区域内。
八、如何理解和使用 SVM
1. 原问题、对偶问题与核方法的关系
| 视角 | 主要形式 | 适合回答的问题 |
|---|---|---|
| 几何视角 | 最大化间隔 | 为什么选择这条分类边界? |
| 原问题 | 正则项 + hinge loss | 如何用 SGD 训练大规模线性 SVM? |
| 对偶问题 | 优化 αi | 为什么只有支持向量影响边界? |
| 核方法 | 用 k(xi,xj) 替代内积 | 如何得到非线性分类器? |
| 表示定理 | w∗=∑iαiΦ(xi) | 为什么许多正则化模型都能核化? |
这几种写法不是互相替代的几个技巧,而是同一个模型的不同侧面。最大间隔提供建模动机,hinge loss 连接经验风险最小化,对偶问题揭示稀疏性,核函数则利用对偶中的内积结构引入非线性。
2. 实践中的几个检查点
- 先做特征缩放。 SVM 依赖距离和内积,不同量纲会直接改变间隔与 RBF 距离。
- 用验证集选择 C 和核参数。 RBF 核还需调节 σ,有些库使用 γ=1/(2σ2) 的记号。
- 线性可分也不必执着于硬间隔。 数据中的微小噪声就可能让硬间隔极不稳定,软间隔通常更实用。
- 需要概率时要单独校准。 SVM 的原始输出是到决策边界相关的分数,不是概率。
- 根据数据规模选择原问题或核对偶。 大规模、稀疏、高维数据常优先线性 SVM;样本量中等且非线性明显时,再考虑 RBF 等核。
九、小结
本讲可以压缩成下面这条推理链:
线性分类⟶最大化几何间隔⟶硬间隔 SVM⟶软间隔与 hinge loss⟶Lagrangian 对偶⟶支持向量与核方法.
SVM 的核心并不只是某个二次规划公式,而是一套相当完整的建模思路:用间隔表达鲁棒性,用正则化控制复杂度,用凸优化保证可解性,再用对偶与核函数绕过高维特征的显式计算。
下一讲进入学习理论后,最大间隔还会获得另一层解释:它不只是训练集上的几何偏好,也与分类器复杂度和泛化误差界有关。
更新日志
2026/9/27 10:05
查看所有更新日志
eea03-update 0927 japaneseVocabulary.js于
