← 返回模块
Q2.6.2.4beta 可读 · 未来付费内容校验中内容版本 2026-05-26

核方法与支持向量机

2.6.2 · 树模型与核方法 · 数学与统计能力

周一开盘前一小时,你坐在上海一家中型私募基金(private fund)的研究室。投研经理把一张 CSV 推到桌上:沪深300 成分股 ~300 只,每只配 15 维因子向量(PE、PB、12 个月动量、20 日波动率、换手率、分析师上调比例),本质上是一张轻量级因子模型(factor model)输入表;标签 yi{+1,1}y_i \in \{+1, -1\} 表示下月相对指数 outperform / underperform。你先用上一节(2.6.1-5)的 L2 正则化 logistic 回归当基线,样本外准确率 51%——和抛硬币没两样。两两画散点后你发现 outperform 的点夹在 underperform 的两块「月牙」之间,任何超平面都切不开。隔壁同事抬眼:「换 RBF SVM,C=1C = 1,sigma 用中位距离启发式。」重新跑,样本外 67%。这一节回答的就是这四行代码背后到底发生了什么。

把非线性藏进内积

核方法不直接拟合非线性 hh,而是先把 xRpx \in \mathbb{R}^p 抬到某个内积空间 H\mathcal{H} 中的 ϕ(x)\phi(x),然后在 H\mathcal{H} 里拟合​​线性​​预测器 f(x)=w,ϕ(x)H+bf(x) = \langle w, \phi(x) \rangle_{\mathcal{H}} + bH\mathcal{H} 越大,可表达的非线性越丰富;但 ϕ\phi 本身可能维度爆炸,显式构造不现实。

出路是核技巧(kernel trick):如果整个算法只通过 内积(inner product)ϕ(xi),ϕ(xj)H\langle \phi(x_i), \phi(x_j) \rangle_{\mathcal{H}} 触碰特征向量,就可以整体替换成定义在 Rp\mathbb{R}^p 上的二元函数 k(xi,xj)k(x_i, x_j),从头到尾不必显式写 ϕ\phi。能这么换的前提是 kk 真的是某个 ϕ\phi 的内积——刻画方式是半正定(positive semidefinite, PSD)核:

k(x,x)=ϕ(x),ϕ(x)H,Kij=k(xi,xj),K0 on every finite sample.k(x, x') = \langle \phi(x), \phi(x') \rangle_{\mathcal{H}}, \quad K_{ij} = k(x_i, x_j), \quad K \succeq 0 \text{ on every finite sample}.

