第一卷少年游 第八十三章变式 (第2/3页)
里,他们不断改变最初那一排黑白格子的状态。有时随机,有时全部白,只放一个黑点,有时周期性重复某个短片段。原先看起来属于同一类的两条规则,终于在一个很特殊的初始条件下分开了:其中一条会让边界彼此湮灭,最后归于平静;另一条却在碰撞以后留下一个新的移动结构,系统永远不会完全安静。
韩思遥看到结果以后叹气:“所以我们昨天白高兴了?”
“也没有。”江遥把两个动画来回切换,“至少知道什么情况下它们不一样了。”
“那到底还算不算同一种?”
江遥想了一会儿:“可能看你问什么。如果你只关心大部分随机状态,它们很像;如果你关心那个特殊结构,就不一样。”
简宁说:“听起来像耍赖。”
“我也觉得。”江遥笑了,“但可能世界本来就不给我们一个唯一分类。”
午饭时,隔壁组的人跑过来问她们怎么想到看边界。江遥一开始想解释得完整一点,后来发现最简单的说法反而最好:“像看一群人排队。如果每个人都穿一样的衣服,你不用记住所有人的位置,先看哪里从红衣服变成蓝衣服。有时候真正移动的是那条分界线。”
对方一听就懂,回去以后很快也做出了类似变换。
下午顾老师才第一次把几个专业词写在黑板上。他说,人有时会给同一件事选择不同的“表示”,有的表示让问题复杂,有的表示会让真正重要的关系露出来;如果把许多微小差异忽略,只保留在更大尺度上稳定存在的东西,就可能发现原本不同的系统会表现出相似结构。黑板上出现了“表示”“尺度”“不变量”几个词,他没有展开定义,只让大家把上午自己做过的事和这些词对应起来。
江遥抄到“不变量”三个字时,忽然想起原既白。
原既白喜欢的也是这种东西,却和她今天的路径几乎相反。他往往先寻找一个足够高的结构,希望用它把下面的细节统起来;她今天却是从十二段乱七八糟的图案出发,先看见某些局部关系反复出现,然后才试着猜,也许这些东西可以被放进同一种语言里。两个人最后都可能走到抽象,但起点和路线完全不同。
她没有立刻给他发消息,因为下午的第二道任务很快让她吃了亏。
顾老师又放出一组动画,只给最后二十步,让他们推测前面的局部规则。江遥刚看几分钟,就注意到其中几类边界碰撞极有规律,于是沿用上午的方法,很快构造出一套规则。它能解释大部分现象,也能生成几乎一模一样的移动结构。她甚至在草稿上写出了一个更简洁的版本,只需要四种有效状态,比原来的黑白格子描述还短。
第一次测试通过。
第二次也通过。
第三次,助教换了一组初始条件。
她的模型崩了。
不是差一点,而是几十步以后完全走向另一种图案。江遥最初以为是某一条碰撞规则遗漏了,补上以后又失败;再补一条,前一组测试反而坏掉。她盯着屏幕看了很久,终于发现上午那套“只看边界”的方法在这里丢掉了一个重要信息:两个看上去完全相同的边界,如果它们过去是由不同过程产生的,下一次碰撞的结果可能不一样。
换句话说,系统不只在乎“现在长什么样”,还偷偷记着“它是怎么走到这里的”。
这个发现让江遥有些懊恼。她上午刚刚因为找到更好的表示而兴奋,下午便亲手证明那个表示并不完整。更糟的是,她一开始还试图不断补规则,把失败塞回原来的框架,而不是尽快承认自己丢掉了信息。
顾老师讲评时把她们这一组的错误模型也投了出来。
“这个模型其实不错。”他说,“简单,能压缩现象,也能做预测。问题是为什么错?”
有人回答:“状态太少。”
“这是结果,不是原因。”
江遥已经知道答案,却没有抢着说。顾老师等了几秒,才在屏幕上把两段当前图案完全相同、未来却不同的过程并排播放。前面的历史不同,到某一时刻它们恰好变成同一个局面,下一步却又分开。
“如果你只看这一帧,”顾老师说,“你会认为它们是同一个状态。但是系统不这么认为。”
他没有继续往专业概念上引,只问:“像什么?”
后排有人说像两个人站在同一个路口,一个刚从东边来,一个刚从西边来,下一步可能往不同方向走。
顾老师说:“差不多。现在一样,不代表过去没留下东西。”
江遥看着屏幕,忽然想起训练营前纸袋任务里那个“路径”的问题,也想起省队实验里扫描方向不同导致曲线不重合。她以前把这些看成不同领域里的不同麻烦,现在第一次隐约觉得,它们可能共享某种更深的结构:有些系统不能只用此刻的一张照片描述,因为过去并没有真正消失。
这个念头让她兴奋,但她没有急着替它取名字。
晚上九点,她才给原既白发了一句:“今天发现一件很讨厌的事。”
原既白正在县城机房里做第二轮模型分析,看见消息时刚把一整套聚类结果删掉。
他这两天沿着江遥那句“不要先按人的分类去分扰动”往下做,把不同图像变化对模型内部表示造成的影响重新比较。结果最初漂亮得过分:几十种人工扰动似乎真的可以压进几个方向,某些在人眼看来毫无关系的变化,在模型内部造成几乎相同的响应。他甚至已经开始想,这些方向会不会就是模型自己的“敏感坐标”。
然后他换了模型。
同一批数据,同样的任务,只把网络结构和训练初始化改掉,那几个原本非常稳定的方向便开始旋转、分裂,有的甚至消失。两个模型都能达到差不多的识别准确率,却像用完全不同的内部语言做同一件事。
原既白第一次看到结果时以为代码错了,重跑了三遍。
没有错。
他坐在电脑前很久,才明白自己刚才犯了一个很符合自己的错误:因为在一个模型里看见了高层结构,便下意识希望它比实际更加普遍。他太喜欢“统一”这件事,以至于统一一旦出现,第一反应不是问它依赖什么,而是继续往上搭。
宋弈在旁边看他把图删掉,问:“不是昨天还挺漂亮?”
“太漂亮了。”
“漂亮也有错?”
“有时候就是因为漂亮,所以应该先怀疑。”
宋弈看了他一眼:“你最近跟江遥聊天是不是被传染了?”
原既白没有理他。
他重新把两个模型的响应放在一起比较,没有再问“哪个方向是模型真正使用的”,而是改成另一个问题:如果内部坐标不同,那么有没有什么关系是换了模型以后仍然存在的?例如某几类扰动虽然在不同模型里落到不同方向,但它们彼此之间的远近关系是否保持?又或者,在最终决策附近,哪些变化最容易让两个模型同时犯错?
问题一改,原来那几张漂亮图立刻不够用了。
他却松了一点。
过去他遇到
(本章未完,请点击下一页继续阅读)
『加入书签,方便阅读』