实证研究的常见错误
测试集泄漏(用测试集选模型)、只报告最好的运行、基线未调优、数据集选择偏差、评价指标与目标不符、过度声称(overclaiming)。本章逐一给出识别方法与避免方式。
六类常见错误
Section titled “六类常见错误”实证研究最常见的六类错误,每类都有识别方法与避免方式:
| 错误 | 表现 | 避免方式 |
|---|---|---|
| 测试集泄漏 | 用测试集选模型/调参/停训 | 验证集选模型,测试集只用一次 |
| Cherry-picking | 只报告最好的运行/数据集/指标 | 报告所有种子、所有尝试的配置数 |
| 不公平比较 | 基线未调优、预算不对等、用弱实现 | 基线同等调优努力,报告搜索预算(见假设、基线与消融) |
| 数据集选择偏差 | 只在有利于自己的基准上测 | 覆盖主张涉及的各数据集;解释为什么排除某些 |
| 指标与目标不符 | 主张"更好"但指标测的不是那件事 | 指标与主张一一对应;补充人类评估当指标可疑时 |
| Overclaiming | 结论超出实验覆盖的条件 | 结论限定在实验条件内(见过度声称) |
读论文时(也用于自查),几个快速信号:
- 结果表没有方差、没有运行次数 → 方差与选择状态不明;
- 消融表只有成功的变体 → 可能存在 cherry-picking;
- 基线数字与官方实现/引用数字不一致且无解释 → 复现质量存疑;
- 声称"通用/首个/大幅"但实验只覆盖一个设置 → overclaiming;
- 指标与主张错位:主张推理能力,测的是某个基准的准确率 → 需要更直接证据。
避免方式:流程性的对策
Section titled “避免方式:流程性的对策”这些错误多数不是有意为之,而是流程缺陷。三个流程对策:
- 冻结测试集:划分数据时固定测试集,所有探索性决策只在训练/验证集上做;评测脚本与数据版本一起锁定(见可复现性)。
- 记录所有尝试:实验管理工具记录每次配置与结果(见算力与实验管理),论文报告时以记录为准——"报告所有尝试过的配置数"既是对读者诚实,也是对自己的保护(见造假、篡改与可疑研究实践)。
- 结论先写条件:写结论时第一句写"在什么条件下",再写观察到了什么——强制自己不越界。
这些错误的系统性讨论见 Lipton & Steinhardt, "Troubling Trends in Machine Learning Scholarship" (2018)。
- 验证集选模型、测试集只用一次
- 报告所有尝试过的配置数
- 结论不能超出实验覆盖的条件