灵光 · 灵光 · · 国科智飞 Gavin

捷径学习:须根上那点土,从来不是土

闻记药行的陈望山看一眼须根上的土就敢盖印,三十年没判错一笔。一场秋汛之后,他凭的那点土成了要命的东西。一个关于「捷径学习」的寓言。

闻记药行的后堂有一张半旧的乌木案,案上常年只摆三样东西:一支铜镊、一匹白布、一盏从不挪位置的油灯。

验参的陈望山在这张案前站了三十年。

参是怎么来的,行里都清楚:长白山下来的老山参走聚丰船行的船,有引票,从松花江转运河,一船一船进天津卫;用沙参蒸软了压成形似的假货走不了官卡,只能由山货客背着,从山里那条走熟四十年的小路出来,二十天到天津。

陈望山验参的法子,行里没人学得会。他把参搁在白布上,翻过来看须。徒弟阿全跟了六年,只学下一句话。

「师父,须根上沾的这点土,是什么土?」

「不用管是什么土。」陈望山说,「有,就是真的;没有,就是假的。」

起初他也验得慢:看芦头、看纹、看铁线的断口,一支拿不准的参能耗掉半炷香。后来他发现,只看须根上那点土,一炷香能看二十支;而且不是二十支里错一支,是二十支全对。

他就把别的法子都收了起来。

《验参簿》上记着三千四百二十七笔。每一笔只有三样:日期、批号、判真或判假。三十年,没有一笔判回去。

每年九月,城里十二家药行的师傅来闻记会验。一人在案前坐一炷香,面前十支参,盖印,当众拆封。陈望山连拿了十九年的头名。那十支参,是闻记从聚丰船行的存货里挑的——城里的参,本来就从那条船上下来。

今年秋汛,松花江涨水,聚丰的船在江口压了六十天。真参断了路,背夫只好把货卸下来,一支一支背上那条四十年的小路,路上沤烂三成。九月的会验没有办成——十支参凑不齐,十二位师傅来了又回去。

同一年秋天,山货客郭二在天津卫买到一批聚丰退下来的旧麻袋,三十两银子。那批麻袋在参舱里压了九年,桐油浸透了,一抖落,一层暗黄的细末。

他把一批发黑的假参装进旧麻袋,混进杂货栈,走运河大路,一路有引票,一路没遇见一个开箱的人。

九月里,三批货进了闻记的后堂。

第一批,真参,由背夫从山里背出来。须根上干干净净,黄泥、汗气、一路的沤味,都在皮上,不在缝里。陈望山翻过来,看了一眼,捺印:假。原封退回。

第二批,同上。退。

第三批,假参。它在旧麻袋里走了三千里,麻袋底的桐油一路渗进参须的每一道缝。陈望山翻过来,看了一眼,捺印:真。入库,分给城里十一家药铺。

冬月里,那十一家药铺的方子全废了。

东家闻二爷把《验参簿》从柜底翻出来,一页一页看,看到第三千四百二十七笔,忽然抬头问了一句。

「这些,凭什么判的?」

陈望山张了张嘴。簿子上没有一笔写着「凭什么」——三十年,他记的全是结论。哪一批对过、哪一批事后被人退回来、哪一批出了岔子,一笔不落;但他凭哪一点判的,一笔也没有。

闻二爷派人去聚丰船行,把参舱查了一遍。回来的人说:舱底刷桐油,麻袋也过桐油,为的是防潮防虫。长白山的货在这舱里压三个月,须根上必带一层暗黄的桐油末——洗不掉,跟山里的黄土不是一回事。

陈望山须根上看见的那点「土」,年年都是桐油。

三十年,真参只从这条船上下来,假货只从小路上来。那两件事在三十年里从没有分开过,于是他也从来没有分开看过。

那一夜他没有回家。他从库里取出一支真参、一支假参,都是秋天退回来和收进去的那两批。他把两支都在井水里洗净,拿软刷刷去泥,用炭火焙干,一样平摆在白布上。

