一秒记住【笔趣阁】biquge543.com,更新快,无弹窗!
第一卷少年游第八十二章分岔(第1/2页)
江遥把那张数据纸翻到背面时,才发现纸袋里并不只有数据。
最下面还有三张半透明的方格纸,每一张都是二十乘二十的格子,某些位置印着黑点,另一些位置是空白。三张纸上的黑点数量相差不算大,分布却明显不同:第一张几乎像随手撒了一把芝麻,第二张开始出现三三两两的团块,第三张里最大的那一团已经占据了整张纸接近三分之一的面积。除此之外,袋子里还有六组没有标题的数值,每组都只有两个参数,其中一个从小到大变化,另一个在某个区间附近突然变得剧烈。没有单位,没有实验装置说明,也没有告诉他们黑点代表什么。
五个人围着桌子看了十几分钟,最先形成的意见却是先别急着猜。简宁把三张透明纸依次叠在灯下,韩思遥拿尺子数每张图的黑点数量,另外两个组员一个叫方禾,一个叫沈策,已经开始把六组数据按第二列的变化速度重新排序。江遥一开始没怎么说话,她知道自己最容易犯的毛病正是看到几个局部特征便迅速长出一个故事,而昨天讲评老师才刚刚提醒过她,刹车不是终点,证据也不是装饰。她先把六组数据分别画成图,画到第四张时才发现,虽然不同数据集的突变位置并不一样,但如果把横轴各自除以某个与系统大小有关的量,那几个转折区域似乎正在向同一段范围靠近。
方禾看到她在改横轴,问她是不是想做无量纲化。江遥没有立刻点头,只说:“有可能,但我现在更想知道为什么袋子里同时放了空间图和这几组曲线。如果只是让我们找临界点,给曲线就够了。”
沈策说:“也可能是故意放噪声,看我们会不会什么都解释。”
“那也应该先问它为什么像噪声。”江遥把第三张透明纸压在第一张上,黑点之间有些区域恰好重合,有些则完全错开。她看了一阵,把纸又分开,“我们一直在数黑点总数,可如果总数差不多,真正变的可能不是有多少,而是谁和谁靠在一起。”
韩思遥已经数了快十分钟,听完停下来:“你是说平均值不重要?”
“不是不重要。”江遥拿笔在几个相邻黑点之间画了短线,“是平均值可能太晚才告诉你事情发生了。系统已经开始变的时候,总量还没来得及变。”
这句话让桌边几个人都重新看了一遍图。沈策先反应过来,他把第一张纸上每个黑点周围最近的八个格子圈出来,粗略统计相邻位置同时为黑的比例。第一张很低,第二张明显上升,第三张更高。方禾随即提出不能只看最近邻,因为团块大小本身会改变统计结果,他们最好定义一个随距离变化的相关量,再比较不同数据集里它衰减得有多快。五个人用了近半个小时,才把原来一句“谁和谁靠在一起”变成一个可以计算的东西。
江遥却在这个时候停了。
她突然意识到,刚才真正让自己兴奋的,并不是算出那个相关量,而是他们在无意中换掉了问题。开始的时候,大家都默认任务大概是根据六条曲线找出某个转变点;现在他们问的却变成了:**在整体量发生显著变化以前,局部关系是不是已经留下了可以被检测的结构?**
这两个问题表面上相差不远,做起来却几乎不是同一件事。
下午汇报时,十个组的方向已经明显分开。有的组试图反推原始实验装置,有的认为这是一类相变问题,直接寻找临界指数;有一组甚至猜到数据可能来自磁性材料,已经开始套已知模型。江遥他们没有猜材料,汇报第一页只写了三个东西:总量、局部相关、团块尺度。方禾负责解释计算方法,沈策展示结果,轮到江遥时,她没有说“我们发现了什么”,而是先把三张透明纸投到屏幕上。
“如果这三张图的黑点总数接近,”她说,“那么只看总数,会把第一张和第二张当成差不多。但是人的眼睛已经能看出第二张里有东西开始聚起来。所以我们想问的是,能不能在系统整体变化之前,从局部关系里看见它正在接近变化。”
坐在后排的老师问:“然后呢?”
江遥顿了一下。她昨天刚被这个问题问过一次,这回没有再停在“条件不足”。她把下一页切出来,上面是几条随距离衰减的曲线。“现有数据里可以看到这种趋势,但我们只有三种空间快照,系统大小也不够多,所以现在最多能说局部相关的变化早于整体量的突变,不能说它一定是普适的先兆。如果要继续,我们希望增加不同尺寸和不同边界条件的数据,再看这种提前量是不是还存在。”
老师又问:“如果不存在呢?”
“那说明我们找错了表示,或者这种表示只在现在这组条件下有用。”
“你舍得?”
江遥笑了一下:“现在比以前舍得一点。”
教室里有人跟着笑。老师没有再问她,而是让下一组继续。江遥坐下以后才发现自己手心出了一点汗。那不是因为答错,也不是因为名次,而是因为她第一次非常清楚地感觉到:一个题目可以在没有标准答案的情况下向前走,而且真正困难的部分甚至不是解答,而是决定什么值得被当成问题。
同一天下午,距离燕大训练中心一千多公里的县城里,原既白正在做一件看起来完全相反的事。
秦老师把高三第一次冬季综合测验卷发下来时,全班安静了不到半分钟,后排便开始有人小声对排名。原既白的数学几乎没有问题,真正丢分的是语文现代文和英语作文,一共扣掉的分数比他数学整张卷子的失分多了十几倍。秦老师把卷子放在他桌上,没有评价总分,只用手指点了点语文答题卡:“你现在最大的问题不是不会,是觉得有些东西不值得花时间。”
原既白看了一遍那道自己只写了四行的阅读题,说:“我觉得意思已经到了。”
“阅卷老师不能读你的脑子。”
“题目问的是理解。”
“考试测的是你能不能把理解写出来。”
秦老师说完就走了,没有继续教育他。原既白盯着那四行字看了一阵,觉得这件事和他高一时数学步骤写得太少有某种令人不太愉快的相似。不同的是,那时候他真的以为底层步骤可以省掉,现在他已经知道不能,却还是会在自己不喜欢的地方本能地省。
晚自习以后,他没有马上回宿舍,而是去了计算机教室。叶老师远程任务的新一轮数据已经发来,这一次甚至没有告诉他们训练集和测试集分别来自哪里,只要求所有人用上一次的模型跑一遍,然后解释为什么性能变化。
原既白最初以为自己已经大概知道答案。
此前他用豆子分类任务做过背景替换、遮挡和手掌干扰,已经证明模型会利用许多人类不认为重要的线索。换一个来源以后性能下降,无非还是分布变化。他先把两批数据的亮度、背景纹理、尺寸和拍摄角度做了统计,接着写了一个简单程序逐项消除差异,再分别测试模型。亮度标准化以后提升了一点,裁掉背景以后又提升了一点,尺寸统一之后变化很小。每一步都符合预期,却没有哪一步真正解释剩下那一大块性能损失。
他开始不舒服。
对原既白来说,最难受的状态不是不会,而是手里已经有一个看起来足够高层的框架,却怎么都压不住底下那些零碎事实。他习惯先找到一个上层结构,再让局部归位;现在“分布变化”四个字当然没错,却像一把过大的伞,什么都能罩进去,也因此几乎什么都没解释。
宋弈坐在旁边写自己的版本,看他连续跑了第五组实验,问:“你是不是又想一次把它解释完?”
原既白没有抬头:“不然呢?”
“先找哪个样本最离谱不行吗?”
“单个样本说明不了什么。”
“那你先看十个。”
原既白停了一会儿,还是打开了错误样本列表。
前十个里面有六个让他觉得模型不该错。到了第二十个,他看见一个奇怪的共同点:新数据里不少样本边缘都有很细的压缩痕迹,肉眼很容易忽略,却不是随机出现。继续往下看,这种痕迹在某一类标签上略多,而旧数据里几乎没有。他没有立刻断定模型利用了它,而是把图像做了频域处理,又生成一批只改变压缩方式、不改变主体内容的对照样本。半小时后,模型输出真的开始系统性漂移。
宋弈凑过来看结果:“所以它学的是压缩?”
“不是只学压缩。”
“那是什么?”
原既白把几组对照结果排在一起,想了一会儿:“它学的是所有能帮它赢的东西。我们只是事后才决定哪些东西叫‘应该学’,哪些东西叫‘捷径’。”
宋弈说:“这不就是你以前说的‘它看见了什么’?”
“以前我以为把不该看的东西去掉就行。”原既白把背景、亮度、压缩、边缘、拍摄设备几个因素写在纸上,却没有再急着画统一框架,“现在可能不是。你去掉一条路,它会找另一条。”
叶老师在晚上十一点以后才回复他们上传的日志,只写了一句话:“你终于开始怀疑测试集,而不是只怀疑模型。”
原既白盯着这句话看了很久。
江遥那边的开放任务在第二天变得更麻烦。
训练中心给每组追加了两套数据,其中一套几乎完全支持他们前一天的判断,另一套却把它打得七零八落。局部相关确实提前变化,但提前的时间并不稳定;某些条件下甚至整体量先出现转折,随后局部团块才迅速长大。简宁第一反应是检查数据有没有抄错,沈策认为边界条件不同可能改变了传播方式,方禾则觉得他们定义的相关量太粗,混在一起的也许是两种完全不同的机制。
江遥最初反而是最想救原模型的人。
她把两组数据重新做了归一化,又尝试把横轴换成前一天找到的那个无量纲参数。第一套依然漂亮,第二套依然难看。她换了第二种表示,还是不行。第三次准备重画时,韩思遥把椅子转过来问:“你现在是在找规律,还是在找一种让昨天没错的画法?”
这句话不重,却让江遥手停了下来。
她没有反驳。
十分钟以后,她把昨天最满意的那张图移到屏幕最边上,重新问了一个更基础的问题:有没有可能他们把“提前预警”想得太简单?局部结构和整体变化也许不是谁先谁后的固定关系,而是由某个隐藏条件决定走哪条路径。如果这样,真正值得找的不是一个统一的提前指标,而是**什么条件决定系统从哪一种变化方式进入另一种变化方式。**
这个问题一出来,方禾立刻把两批数据的边界条件和尺寸重新列成表,沈策开始比较不同组的时间尺度,简宁则发现那套最不符合原模型的数据里,外部驱动变化得明显更快。五个人花了整个上午才确认,他们昨天把一个静态问题看成了动态过程,却没有认真处理“变化得有多快”这一件事。
(本章未完,请点击下一页继续阅读)第一卷少年游第八十二章分岔(第2/2页)
午饭时江遥没怎么说话。
她脑子里一直在转那个错误。不是因为丢脸,而是因为它有一种让她非常熟悉的形状:先从少量现象里长出一个漂亮结构,然后下意识地希望后面的世界继续配合。只不过这一次,她没有等别人把它完全推翻才承认,而是在新数据进来以后自己拆掉了一半。
下午汇报时,她把第一页改了。
原来第一页写着:“局部相关能否预测整体转变?”
现在变成了:“什么决定局部重组与整体变化的先后关系?”
负责点评的老师看完,没有马上评价,只问:“为什么改?”
江遥说:“因为昨天那个问题偷偷假设了答案。它默认局部变化应该先发生,我们只是在找怎么测。”
“今天呢?”
“今天还不知道谁应该先。”
老师点点头,又问:“那你们比昨天多知道了什么?”
江遥没有说“我们发现驱动速度很重要”,而是先把两套互相冲突的数据放出来。“至少知道昨天的问题太窄。快速驱动时,我们原来的指标会失效;慢的时候比较稳定。所以现在我们更怀疑,真正控制结果的不是某一个瞬时状态,而是系统经历这段变化的路径。”
教室里沉默了几秒。
周老师坐在最后一排,第一次抬头看了她一眼。
这种目光江遥并不陌生。过去在县城、在省队、在全国决选里,当她做出某个别人没先想到的步骤时,也有人这样看过她。但这一次又有一点不同,因为她真正做出的并不是某个计算,而是把一个已经足够像样的问题拆掉,换成了另一个更难的问题。
当天训练结束后,排名没有更新。
甚至没人提排名。
江遥回宿舍才发现自己已经两天没主动问过第一次诊断的第十六意味着什么。那张榜仍然贴在一楼,她每天经过,却渐渐不再抬头。实验课上她还是稳定,陌生器材不再让她慌,误差分析也比过去完整,但这些事情现在更像一种可靠的底盘;真正让她晚上回去还想继续翻草稿纸的,是下午那个没有人知道最终会长成什么样的问题。
她给原既白发消息时已经快十一点。
不是成绩,也不是雪。
她拍了自己被划得乱七八糟的一张纸,最上面原来的问题被横线划掉,下面又写了三个新问题。
原既白很快回:“你们题目允许改?”
“没有题目。”
那边安静了一会儿。
“什么意思?”
江遥把纸袋任务解释了一遍,又说他们第一天以为找到一个不错的指标,第二天新数据一来,发现不成立,现在正在找是什么条件决定两种不同路径。
原既白问:“你们知道原始系统是什么吗?”
“不知道。”
“变量的物理意义呢?”
“不全知道。”
“还能做?”
江遥靠在床头,看见这句话笑了。她几乎能想象原既白皱眉的样子,因为对他来说,一个系统连变量定义都不完整,简直像有人故意拆掉楼梯让他上楼。
她回:“能。只是不能先假装知道。”
原既白过了一会儿发来一张图,是他今晚机器学习实验的结果。江遥看不懂所有细节,只看见同一批图片经过不同压缩以后,模型输出概率明显漂移。
“它又看背景了?”她问。
“不完全是背景。”
“那看什么?”
原既白打了很久字,最后只发来一句:“所有我们没想到它会看的东西。”
江遥盯着这句话看了一阵,忽然坐直。
“那你为什么一定要先定义哪些是它不该看的?”
原既白没有马上回答。
江遥继续打字,却在发出去以前停下来。她本来想说,能不能反过来,从模型输出对各种变化的敏感方式里,自己找出它到底在依赖什么。可是她觉得这句话还不够清楚,于是删掉重写:“你现在是一个因素一个因素试,对吧?背景、亮度、压缩、角度。有没有可能不先列因素,让数据自己告诉你哪些变化在它眼里其实是一类?”
这一次,原既白很久没有回复。
江遥以为他去洗漱了,把手机放到枕边,继续看自己的草稿。大约十五分钟以后,屏幕重新亮起来。
原既白发来四个字:“你等一下。”
然后就没了。
第二天早晨六点四十,江遥被闹钟叫醒时,手机里已经多了两张图和一长段消息。
原既白没有真的让数据“自己告诉他”——至少目前做不到。他只是把昨晚所有人工扰动按照模型内部特征变化重新聚了一次类。结果很奇怪:在人眼看来完全不同的两种变化,例如降低分辨率和改变某类边缘压缩,在模型内部造成的偏移方向却非常接近;反而两种看上去很像的背景变化,对模型的影响差别很大。
他说:“你昨天的问题可能有用。我们以前按人的命名分类扰动,现在可以试着按模型自己的反应重新分类。”
江遥坐在床上把两张图放大看了几遍。
她突然觉得有点好笑。自己这边刚刚从“一个指标预测变化”退回到“什么决定不同路径”,原既白那边却正试图把几十种零碎扰动向上归成少数几类稳定结构。他们像是从一条河的两岸同时往中间走,一个不断拆掉自己过早长出来的模型,一个不断把散落的事实压进更高层的表示。
这当然不意味着他们最后会在同一个地方相遇。
至少现在还不会。
上午训练中心安排了一道传统理论题,限时九十分钟。题目结构完整,套路也明确,考的是一个江遥并不算最熟练的技巧。简宁四十多分钟就做完了,沈策也很快找到入口,江遥却在一个变换上来回绕了二十分钟,最终虽然做出来,速度明显落后。讲评时她发现简宁的方法几乎没有多余步骤,熟练得像把一把用了很多年的刀从鞘里抽出来。
她没有因此特别沮丧。
甚至有一点高兴。
因为这证明有些东西并不会因为她昨天在开放任务里表现得好就自动属于她。技巧需要练,计算速度需要练,已经存在的工具也需要尊重。她可以在没人知道路在哪里的时候先看见某种形状,却仍然可能在一条已经铺好的路上被别人跑得更快。
午休时简宁问她:“你昨天那个组题挺厉害,今天怎么卡这么久?”
江遥把饭盒里的胡萝卜挑到一边:“不会就是不会。”
简宁说:“我还以为你们这种人什么都会。”
“哪种人?”
“会自己改题的人。”
江遥笑:“改题又不能代替做题。”
训练营第五天,纸袋任务进入最后一次汇报。江遥他们没有给出一个统一公式,也没有猜原始实验是什么,更没有把所有数据拟合成一条漂亮曲线。他们最终提出的是一个分层描述:先用整体量判断系统大尺度状态,再用局部相关描述空间组织,同时引入外部变化速率与系统内部响应时间的比值,用来区分不同的演化路径。这个模型并不完整,却能解释为什么昨天那套数据会让第一个方案失效,也明确指出下一轮需要什么数据才能继续验证。
汇报结束以后,老师问他们:“你们觉得这三天最重要的结果是什么?”
沈策说是找到了时间尺度。
方禾说是知道不能只看平均量。
韩思遥说是终于不用再数四百个格子。
教室里笑了一阵。
轮到江遥时,她想了一会儿,没有给一个很大的答案。“我觉得是第一天那个问题不该留到最后。”
老师问:“什么意思?”
“如果第二天没有新数据,我们可能会以为自己已经做对了。”
这句话说完,她自己先低头看了一眼桌上的纸。第一天那张最漂亮的相关曲线还夹在资料中间,没有被扔掉。它并不是错误,只是不够大,不能把后来出现的世界装进去。
下午训练结束时,周老师公布了下一周安排。理论课比实验课多出将近一倍,除了标准竞赛训练,还第一次出现“数学方法”“计算模型”和“开放建模”三个栏目。有人抱怨训练营越来越不像传统物理竞赛,周老师只说,最后当然还要考试,题也不会因为你喜欢开放问题就自动变开放。
江遥把课程表折起来塞进书里。
她没有意识到其中“计算模型”四个字让自己多看了两秒。
县城那边,原既白也把一张新的表贴在书桌上。不是比赛安排,而是距离高考还有多少天。秦老师要求所有人把薄弱项写出来,他在数学那一栏只写了“规范”,语文后面写了“表达完整”,英语后面写了“速度”。最下面还有一行空白,问“高三期间不准备放弃的一件事”。
旁边同学有人写跑步,有人写篮球,有人写每周回家。
原既白想了一阵,写下两个字:
模型。
写完以后,他觉得这个答案太大,又在后面补了一句:“每周两个晚上。”
秦老师收表时看了一眼,没有阻止,只说:“你自己算时间。”
原既白点头。
晚自习结束,教室里的人陆续离开。他把今天的语文卷收进书包,又把机器学习实验的打印图夹进最里面。两种纸的尺寸不一样,边缘露出来一截,他整理了两次也没完全对齐,最后索性不管了。
窗外没有雪。
操场上的灯已经关了一半,只剩教学楼门口还有人推着自行车慢慢出去。手机在口袋里震了一下,是江遥发来的照片。照片里没有她,也没有训练中心,只有一张刚刚发下来的课程表,其中“计算模型”四个字被她用笔轻轻圈了一下。
下面一句话:
“这个好像有点意思。”
原既白看了一会儿,没有问她为什么。
他把刚才那张模型内部特征聚类图拍过去,在其中两个意外靠得很近的点上也画了一个圈。
江遥很快回了一个问号。
原既白把自行车推出车棚,一边戴手套一边打字:“我也觉得这个有点意思。”
两个人说的是不同的东西。
又不完全是。