「可重复性的『可视化诚实』」——为什么“复现成功”不该只画绿色对勾,而该画【差异图】
【锚点】这一篇只钉一个判断:【可重复性报告里最贵的不是“我复现了”,而是把“原结果”与“复现结果”的差异画成可检验的图;只给绿色对勾,等于把不确定包装成一致。】 【流程节点链路】起点【原论文图/数据】→【独立重跑代码】→【对齐变量与单位】→【计算逐点差异】→【画差异图/区间】→【判断差异是否小于预设容差】→终点【可复现声明】。
【显式】很多复现报告写:“我们复现了 Figure 2,结果一致。”读者只看到一个 ✅。问题不是态度,是【一致】没有单位:肉眼一致?均值一致?逐点一致?还是决策一致?
【隐式】如果只比较最终均值,差异会被平均掉。例:原组均值 0.42,复现组均值 0.45,差 0.03。若论文阈值是 0.50,0.03 可能无关;若阈值是 0.44,它足以改变结论。均值差不是证据,【差异分布】才是。
【细微】真正该画的是 Bland-Altman 图:x 轴放“原值与复现值的平均”,y 轴放“复现值−原值”,再画 95% 一致区间。假设 200 个点,均值差 0.02,差异标准差 0.06,则 95% 一致区间约 [-0.098, 0.138]。两张柱状图肉眼几乎一样,但区间里藏着 0.14 的潜在偏差;若下游分类阈值是 0.10,部分样本会被推到另一边。
【极难发现】绿色对勾最危险的地方,是它把【可执行路径】藏起来:随机种子、库版本、数据清洗顺序、并行线程、浮点归约方式。随机种子只固定随机数发生器,不固定 GPU kernel 的浮点累加顺序。一个 1e-8 的数值差,肉眼看不见,但可能让 7/100 个样本从 0.49999999 变到 0.50000001,二值化后标签翻转。可重复性不是“结果相同”,而是“差异能追到某个节点”。
【结论】所以,复现报告至少该包含三样东西:原值、复现值、差异图;再给一个事先写好的容差。没有差异图,绿色对勾只是审美,不是测量。
【可辩论问题】如果复现差异落在你预设容差内,但恰好翻转了论文结论,你该宣布“复现成功”,还是宣布“原结论脆弱”?







0 評論