灯还是那盏,位置也没挪。

他从戌时看到子时。

然后站起来,把灯吹了。

概念:捷径学习

一句话:一个系统可以在考核里近乎满分,却从来没有做过你要它做的那件事——它只是找到了那条分布里最省力、又恰好与答案同行的路。

2020 年,Robert Geirhos 与同事在《Nature Machine Intelligence》上发表《Shortcut learning in deep neural networks》,把这件事归成一个名字:模型常常不是学会了任务,而是学会了「在这份数据里与标签高度共变、却不承载任务机制」的规则。他们汇总的旧案,每一个都验得出成因:

为什么「完美」是警告而不是喜讯:干净的真实任务,天花板通常不高。分数逼近 1,说明那个分布里还藏着一条别的东西,恰好与答案同向。准确率是必要条件,不是充分条件;而且是必要到让人放心的那种必要条件——所以你从不会去验它。

为什么是「捷径」而不是「错误」:它没有犯错。在被考核的那件事上,它百分之百正确。错的是它选的规则不承载机制:共变关系一断——换了来源、换了季节、换了一批人、换了一台仪器——它塌得比不会还快,因为它连「该怎么判」都没有过。

三条当场可用的判据:

  1. 换来源。 换成非本渠道的输入:换一家客户、换一家医院、换一批供应商、换一个部门。分数掉多少,就说明原来那分数里有多少是桐油。
  2. 洗掉土。 拿掉那个共性再看:拿掉品牌词、拿掉熟客名单、拿掉我们在场。掉光,说明它只会读路,不会读参。
  3. 写依据,不只写结论。 簿子上没有一行写「凭什么」,事故之后就既不能归因,也不能修。验收记录必须写依据,因为记录本身不是验收。

故事里的映射

故事里的东西 对应什么
须根上那点暗黄的土 与标签共变、却不承载任务机制的特征(shortcut cue)
船与山货小路两条进货路 数据的来源分布:模型找到的捷径,常常就是一个「来源分类器」
三十年只走船、只走小路 训练与评估分布单一,捷径与真任务在分布内无法区分
一炷香二十支、全对 考核上的高准确率,以及随之而来的信任
「不用管是什么土」 规则是「共变即判据」,不是「成分说明机制」,事后也归因不出来
把别的法子都收起来 省力的规则挤掉昂贵的规则
九月会验,十支参都从聚丰存货里挑 测试集与训练集同源:分数是自证,不是验证
那年会验没办成 分数之所以可信,是因为卷子一直出在同一条船上
松花江涨水、郭二买旧麻袋 分布偏移:共变关系断开,甚至反向
《验参簿》三千四百二十七笔 只记结果、不记依据的记录体系,数量越大越像资产
洗净焙干、土全刷掉的一真一假 消融测试:拿掉捷径之后,还剩下什么
吹灯 结论不是「换一个法子再猜」,是承认没有这个能力

现实中的表现

共同点是:它们都不算错,而且都经得起你手上那张验收单。

给 AI 时代的企业

执行变便宜了,分数就更容易变漂亮,而分数的信息含量在同时下降。当一件事可以用三种方式做出结果、只有一种真的通了,漂亮的结果不再自动指向通了。

这个时代最贵的不是产出,是能区分「通了」和「看起来通了」的那一次验证。

具体做三件事:验收单上添一栏「依据」,跟结论一起留;每个上线的判断,留一条不参与训练的 holdout;以及定期把「来源」这条变量换掉再测一次——换一批客户、换一个部门、换一台仪器。

陈望山的悲剧不在于他笨。他勤、他诚、三十年一笔不落地记账。他的悲剧是他那套校验链,从第一天起就与被验的东西同源。

那天夜里他吹了灯,回屋把《验参簿》翻到最后一页,添了一栏,只有两个字:凭什么。


灵光 · 用一个故事讲清楚一个概念。

相关阅读

相关服务