第六编 三条款
到这一编为止,书里已经把两侧的现役武器都摆在台面上了。先在论有表征收敛、有彩票假说、有线性模式连通;造成论有欠规定性、有多种子基准、有次序与课程效应。一个读到这里的人很容易生出一个印象:材料已经够多了,剩下的只是掂量哪一堆更重。
这个印象是错的,而且是本案两千年判不下来的近因之一。
把双方的材料并排放一次就看得出来。先在论拿得出路径依赖的证据——它从不否认不同种子训练出的模型不一样,它只是说这种不一样会随着规模消失。造成论也拿得出路径无关的证据——它从不否认所有模型都学会了主谓一致,它只是说那不是全部。两侧不是在同一个命题上取了相反的值,两侧是在两个不同的命题上各取了一个值。
原因在于”路径依赖”这个词。它在先在论嘴里指的是求解过程的有限性;在造成论嘴里指的是结果的存在条件。这两件事都会在实验里表现为”换一条路,结果不一样”,而且在中间规模上表现得几乎一模一样。于是双方各自用自己的意思去读对方的数据,各自读出自己要的结论,谁也没有说谎,谁也没有说服谁。
一个词承担两个互不相容的所指而不被察觉,是哲学悬案最常见的病灶。处理办法只有一个:把词拆开,拆到两个所指各有各的判别特征,且这些特征在同一个实验里给出可以相互排除的读数。
本章做的就是这件拆分。这是全书的承重柱:第五十三章到第五十七章的三条条款,全部是这一次拆分的操作化;第八编对手的每一件旗舰,也都只有放回这个区分里才知道它究竟赢下了哪一半。拆不干净,后面全部作废。
定义(计算性路径依赖):路径差异造成的结果差异,其原因在于求解过程的有限性——有限步数、有限算力、有限数据、非凸景观中的局部停留。
它有三个判别特征,三条都要给足,缺一条就不算。
特征一,差异随资源增加而系统性衰减。 这不是一句修辞,是一条可以画成曲线的经验后果。给定同一套材料、同一台装置、同一个判准,把资源逐级加上去,不同路径之间的结果距离应当逐级变小,并且在外推上趋于零,或趋于纯测量噪声的水平。它可以衰减得慢,可以衰减得不均匀,可以在某一段先升后降——但方向必须是那个方向,且极限必须是那个极限。
特征二,存在一个与路径无关的描述。 这一条比第一条更根本,也更常被漏掉。计算性的意思是:那个”正确答案”本来就被材料、装置与判准共同规定好了,不同的路径不过是对同一个东西取了不同精度的近似。因此必须存在这样一个描述,它只以材料、装置、判准为自变量,不提路径,而每一条路径的结果都可以被归结为该描述下的一个近似或一个成员。写不出这个描述而仍然坚持差异是计算性的,等于把计算性当成了信念而不是命题。第五十六章的条款二做的就是向对方索要这个描述。
特征三,差异在消去已知对称性之后缩小。 两个结果之间的距离里,往往有一部分是纯标号的:神经元换个排号、整层乘一个正数、内部坐标系转一个角度。这些不是实质差别。真正的计算性差异,在把这些对称性消去之后会变小;若消不掉,说明剩下的那部分不属于标号。这一条对本书极其重要,因为它是我们主动给自己设的障碍:不允许靠标号差异赢。
举一个干净的例子。两个人各用一种算法算圆周率的小数位,一个用级数,一个用迭代公式。跑同样的时间,两人手上的数字串不一样。这个差异确实由路径造成,确实可测,也确实可以做出漂亮的图。但它是计算性的,三条特征全中:多给时间,两串数字会越来越像;存在一个不提算法的描述——圆周率本身——两串都是它的近似;而且这里根本没有标号自由度可言。没有人会说这两个人算出了”不同的圆周率”。
这个例子平庸得近乎无趣,而它正是要害所在:迄今为止机器学习里报告过的绝大多数路径依赖,在结构上都是这个例子。 非凸优化的局部极小当然依赖初始点和下降轨迹;但损失函数是由数据与架构给定的,极小点的集合在第一步梯度落下之前就已经被完全确定。训练走到了哪一个,是路径的事;有哪些可以走到,是先在的事。
所以要说得更硬一些:计算性路径依赖是先在论的自家话,而不是造成论的战利品。 把它当证据捧出来,是这场辩论里最常见、也最便宜的胜利。本书第一件要做的事就是把这条捷径堵死——不是出于风度,是出于自利:靠它赢下来的判决,对手一夜之间就能收回去。
定义(构成性路径依赖):路径差异造成的结果差异,其原因在于结果的存在条件包含路径本身。
判别特征同样是三条,逐条与上面相反。
特征一,差异不随资源增加而衰减为零。 加规模、加算力、加数据,路径间距离趋于一个正的常数。注意这里要求的是极限而不是趋势:一个衰减到正常数的量,与一个衰减到零的量,在中间规模上几乎无法用肉眼分辨。第五十四章的条款一就是把这条差别变成一个可拟合的量。
特征二,不存在只由材料、装置、判准构成的描述能把不同路径的结果统一归结。 索要地址而索要不到。这一条是条款二。
特征三,某些结果只有某些路径到得了。 在最严格的意义上说,可达集不是满的:固定材料、装置与判准,把所有路径跑遍,也有一些结果落在集合之外——不是因为算力不够,而是因为从那条路走过去,那里没有那个东西。这一条是条款三。
三条特征的强度是递增的,不是并列的,这一点第五十八章会写清楚。
再举一个同样平庸的日常例子作锚。两个厨房各养一罐老面引子,起手的面粉与水是同一批,室温与喂养的频率都对齐,只有第一次静置时厨房里飘进去的东西不同。养一个月,两罐引子里的菌群不一样,发出来的面也不是一个味道。养十年,还是不一样——并且不会因为多养十年而互相靠近。这里不存在一个”正确的引子”,使得两罐都是它的近似;也没有哪一罐只是”还没养到”。两罐引子不是同一个东西的两个近似,是两个东西。
这个例子和圆周率那个例子放在一起,本章要的那条界线就现出来了:
计算性路径依赖说的是”你还没走到”;构成性路径依赖说的是”从这条路走过去,那里没有那个东西”。
这句话是全书反复回到的那一句。它看起来像修辞,其实每一半都对应着一组可以写死的判负条件,本编余下七章的工作就是把这两半逐条兑现。
上一节的老面引子有一个危险:它太顺手了。顺手的类比会诱人越过一道本书不许越的门槛。
把那两罐引子当成构成性路径依赖的证据,需要满足什么?需要证明它们不会收敛——也就是把这个厨房重开一千次,把”资源”(这里是时间与喂养量)加上一两个数量级,看差异是否趋于正常数。但这件事做不到。厨房不能重跑,菌群的”规模”没有一个可以逐级加上去的自变量,而且更要紧的是,没有人能在两罐引子之间定义一个可辩护的距离,使得”差异不衰减”这句话有确定的含义。
所以那两罐引子只能当作辨认工具:它让人看清两种路径依赖在直觉上的不同形状。一旦要求它判案,它立刻退化成一个故事。
这不是老面引子的缺陷,是案例这种证据形式本身的天花板。它同样罩住了库恩的范式、皮克林的冲撞、强纲领的全部个案研究——那些工作在展示历史路径如何塑造了结果这件事上做得极为出色,但它们没有一件能排除”换一条路最终也会走到那里,只是更慢、更绕”。它们缺的从来不是材料,是极限;而极限需要可重跑与可缩放两样东西,历史一样也给不出。第五十三章专门处理这件事,那一章是本书对造成论自己这一侧最不留情面的一章。
因此本章要立的纪律很简单,写在这里,全书适用:
类比用于辨认,读数用于判决。本书不允许任何一个日常例子、历史案例或思想实验出现在判决位置上。
拆词容易,拆完之后两边仍然各说各话,才是常态。本章之所以不是又一次概念辨析,是因为这两个定义的判别特征全部落在可测的量上,而且这些量在同一个实验里指向相互排斥的方向。
把三对特征并排列出来:
| 计算性 | 构成性 | 落成的条款 | |
|---|---|---|---|
| 资源加上去 | 差异衰减到零或噪声水平 | 差异趋于正常数 | 条款一(第五十四章) |
| 不提路径的统一描述 | 存在 | 不存在 | 条款二(第五十六章) |
| 可达集 | 满的 | 不满 | 条款三(第五十七章) |
三条都通过,构成性路径依赖成立。任何一条判负,本书作出相应让步,让步的具体内容在第五十八章逐条写明——那一章也把四条败绩条件写死,写死的时间在任何读数产生之前。
这里要提前说破一处风险,因为它足够重,不该藏到第九编去。第一行那个量依赖于”差异”怎么度量,而度量是本书的自由参数。取一种度量差异衰减,取另一种不衰减,这件事完全可能发生。若真如此,那么本章立的区分本身就会在经验上不可判,全书的判据随之作废。第八十章正面处理这一记反击,处理的办法不是辩解,是把自由参数逐处点名并在预注册中冻结。这里先记一笔:本书的判据有一个可以杀死它的方式,而我们知道那个方式是什么。
本书的纪律是不利读数与有利读数同等篇幅,所以在这根柱子刚立起来的地方,就要把已经跑出来的东西摆出来,而不是等到第七编去摆。
第七编报告的首跑,测的正是表格第一行。材料是 PolyPythias 的公开检查点,四个规模点(14M、31M、70M、160M),每个规模五个只在路径上不同的运行,探针集在执行之前冻结。
表征通道的读数:路径间距离在 14M 到 160M 上依次是 0.352、0.445、0.441、0.411,先升后持平,没有向零衰减的迹象。这个读数是在线性中心核对齐度量下得到的,而该度量对神经元置换、正交变换与各向同性缩放不变——也就是说,上一节特征三要求的对称性消去已经做过了,这些差异不是标号差异。作为对照,同一条路径内相邻一千步的两个检查点之间,同一个量在最大规模上只有 0.031。
行为通道的读数:路径间距离依次是 0.263、0.221、0.171、0.116,单调下降。归一化之后,从基线的 6.45 倍降到 2.37 倍。
按预注册第四条写死的规则,条款一通过的条件是归一化量不趋向 1 且无向 1 衰减的单调趋势——表征通道满足,行为通道不满足;条款一判负的条件是归一化量单调下降且在最大规模不显著区别于 1——行为通道满足前半条,不满足后半条。两通道结论不一致,按第四条第三款判未能分辨。
这就是这根柱子目前的受力状态:它立住了,但还没有被读数压实。 有一件事必须说清楚——如果只报表征通道,这一跑看上去是条款一的一次漂亮通过;如果只报行为通道,这一跑看上去是一次清楚的败绩。两种写法都能成文,两种都是作弊。第六十四章专章论证为什么”未能分辨”本身是一个结论,而不是一次没有结论。
还要补一句本跑暴露出来的方法论缺陷,因为它直接影响上面这几个数字该怎么读。作噪声基线用的”同一路径内相邻检查点”,在 14M、31M、70M 上稳定在 0.0134、0.0129、0.0109,到 160M 跳到 0.0306,接近三倍。归一化量在最大规模处从 40.4 掉到 13.4,主要不是分子变了,是分母变了。这意味着这条基线测到的是训练在该规模该时刻的推进速率,而不是一把跨规模恒定的尺子。后果是明确的:本跑的归一化曲线不能作为规模趋势的证据,只有各规模内部”路径间远大于路径内”这一条比较仍然成立。第六十五章专章写这件事,并据此修订第十三章的冻结项清单。
收束一句,把这一章在全书里的位置钉死。
拆开”路径依赖”这个词,本身不产生任何新的经验内容。它产生的是判决的可能性:在拆开之前,两侧的全部材料都是相容的,谁也驳不倒谁,争论可以再持续两千年而不损失任何一方的融贯性;拆开之后,两侧对同一批可测量的量给出了相反的预言,而相反的预言是可以被读数分开的。
这正是本书那一句脊梁在这一章里的具体形状。缺的从来不是论据——论据双方都堆成了山。缺的是一个使论据开始互相排斥的位置,以及一台能把过程重跑到那个位置上的装置。装置在第四编已经交代,位置就在本章这三行表格里。
接下来的五章把三行表格变成三条可执行的条款,第五十八章写死败绩条件,第五十九章写死冻结的方法学。到那时,这道题将第一次具备被判错的资格——而一道题能被判错,是它能被判对的全部前提。