第 7–8 章 · SVM 与 Boosting:全书两座高峰
SVM 用间隔与核技巧把线性模型推向几何最优雅的高峰;Boosting 用"串行纠错"把弱学习器推成强学习器。两者代表了两种正交的集成思想:全局最优 vs 串行拟合。
SVM(第 7 章核心回顾)
线性可分 → 软间隔 → 核化三级台阶(详见 ai-1 的 SVM 节)。李航版的要点强化:
- 对偶问题的推导(拉格朗日 → KKT → 支持向量):互补松弛条件 $\alpha_i[y_i(w\cdot x_i + b) - 1] = 0$ 把"哪些点决定边界"编码进代数;
- 合页损失视角:$\min\sum[1 - y_i f(x_i)]_+ + \lambda\|w\|^2$——SVM = 合页损失正则化,与 LR(对数损失)并列的线性分类器两兄弟;
- SMO 算法:每次优化两个变量的坐标上升,解析可行——工程实现的骨架;
- 序列最小优化与核函数选择(RBF 的 $\gamma$ 与 $C$ 的网格搜索)是实战的两大功课。
AdaBoost:错误驱动的集成
串行训练弱分类器,每轮提高被分错样本的权重:
$\alpha_m = \frac{1}{2}\ln\frac{1 - e_m}{e_m}$(错误率越低权重越大),最终 $f(x) = \text{sign}\left(\sum_m\alpha_mG_m(x)\right)$。训练误差以指数速度下降($\prod 2\sqrt{e_m(1-e_m)}$)是 AdaBoost 的定理级卖点。
提升树与梯度提升
把"纠错"思想用于任意损失:前向分步算法 $f_m = f_{m-1} + \beta b(x; \gamma)$,每轮拟合当前损失的负梯度(残差的推广):
梯度提升决策树(GBDT):用回归树拟合负梯度——平方损失下就是拟合残差。正则化三件套(学习率 shrinkage、子采样、树深限制)与 XGBoost/LightGBM 的工程改进(二阶泰勒、直方图加速)是表格数据竞赛与工业建模的统治级方案。Bagging/随机森林 vs Boosting 的分工:并行去方差 vs 串行去偏差。
老师的提醒
- SVM 实战检查单:特征标准化(RBF 核对尺度敏感)、$C$-$\gamma$ 网格 + 交叉验证、大样本先下采样(核矩阵 $O(N^2)$ 内存)。
- GBDT 调参顺序:树深(3-8 层起步)→ 学习率与迭代数(早停)→ 行列采样——顺序错了白烧算力。
自检
- 从合页损失重写 SVM 的优化问题。
- AdaBoost 的样本权重更新与 $\alpha_m$ 公式?
- 梯度提升"拟合负梯度"与残差拟合的关系?
更深一层:SVM 与 Boosting 是"两种正交的集成思想"
SVM 用间隔与核技巧把线性模型推向几何最优雅的高峰(全局最优 + 泛化界),Boosting 用串行纠错把弱学习器推成强学习器。两者的对立统一是本章最深刻的结构:SVM 是"一次性全局最优"(凸优化、间隔最大化)vs Boosting 是"逐步局部修正"(贪心、前向分步)。两种哲学在深度学习时代合流:残差连接(ResNet 的 $h = f(x) + x$ 本质是 Boosting 的"逐层拟合残差")、模型集成的蒸馏——理解 SVM 与 Boosting,就理解了机器学习方法论的两个极点。
AdaBoost 的训练误差指数下降($\prod 2\sqrt{e_m(1 - e_m)}$)与样本权重的指数更新 $w_{m+1,i} \propto w_{mi}e^{-\alpha_m y_i G_m(x_i)}$ 值得记住:错误率越低的基础学习器权重越大($\alpha_m = \frac12\ln\frac{1-e_m}{e_m}$)——"好学生的意见更响"。
推导细读:梯度提升是"函数空间的梯度下降"
GBDT 的核心思想——把"纠错"推广到任意损失——值得作为函数空间的优化来读:$f_m = f_{m-1} + \beta b(x;\gamma)$,每轮拟合当前损失的负梯度(残差的推广):$\tilde y_i = -\left[\frac{\partial L}{\partial f(x_i)}\right]$。平方损失下负梯度 = 残差(这就是"拟合残差"的朴素版),其他损失下负梯度是更一般的"伪残差"。梯度提升 = 在函数空间里做梯度下降——这个视角把 GBDT 从"一堆树"升级为"一个系统的优化框架",XGBoost 的二阶泰勒与 LightGBM 的直方图加速都是这个框架的工程深化。
在真实世界里:GBDT 的"表格数据统治"
GBDT 在表格数据上的统治地位至今未被深度学习撼动:风控、推荐、定价、搜索排序——特征结构化 + 中等规模 + 需要可解释的场景全是 GBDT 的主场。调参顺序的工业口诀:树深(3-8 层起步)→ 学习率与迭代数(早停)→ 行列采样——顺序错了白烧算力。深度学习的 TabNet/FT-Transformer 在表格数据上最接近 GBDT,但 GBDT 的训练成本与稳定性仍是压倒性优势。
专题深入:SVM 的"三层境界"完整版
第七章 SVM 的三层境界值得完整攀爬:第一层硬间隔(线性可分:最大化 $\frac{2}{\|w\|}$ ⟹ 最小化 $\frac12\|w\|^2$ s.t. $y_i(w\cdot x_i + b) \ge 1$——凸二次规划、全局最优、解只由支持向量决定);第二层软间隔(松弛变量 ξ + 惩罚 C:"硬约束 + 容忍违约"——C 是间隔与误分的汇率);第三层核技巧(对偶问题的样本点只以内积出现 ⟹ $x_i\cdot x_j \to K(x_i, x_j)$——隐式映射到高维甚至无限维)。对偶的必要性在此显形:原问题无法核化(w 在原空间),对偶问题系数只依赖内积——"对偶不是数学装饰,是核化的入场券"。合页损失视角(SVM = hinge loss + L2 的正则化最小化)把 SVM 拉回"损失函数谱系"——与逻辑回归只差损失形状(hinge 的零梯度区 ⟹ 稀疏支持向量)。
推导细读:KKT 与 SMO 的"求解工程"完整版
第七章的求解工程:KKT 条件的完整含义($\alpha_i = 0$ 点在间隔外、$0 < \alpha_i < C$ 恰在间隔上(支持向量的精确定义)、$\alpha_i = C$ 违约进间隔——KKT 三态是解读 SVM 解的字典);SMO 算法(每次选两个变量解析求解(二元 QP 有闭式)、启发式选对(违反 KKT 最严重的 + 最大步长)——把 n 变量 QP 分解成百万次 2 变量解析解,工程可行性在此);多类 SVM 的工程方案(一对一/一对多投票——libsvm 的默认实现);核与超参的实务(RBF 核 γ 与 C 的网格/贝叶斯搜索、样本量 > 10 万时核 SVM 训练成本不可接受——线性 SVM(liblinear)或 LR 接棒;概率输出需 Platt 缩放(SVM 本身不给概率))。SVM 的推理成本(预测 = 与支持向量的核计算,支持向量多则慢——"训练慢、推理也可能慢"是与树模型的成本结构差异)。
专题深入:Boosting 的"函数空间梯度下降"完整版
第八章的两代 Boosting:AdaBoost 的重加权逻辑(错分样本权重升、新弱学习器专注难样本,$\alpha_m = \frac12\ln\frac{1 - e_m}{e_m}$ 是弱学习器误差换算的投票权——训练误差指数下降的证明;对噪声标签敏感是它的软肋);GBDT 的统一视角(前向分步 + 负梯度拟合:平方损失时负梯度 = 残差(回归树拟残差),一般损失(分类的 logloss、排序的 lambdarank)时拟负梯度——" boosting = 函数空间的梯度下降,每棵树是一步"——Friedman 的这个视角统一了一切 boosting);二阶信息与正则(XGBoost 的目标含 $g_i, h_i$(一阶二阶梯度)+ 树复杂度 $\gamma T + \frac12\lambda\|w\|^2$——分裂增益公式带正则项);工程三件套(直方图分裂加速、Leaf-wise 生长、类别特征 native 处理(LightGBM/CatBoost)——表格之王是算法 + 工程的合谋)。
工程案例细节:SVM/Boosting 的产业分工工程版
七八章的工程出口:SVM 的存量战场(生物信息小样本高维(基因表达分类——样本几百、特征几万,RBF 核 SVM 的主场)、文本分类的线性 SVM(TF-IDF + liblinear 至今是强基线)、一个像素异常检测(One-Class SVM));GBDT 的工业帝国(搜索/广告/推荐的排序模型(lambdarank 系)、金融风控评分、出行业务的 ETA 预估——"表格数据 + 中等规模 = GBDT 默认"的产业共识);模型组合的层级用法(GBDT 出特征 + LR 出概率的"特征蒸馏"结构——GBDT+LR 是深度模型之前 CTR 的最强架构);可解释的 SHAP 层(TreeSHAP 多项式时间精确归因——XGBoost 的黑盒被 SHAP 打开,风控模型解释的合规工具);调参的最小集(学习率 + 树深 + 叶数 + 行列采样——"四参数调优覆盖 90% 收益")。两章的分工结论:小样本高维找 SVM,表格竞赛找 GBDT。
例题
SVM 样本:正类 $(3, 3)$、$(4, 3)$,负类 $(1, 1)$。求最大间隔分离超平面(利用对偶,支持向量在 $\alpha > 0$ 上)。
解答
对称性试探:分离线取 $x_1 + x_2 = b$。要求支持向量 $(3,3)$(正类最近)与 $(1,1)$(负类最近)到超平面等距: $w = (w_1, w_2)$,条件 $w\cdot(3,3) + b = 1$、$w\cdot(1,1) + b = -1$,两式相减 $2(w_1+w_2) = 2 \Rightarrow w_1 + w_2 = 1$。 最小化 $\frac12\|w\|^2$ 在 $w_1 + w_2 = 1$ 约束下:$w_1 = w_2 = \frac12$,$b = 1 - 3 = -2$。
支持向量 $(3,3)$ 与 $(1,1)$ 的 $\alpha$ 非零 ✓。
- 间隔 = 离得最近的点到边界距离的两倍;对偶解的稀疏性(只有支持向量有 $\alpha$)在这里肉眼可见。