K0K \succeq 0 意味着 Gram 矩阵对称、所有 特征值(eigenvalue)非负——这件事和 协方差矩阵(covariance matrix)的半正定性同根同源。Mercer 定理(Mercer's theorem)非正式地讲:​​每一个 PSD 核都对应某个再生核希尔伯特空间(reproducing-kernel Hilbert space, RKHS)中的内积​​;反过来,只要你验证 K0K \succeq 0,ϕ\phi 的存在性就有保障,无须显式写出。

三个工业默认核

klin(x,x)=x,x,kpoly(x,x)=(x,x+c)d,kRBF(x,x)=exp ⁣(xx22σ2).k_{\text{lin}}(x, x') = \langle x, x' \rangle, \quad k_{\text{poly}}(x, x') = (\langle x, x' \rangle + c)^d, \quad k_{\text{RBF}}(x, x') = \exp\!\left(-\frac{\|x - x'\|^2}{2 \sigma^2}\right).
  • ​线性核​​对应 ϕ(x)=x\phi(x) = x,等价于不升维——在高维稀疏因子或文本数据上反而首选。
  • ​多项式核​​的 ϕ\phi 是所有阶数不超过 dd 的单项式,适合刻画因子之间的交互项(interaction),d{2,3}d \in \{2, 3\} 最常用。
  • ​RBF 核​​(又叫 Gaussian 核)对应​​无穷维​ ϕ\phi:对 exp\exp 做 Taylor 展开,每一项都是不同阶多项式核的加权和。σ\sigma 是带宽——越小越易过拟合,越大越平滑。

Formula Explorer

exp(-r2 / (2 * sigma2))

r2=xx2r^2 = \|x - x'\|^2σ2\sigma^2 拖一拖,体会带宽对相似度衰减速率的支配作用。

工程上还有一条关键引理叫​​表示定理(Representer Theorem)​​:任何在 RKHS 中最小化 1ni(yi,f(xi))+λfH2\frac{1}{n}\sum_i \ell(y_i, f(x_i)) + \lambda \|f\|_{\mathcal{H}}^2 的解,都长成 f(x)=i=1nαik(xi,x)f(x) = \sum_{i=1}^{n} \alpha_i \, k(x_i, x)。即便 H\mathcal{H} 无穷维,最优解只活在 nn 维系数空间 Rn\mathbb{R}^n 里——这是核方法在算力上可行的根本理由。

硬间隔 SVM:几何视角

回到分类。在可分情形下,支持向量机(support vector machine, SVM)寻找​​最大间隔超平面​​:

minw,b  12w2s.t.yi(w,xi+b)1,i.\min_{w, b} \; \tfrac{1}{2} \|w\|^2 \quad \text{s.t.} \quad y_i(\langle w, x_i \rangle + b) \geq 1, \quad \forall i.

为什么是 12w2\tfrac{1}{2}\|w\|^2?几何上,超平面 w,x+b=0\langle w, x \rangle + b = 0 到两类最近点的距离——即间隔(margin)——等于 2/w2 / \|w\|;最大化间隔即最小化 w2\|w\|^2。约束把所有点逼到间隔带之外。直观上,这是把决策面到两类最近点的正交 投影(projection)距离同时拉到最大的方案——这正是大间隔分类器泛化好的几何理由。

Exercise

​四点数据集​​:x1=(1,1),x2=(2,2)x_1 = (1, 1), x_2 = (2, 2) 标签 +1+1;x3=(1,1),x4=(2,2)x_3 = (-1, -1), x_4 = (-2, -2) 标签 1-1

  1. 显式写出硬间隔 SVM 的原问题(列出 4 个不等式约束)。
  2. 在 2D 平面上画图,读出最优 ww 与间隔 2/w2/\|w\| 的几何位置。
  3. 指出哪些点是支持向量。
提示

约束都形如 yi(w,xi+b)1y_i(\langle w, x_i \rangle + b) \geq 1。由数据沿 (1,1)(1, 1) 轴的对称性,先猜 b=0b = 0w(1,1)w \parallel (1, 1),再把猜测代回紧约束确定模长。

提示

代入 w=c(1,1),b=0w = c(1, 1), b = 0,紧约束 w,(1,1)=1\langle w, (1, 1)\rangle = 1 给出 c=12c = \tfrac{1}{2};故 w=(12,12)w = (\tfrac{1}{2}, \tfrac{1}{2})、间隔 2/w=222/\|w\| = 2\sqrt{2}。紧约束对应 x1,x3x_1, x_3,即支持向量;x2,x4x_2, x_4 严格在间隔带外,不影响解。

软间隔 + 对偶:从原问题到核函数

实务里两类完全可分几乎不存在(沪深300 那个 hook 例子里,任何超平面都会切错一些股票)。引入松弛变量 ξi0\xi_i \geq 0:

minw,b,ξ  12w2+Ci=1nξis.t.yi(w,xi+b)1ξi,    ξi0.\min_{w, b, \xi} \; \tfrac{1}{2}\|w\|^2 + C \sum_{i=1}^{n} \xi_i \quad \text{s.t.} \quad y_i(\langle w, x_i \rangle + b) \geq 1 - \xi_i, \;\; \xi_i \geq 0.

在最优处闭式消去 ξi\xi_i,等价为 L2 正则化合页损失(hinge loss)ERM:

minw  λ2w2+1ni=1n[1yi(w,xi+b)]+,λ=1nC.\min_w \; \tfrac{\lambda}{2} \|w\|^2 + \tfrac{1}{n} \sum_{i=1}^{n} \bigl[1 - y_i(\langle w, x_i \rangle + b)\bigr]_+, \quad \lambda = \tfrac{1}{nC}.

这和 2.6.1-5 里 logistic 回归 + L2 是同一结构(正则化 + 凸代理损失),只是损失换成了合页损失。CC 大 ⇔ λ\lambda 小 ⇔ 容忍间隔违规的代价高 ⇔ 决策面更靠近数据。

对原问题写拉格朗日量,引入对偶变量 αi0\alpha_i \geq 0,套用 2.5.1-3 的强对偶 + KKT 条件(此处不重证),得 SVM 对偶问题:

maxα  i=1nαi12i,jαiαjyiyjk(xi,xj),0αiC,iαiyi=0.\max_{\alpha} \; \sum_{i=1}^{n} \alpha_i - \tfrac{1}{2} \sum_{i, j} \alpha_i \alpha_j y_i y_j \, k(x_i, x_j), \quad 0 \leq \alpha_i \leq C, \quad \sum_{i} \alpha_i y_i = 0.

最终分类器为

f(x)=i:αi>0αiyik(xi,x)+b.f(x) = \sum_{i : \alpha_i > 0} \alpha_i y_i \, k(x_i, x) + b.

核技巧在这里第一次「显形」:xix_i 只通过 k(xi,xj)k(x_i, x_j) 出现,ϕ\phi 自始至终未被写出。αi>0\alpha_i > 0 的训练点叫支持向量——决策面只依赖这一小撮点,其他训练点的扰动不会改变 ff

​图示(占位)​​:two-moons 数据集上,三组 (C,σ)(C, \sigma) 设定下的软间隔 SVM 决策面,支持向量用空心圆标出。左:σ\sigma 太小 → 决策面过度弯曲、支持向量遍布数据;中:median-heuristic σ\sigma + C=1C = 1 → 曲线干净穿过两类间隙;右:CC 太小 → 间隔过宽、错分上升。

核选择与算力天花板

实务的 first move 是 ​RBF 默认​​,σ\sigma 取所有 pairwise 距离 xixj\|x_i - x_j\| 的中位数(median-heuristic);scikit-learn 里 gamma='scale' = 1/(p · Var(X)) 也是同一逻辑,本质上是用样本 协方差矩阵 的迹做尺度归一化。如果数据明显呈现固定阶数的交互(如 PE × momentum),改用多项式核 d=2d = 233。高维稀疏(p ≫ n、文本 / one-hot 因子)情形,线性核往往就够。

致命瓶颈是 n2n^2 量级的 Gram 矩阵:n=105n = 10^5 时光是存一份双精度 KK 就要 80 GB,训练复杂度在 O(n2)O(n3)O(n^2) \sim O(n^3) 之间。这条线把 SVM 挤出了今天的 production alpha 模型岗位——CN 私募 圈用 LightGBM 跑 panel 数据,SVM 主要在小样本、高特征、Alpha 衰减(alpha decay)较慢的研究原型里偶尔露面。Nyström 近似与随机傅里叶特征(Random Fourier Features)能把规模推到 10610^6,但形式上已经向「显式低维特征 + 线性模型」靠拢——这正好通往下一节神经网络的逻辑。

收官练习

Exercise

本练习是模块 2.6.2 的 capstone。证明:

  1. RBF 核 kRBF(x,x)=exp(xx2/(2σ2))k_{\text{RBF}}(x, x') = \exp(-\|x - x'\|^2 / (2 \sigma^2)) 是 PSD 的,方法是显式写出它的(无穷维)特征映射 ϕ\phi
  2. 软间隔 SVM 原问题等价于 L2 正则化合页损失 ERM,其中 λ=1/(nC)\lambda = 1/(nC):闭式消去 ξi\xi_i 即得。
提示

两题都从「定义代回」走起。对 (1):注意 exp(x,x/σ2)\exp(\langle x, x'\rangle/\sigma^2) 的 Taylor 级数每一项都是多项式核;对 (2):注意松弛变量 ξi\xi_i 在最优处一定取约束允许的最小值。

提示

(1):把 x,xn/(n!σ2n)\langle x, x'\rangle^n /(n!\sigma^{2n}) 视为 d=nd = n 的多项式核,再把 exp(x2/(2σ2))\exp(-\|x\|^2/(2\sigma^2)) 当作 ϕ\phi 的归一化系数吸收进去。(2):最优 ξi=[1yi(w,xi+b)]+\xi_i^\star = [1 - y_i(\langle w, x_i\rangle + b)]_+,代回目标 ξi\xi_i 消失;两边同除以 nCnC 即得 λ\lambda

模块小结与通往下一节

把 2.6.2 这四节连起来看:

  • ​CART 单棵决策树(2.6.2-1)​​:高偏低方,深度控制有效复杂度;在 nn 不大、特征异质的表格数据上做快速基线和可视化。
  • ​Bagging / 随机森林(2.6.2-2)​​:把多棵高方差树平均,方差以 ρ+(1ρ)/B\rho + (1-\rho)/B 衰减;OOB 误差几乎自带验证集,nn 中等、对调参不敏感时首选。
  • ​梯度提升 / XGBoost / LightGBM(2.6.2-3)​​:浅树拟合负梯度,shrinkage + early stopping 控制偏差—方差;中到大 nn、调好之后基本是表格数据的 SOTA。
  • ​核 SVM(本节)​​:把非线性藏进 RKHS 的内积,CC 控制偏差—方差;小到中 nn、高 pp、低噪声、解析友好的场景。

下一节 2.6.3 切换到神经网络——把「先升维再线性」的核思路反过来:不固定 ϕ\phi,而把 ϕ\phi 也当参数学出来。代价是失去凸性,收益是 nn 上不封顶。你会看到为什么 transformer 时代的 learned features 在逻辑上就是 RKHS 核方法的参数化推广,以及为什么核方法没真正退场——只是从 production 退到了原型与理论的位置。