笔趣阁(xbiquge2345.com)更新快,无弹窗!
。真正应该做的不是看到陌生结果就立刻删掉,而是把它们分成两类:一类只是数学上的漏洞,现实几乎不可能发生;另一类虽然现在看起来奇怪,却有可能暴露真正存在的脆弱性。
叶老师说:“自动测试的价值,不只是替你出更多题。它有时候会出你觉得不该出的题。你要做的是判断,那是无聊的漏洞,还是你自己的想象范围太窄。”
原既白把这句话记下来,却没有立刻把它放进报告。他先和宋弈挑出十几个最奇怪的样本,尝试用真实图像处理过程重现:重新压缩、截图、打印再拍、改变摄像头锐化、低光照下增加噪声。大部分极端模式确实无法自然出现,可以暂时归入“测试器漏洞”;但其中两类变化却在真实处理链里找到了近似版本。模型在这些现实版本上的性能也明显下降。
这次原既白没有因为找到一个新结构就急着往上总结。他只在实验记录里写:**自动搜索发现的异常中,至少有一部分对应真实采集过程;剩余部分尚不能确定是否具有现实意义。**
宋弈看完说:“你现在越来越会写‘不知道’了。”
“这是进步。”
“以前你最讨厌这三个字。”
“现在也讨厌。”
宋弈笑起来。
那天回宿舍已经接近熄灯,原既白才看见江遥下午发来的消息。她没有讲完整的蚂蚁模型,只问了一个很简单的问题:“一群人都不知道哪条路最近,最后却可能走出一条比较短的路,那是谁选的?”
原既白洗完脸以后坐到床边,把问题又看了一遍。他第一反应当然是“系统”,紧接着便意识到这和回答“群体”一样,只是换了一个词,并没有解释任何东西。他问她具体规则,江遥把“走过留下痕迹、后来更容易沿着痕迹走、痕迹会慢慢淡掉”这几件事说了。
原既白很快抓到其中的反馈结构:“短路往返得快,所以单位时间强化次数更多。”
“对。”
“那不就是正反馈加遗忘?”
江遥隔了一会儿才回:“这句话对,但是不好玩。”
原既白盯着屏幕:“为什么?”
“因为你一说完,好像已经解释完了。”
他本来想反驳,又把那几条规则重新想了一遍。如果只说“正反馈加遗忘”,当然能概括机制,却会掩盖一些真正麻烦的细节:为什么反馈太强会锁死错误路线,为什么遗忘太快又什么都学不到,为什么环境改变速度会决定最佳记忆长度。一个高层概念如果太早出现,有时确实会让人误以为下面的问题已经被解决。
他回:“那你怎么说?”
江遥发来一句:“快的路回来得早,错的路如果没人再走会慢慢淡掉。”
原既白看着这句话,几乎立刻明白为什么它更好。一个没学过复杂系统的人也能顺着这两件事往下想,而懂的人又会看到里面的反馈、竞争、时间尺度和路径依赖。
他回:“这个比较好。”
江遥很快发来:“顾老师说的,不是我。”
“收回表扬。”
“已经截图。”
两个人又聊了一会儿,话题慢慢从蚂蚁转到原既白的测试程序。江遥听完“测试器为了让模型出错,自己找到一堆奇怪图片”的事情,问了一个让原既白沉默几秒的问题:“那它现在和你的模型有什么区别?”
“什么意思?”
“模型为了分类准确,会找你没想到的线索;测试器为了让模型出错,也会找你没想到的方法。你觉得前一个是在学错东西,后一个是在钻规则漏洞。可对它们自己来说,不都是在完成目标吗?”
原既白看着这几句话,没有马上回答。
这当然不能简单说成两者一样。一个在学习数据中的区分方式,一个在搜索能改变输出的扰动,机制不同,目的也不同。可江遥真正指出的不是技术等价,而是设计者的视角:人总倾向于把符合自己预期的优化叫“学会”,把不符合预期的优化叫“钻空子”,仿佛系统应该自动知道哪一条路才是我们心里真正认可的路。
他最后回复:“可能区别不在它们有没有完成目标,而在我们有没有把真正的目标写进去。”
江遥问:“真正的目标写得进去吗?”
原既白没有立即打字。
如果任务只是豆子分类,可以慢慢补充边界;可一旦问题复杂到招聘、医疗、交通甚至人与人的判断,“真正目标”本身也许就是争论的一部分。谁来决定什么是重要的,谁承担错误的代价,哪些东西允许系统利用,哪些东西即使能提高准确率也不应该利用,这些都不是把损失函数再改几个参数就自然消失的问题。
他写了一大段,又全部删掉。
最后只回:“不知道。”
江遥发来一只猫点头的表情。
这个“点头”让原既白有点不爽。他问:“你很满意?