# Ml Theory Compass

> 把学习理论当"提问框架"用的思维工具。问"这方法有理论保证吗""需要多少数据""深度 网络为什么能泛化"，或要把模糊需求改写成可谈判契约时调用。工具组：PAC三问、容量 三刻度、MDL学习即压缩、替代损失推理、核技巧升维、策略迭代单调证书、半监督安全检查。 不适用于实现调试、数理证明辅导。trigger: PAC learnable, VC dimension, generalization bound, 泛化界, sample complexity, MDL, surrogate loss, kernel trick, 核技巧, overparametrized generalize。

- Skill: `fieldlu/ml-theory-compass` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add fieldlu/ml-theory-compass`
- Raw SKILL.md: https://api.skillmd.com/api/skills/fieldlu/ml-theory-compass/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: fieldlu (https://skillmd.com/u/fieldlu)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/fieldlu/ml-theory-compass

---


# 理论罗盘：把学习理论用作提问框架

## R — 原文 (Reading)

> "计算学习理论中最基本的是概率近似正确(Probably Approximately Correct, 简称 PAC)
> 学习理论……若存在学习算法，其输出假设满足 P(E(h)≤ε)≥1−δ，则称学习算法能从假设
> 空间中辨识概念类。"
>
> — 周志华《机器学习》第12章12.2节（PAC 辨识定义）

> "常用评分函数通常基于信息论准则，此类准则将学习问题看作一个数据压缩任务，学习的目标
> 是找到一个能以最短编码长度描述训练数据的模型……这就是'最小描述长度'(Minimal
> Description Length, 简称 MDL)准则。"
>
> — 周志华《机器学习》第7章7.5.2节

---

## I — 方法论骨架 (Interpretation)

学习理论的正确打开方式不是背定理结论，而是把它当作一组**提问模板**——每个理论工具对应一种在实践里反复出现的提问姿势：

1. **PAC 三问**：任何"模型要达到 X 精度"的点估计要求都应译成三元组契约——多大把握(δ)、多少误差(ε)、多少样本与算力预算。模糊需求经此翻译立即暴露内在矛盾，变成可谈判条款。
2. **容量三刻度**：VC 维(分布无关而松)、Rademacher 复杂度(考虑数据分布更紧)、算法稳定性(绕开假设空间直连 ERM)——回答"为什么泛化"时先选尺子：要普适性用左边的，要紧致解释往右走。"深度网络 VC 维巨大为何还泛化"这类悖论，用最左的尺量必然失灵。
3. **MDL 学习即压缩**：评价任何解释只问一件事——总共花多少比特(模型字节+残差字节)。它把"简单 vs 复杂"的品味之争变成可计算评分，并统一了 MLE/AIC/BIC。
4. **替代损失推理**：原目标不可优化就换个凸的好优化的代理，但要记住代理最优≠原指标最优——hinge 长出稀疏支持向量、对率长出概率输出、指数损失长出 AdaBoost，替代品决定产物基因，事后须做一致性检查。
5. **核技巧**："空间不行换空间"——表征本身是设计变量；核选错等于映进错误空间，调参救不回来。
6. **单调性证书**：策略评估-改进迭代敢放心循环是因为每步改进被证明不减；缺证书的循环（复盘-调整、贪心上线）必须外接 A/B 门控充当证书。
7. **半监督安全性检查**：未标记数据的收益以桥接假设为抵押，假设错会倒扣分——凡理论承诺都要先问兑现前提。

统一心法：**理论给出的是边界与提问姿势，不是答案**；用它来划定"什么问题值得问、什么结论不能信"，而不是直接预测实验结果。

---

## A1 — 书中的应用 (Past Application)

### 案例 1: PAC 三问拆解"准确率达到99%"式要求 (f38)
- **问题**: 老板/需求方要求"模型准确率达到 99%"——一个无法判定的点估计要求。
- **方法论的使用**: 按 PAC 格式改写成"以至少 1−δ 概率取得误差 ≤ ε 的模型"，追问 δ 取多少、ε 与 99% 的差距、以及支撑该承诺需要的样本量与训练预算。
- **结论**: 需求从口号变成可谈判的三元组契约；预算矛盾当场暴露。
- **结果**: 该提问框架成为把一切模糊学习目标译成可判定契约的标准动作。

### 案例 2: MDL 裁决两条规则集之争 (f23)
- **问题**: 模型 A 用 10 条规则达 95% 准确率，模型 B 用 3 条规则达 93%，凭直觉争不出胜负。
- **方法论的使用**: 计算各自总码长=模型描述字节+残差纠错字节——数据量大时 A 的精度优势压倒 B 的简洁节省；数据小时 B 总码长更短胜出。
- **结论**: "小数据偏爱简模型"不是品味而是可定量计算的切换点。
- **结果**: 同一公式顺带解释了 MLE/AIC/BIC 是不同档位的同一折中。

### 案例 3: 策略迭代的单调性证书迁移到复盘流程 (f44)
- **问题**: 强化学习的策略评估→改进→再评估循环为什么可以放心迭代到收敛？
- **方法论的使用**: 作者展示值函数对每次改进单调不减——这是循环安全性的证明基础；对照之下，公司常见的复盘-调整循环缺少等价闸门，未经证明的改动直接上线导致越改越乱。
- **结论**: 任何评估-改进循环的安全性来自可证明的单调性；缺证书就补闸门(A/B 测试)。
- **结果**: 把 RL 教科书结构抽象成可迁移到管理流程的设计原则。

---

## A2 — 触发场景 (Future Trigger) ★

### 用户会在什么情境下需要这个 skill?

1. 被要求承诺模型性能("准确率 99%""误差不超过 1 个点")，不知道怎么把不可判定的要求变成可谈判的技术方案。
2. 回答"深度网络参数比样本还多为什么不过拟合""VC 维大的模型一定差吗"这类理论-实践张力问题。
3. 两个模型一个简单一个准，团队吵"该选谁"；或想优化 recall@K/BLEU 这类不可微指标。
4. 设计复盘-调参-上线的迭代流程，想知道什么样的循环改动是安全的。
5. 决定要不要在标注贵的数据上加无标注数据，想先弄清理论上的前提与风险。

### 语言信号 (用户的话里出现这些就应激活)

- "theoretical guarantee / 理论保证 / 泛化界 / generalization bound 到底有什么用"
- "how much data do I need / 需要多少样本才够 / sample complexity"
- "overparametrization 为什么能泛化 / VC dimension 解释不了深度学习"
- "MDL / learning as compression / 奥卡姆剃刀有没有量化版本"
- "surrogate loss / 想优化一个不可导指标怎么办"
- "policy iteration 为什么收敛 / 我们的复盘流程为什么越改越乱"

### 与相邻 skill 的区分（定稿口径）

- 与 `ml-pitfall-audit` 的区别：审计 skill 防御性地检查"实践何时骗你"；本 skill 建设性地回答"理论何时能用"——一个查塌方，一个画地图。且互为出口：本 skill 发现理论前提失效（如 x32 误差独立）时由审计接住；审计发现用户在滥用理论修辞时转介回本 skill。
- 与 `ml-dimensionality` 的区别：降维 skill 用 PCA 双视角等技术做事；本 skill 只讲这些技术背后的认识论原理(两种直觉汇聚=根基稳固)及其提问价值——工程执行面 vs 认识论面。
- 与 `ml-bayesian-thinking` 的区别：贝叶斯 skill 管"声明多强假设"的具体建模纪律；本 skill 管"理论承诺的兑现条件"这一般性问题(如 f24 只是其中一问)。
- 与 `ml-task-matching` 的区别：选型 skill 消费"哪个候选的偏好匹配任务"；当用户援引理论保证（PAC/VC/样本复杂度）为候选背书时，由本 skill 审查该承诺的前提与松紧，再交回选型结论。

---

## E — 可执行步骤 (Execution)

当 skill 被激活后, agent 应按以下步骤执行:

1. **识别用户问题的理论类型**
   - 完成标准: 将问题归入七类之一——需求翻译(PAC)/泛化解释(容量刻度)/模型比较(MDL)/目标改造(替代损失)/表示升级(核技巧)/迭代安全(单调证书)/免费午餐审查(半监督前提)。无法归类则说明本 skill 不适用。
   - 判停条件: 若问题同时含多个理论类型（如"要多少数据+为什么能泛化"），按"需求翻译优先、泛化解释次之"排序逐个处理；若用户实际要的是具体实现帮助，跳到 B 段转介。

2. **套用对应提问模板**
   - 完成标准:
     - 需求翻译 → 输出 (δ, ε, 预算) 三元组草案并列出矛盾点；
     - 泛化解释 → 先问"你要普适还是紧致"，再按 VC→Rademacher→稳定性递进作答；
     - 模型比较 → 计算两边总码长(模型+残差)，报告随数据量的切换点；
     - 目标改造 → 给出代理函数候选+副作用清单(校准漂移等)；
     - 表示升级 → 判断当前失败是否源于线性空间不足，给出核选型默认序列(文本线性核→不明试高斯核)；
     - 迭代安全 → 检查循环有无单调性保证，无则设计 A/B 门控；
     - 免费午餐审查 → 列桥接假设清单+最坏情形保护方案。

3. **明确理论的适用边界**
   - 完成标准: 每个引用的理论结论旁标注其前提(i.i.d.? 分布无关? 渐近成立?)与现实差距——例如"误差指数下降"依赖独立性(x32)、PAC 界数值上通常极松。禁止把理论数字当预测值使用。

4. **落地为行动建议**
   - 完成标准: 把理论判断转成下一步动作(谈判口径/实验设计/门控方案/基线对照)，并注明哪些只能靠实验裁决、理论在此只排除了哪些选项。
   - 判停条件: 若理论工具无法排除任何选项（各刻度给出相同结论且无决策差异），明确告知"此问题理论不提供增量信息，应直接实验"，停止理论展开。

---

## B — 边界 (Boundary) ★

### 不要在以下情况使用此 skill

- 用户需要的是具体实现帮助(怎么写 EM 代码、怎么调 SVM 的 C)——理论罗盘给提问姿势不给代码。
- 用户在做严格的数理证明作业——本 skill 面向实践者的问题翻译，不做完整数学推导。
- 问题已有明确定位且属专项领域(高维/不平衡/贝叶斯建模)——转专项 skill，避免理论绕远路。

### 作者在书中警告的失败模式

- **理论前提的现实缺口 (x32)**: "T 个分类器误差指数下降趋零"依赖误差独立，现实中不成立——引用漂亮理论曲线前先查前提。
- **近似推断的两条路线各有失效坑 (f24)**: 变分有系统性偏差，MCMC 有 burn-in 与吉布斯极端概率失效——没有免费的"完美 vs 可行"。
- **替代损失的副作用**: 代理最优≠原指标最优，置信度会系统性漂移——换目标必须配一致性检查。
- **核选错的不可救药性 (x25)**: 核选择是"最大变数"，映进错误空间后调 C 无解。

### 作者的盲点 / 时代局限

- 书中理论框架(尤其 PAC/VC)建立在 i.i.d. 假设之上，对预训练时代的 benchmark 泛化、分布外检测、scaling law 现象无覆盖——"过参数化为何泛化"的现代答案(隐式正则/神经切线核/双下降)书中缺席，本 skill 只能给出刻度递进的回答框架。
- 因果推断视角整体缺失，"理论保证"在因果问题上的扩展无从谈起。

### 容易混淆的邻近方法论

- **理论指导实践 vs 理论崇拜**: 本 skill 的立场是理论排除选项而非预测数字；把 PAC 界当性能预期、把 VC 维当选型唯一依据都是误用。
- **MDL vs 贝叶斯模型选择**: 两者形式同源(MDL 可由编码视角推出 BIC)，但语义不同——压缩成本 vs 后验概率；混用时注意先验隐含在哪一侧。
- **稳定性 vs 正则化**: 稳定性是算法性质(容量刻度的第三把尺)，正则化是达成稳定性的手段之一——手段与度量不要混称。

---

## 相关 skills

- depends-on: 无（提问框架型 skill；其发现的理论前提失效由 ml-pitfall-audit 接住）
- contrasts-with: ml-pitfall-audit（建设面画地图 vs 防御面查塌方，互为出口）, ml-dimensionality（认识论面 vs 工程执行面）, ml-bayesian-thinking（一般原理 vs 建模操作）
- composes-with: ml-task-matching（用户援引理论保证为候选背书时接力审查）, ml-dimensionality / ml-bayesian-thinking（f32 双视角、f20/f24 假设交易的认识论底座）

---

## 审计信息

- **验证通过**: V1 ✓ / V2 ✓ / V3 ✓
- **素材单元**: f38, f39, f23, f14, f16, f44, f40, f41 / x32, x25
- **skill_version**: 0.0.1
- **蒸馏时间**: 2026-08-24

