高一第一个学期过到十一月,原既白第一次明显感觉到,学校教科书的速度开始追不上自己。
这并不是因为县一中的课太简单。秦老师讲数学很快,物理老师罗衡也喜欢把课本之外的问题丢进课堂,班里还有几个真正不好对付的人:坐第一排的许澄做题未必最快,却能把实验误差追到老师都嫌烦;后排的韩彻记忆力惊人,一本生物书翻过两遍,连图注都能大致复原;另一个叫宋弈的男生则从初中起就自己写程序,第一次信息技术课便把老师布置的排序题改了三种写法。原既白并没有一进高中就轻松碾过所有人,相反,他最初两个月经常被这些人从不同方向撞一下,才第一次发现,“聪明”原来可以长成如此不同的形状。
真正发生变化,是秦老师借给他的那几本大学教材开始被一页页翻过去以后。最初只是函数和极限,接着是导数、积分,再往后碰到一点线性代数。原既白并没有系统学完所有内容,有些证明甚至看得很慢,可只要某个高层结构真正建立起来,课本下面一大片东西便会突然透明。过去他要分别记二次函数、切线、变化率、最值,现在第一次知道它们并不是几座互不相干的小房子,而像同一座山不同高度的路。于是回到高中题目时,他经常不是“想出了更巧的方法”,而是根本不再把题目看成原来的样子。
秦老师很快发现了这一点。
一次月考后的习题课,他在黑板上留了一道压轴题,让全班自由讨论。题目本身并不超纲,只是把函数、参数和几何关系绕在一起,班里大多数人都在分情况。许澄先做出一半,宋弈在草稿上画了几条曲线,原既白却一直没有写。秦老师经过他旁边时看见纸是空的,以为他卡住,过了不到两分钟,原既白忽然抬头问:“如果把参数当成另一条轴,这题是不是就不用分三种了?”
教室里有几个人转过来。
原既白走上讲台,没有沿原题的顺序推,而是重新画了一个坐标系,把原来不断变化的参数变成另一个维度。题目里那些看似需要分别处理的条件,到了新图里竟然成了几个区域。宋弈看了不到一分钟,先骂了一句“还能这样”,随即拿笔开始跟;许澄则盯着图问其中一个边界是不是闭区间。秦老师没有马上评价,只在原既白讲完以后问:“这个方法你从哪里来的?”
“最近看多元函数的时候想到的。”
“这道题需要多元函数吗?”
“不需要。”
秦老师笑了:“那就对了。你不是用了大学知识,你只是换了一个看法。”
这句话让原既白比得满分更高兴。因为他自己也慢慢意识到,所谓“学得快”并不是把更难的知识提前吞进去。真正让他兴奋的是,一个更高层的视角会重排下面的世界。一旦知道山脊在哪里,原来那些只能一条一条走的小路,忽然能看出彼此为什么相连。
但许澄当天下午就给了他一个教训。
物理实验课测弹簧劲度系数,原既白很快写出了数据处理方法,还顺手用拟合思路解释为什么多组数据比两点法稳定。许澄却一直蹲在实验桌旁,反复看尺子和弹簧,最后发现挂钩本身存在轻微偏转,不同方向读数会产生系统误差。原既白最开始觉得那个偏差太小,可以忽略,许澄却把几组数据重新测了一遍,硬是让结果差出一个肉眼可见的变化。
“你看的是公式,”许澄说,“我看的是这根弹簧。”
语气没有挑衅,只是在陈述。
原既白拿起那根弹簧看了一会儿,承认自己确实没注意。那天以后,他开始很认真地喜欢这个同学。许澄对“大理论”兴趣一般,却有一种近乎固执的现实感:只要东西真的在桌上,他就一定要确认它实际怎么动,而不是它按教材应该怎么动。原既白第一次清楚地碰到一种自己并不擅长的强项——不是向上,也不是向下,而是死死钉在“这里究竟发生了什么”。
省城那边,江遥的生活则比原既白更像突然被点燃。
“问题社”第一次真正让她上瘾,是林砚带来一盒很普通的传感器。温度、光照、声音、距离,每个模块都只有巴掌大,接上开发板以后可以不断把数据写进电脑。林砚没有教大家“这个能做什么”,只把东西摆在桌上,说学校愿意给他们一个月,最后做出任何能够解释一个真实现象的东西都算完成。
沈南乔想继续做暑假的城市热环境,另一个男生贺铭却觉得太大,学校里根本拿不到足够城市数据。他是机器人社转过来的,手很巧,第一天就把传感器接错两次,第三次却已经自己焊出一块小板。他主张先做一个小问题,比如教室里不同位置的温度为什么差这么多。江遥最开始觉得这太普通,直到他们真的把六个传感器放到教室不同位置,连续记录三天以后,数据出现了一个谁也没预料到的现象:下午最后一节课,靠门的位置反而比靠窗的一侧更热。
老师说可能因为走廊热空气进入。
贺铭说可能是太阳角度。
沈南乔认为与人数流动有关。
江遥没有急着选解释。她盯着那条曲线看了很久,忽然问:“如果不是位置的问题,是时间的问题呢?”
几个人都没听懂。
她把课表拿过来,对着数据一节一节看,发现下午最后一节往往是自习,前一节课结束后学生会集中出去接水、上厕所,再回来;门边温度上升的时间恰好比人流高峰晚几分钟。她又把二氧化碳浓度的数据叠上去,发现两条线之间似乎有某种滞后关系。这个猜想并不一定对,可它一下把“哪边更热”变成了“人群行为如何在几分钟后改变局部环境”。
林砚站在旁边看她把课表、温度和二氧化碳三张完全不同的东西摊到一起,忽然问:“你怎么想到把课表放进来的?”
江遥说:“因为温度自己不会知道第几节课。”
林砚笑了。
贺铭却马上泼冷水:“相关不代表因果。”
“所以测啊。”
“怎么测?”
江遥停了一下。
过去她最容易在这里继续往上猜,现在却已经比初中多了一层习惯。她没有直接把新结构当成答案,而是先问什么情况会证明自己错。几个人最后设计了一组很笨却有效的验证:选择两天相同天气,一天保持正常课间,一天请班里同学尽量减少进出,再比较曲线。结果并没有完全支持江遥。门边温度仍然偏高,只是幅度下降了一部分。
如果是以前,她可能会有点不甘心。
这一次却更兴奋。
“说明不止一个原因。”
她把原来的图划掉一半,又开始往上补。
沈南乔坐在旁边,看她失败以后反而比成功时更精神,忍不住说:“你这个人是不是特别喜欢世界不按你想的来?”
江遥头也没抬:“按我想的来还有什么意思?”
这种状态几乎延伸到所有科目。数学老师讲一个递推关系,她课后会问如果把初值换掉,最终形态是不是仍然相似;物理课讲波,她会跑去音乐教室敲两根不同长度的金属管,听频率差别;生物老师讲神经元,她第一反应不是背结构,而是问如果一个神经元本身只做简单事情,那么“复杂想法”是不是很多简单单元一起才长出来的。她并不总问得漂亮,有时甚至问到最后发现自己把两件根本不同的事硬连在了一起,可老师开始逐渐认识这个坐在靠窗位置的女孩:她不是问题多,而是很难把一个已经讲完的知识点安静地留在原地。
真正让江遥第一次感到强烈竞争的,是实验班一个叫顾遥的女生。
顾遥平时话不多,数学考试很少第一,却在一次校内开放题上压了江遥整整一头。那道题没有标准解法,只给出一串非常不完整的图案变化,让学生提出可能的生成规则,并说明如何区分不同规则。江遥很快提出三种结构,其中一种非常漂亮;顾遥却没有急着猜,而是先指出,仅凭现有样本,可能存在无穷多个规则与之吻合,所以真正的问题不应该是“找规律”,而应该是“下一条信息问什么最值钱”。
她给出的答案不是一个规则。
而是一个实验。
只要再观察第七个图案,几个主要假设就会被一次性分开。
江遥看到答卷时,足足安静了几分钟。
她第一次遇到一个同龄人,不是比自己猜得更快,而是直接把“猜答案”这件事往上提了一层:既然信息不足,为什么不先选择最有信息量的问题?
那天下午,她主动去找顾遥。
“你以前做过这种题?”
“没有。”
“那你为什么不猜?”
顾遥想了想,说:“因为我小时候被我爸骗过很多次。”
江遥没听懂。
顾遥解释,父亲是医生,从小喜欢拿一些不完整的症状问她是什么病。她每次猜一个,父亲就问:“还有没有别的可能?”久了以后,她养成习惯,先不问答案是什么,而是问“我还缺什么信息”。
江遥听完,第一次感到一种很纯粹的嫉妒。
不是讨厌顾遥,而是很想把这种能力拿过来。
当天晚上,她把题目拍给原既白,只说:“我今天被一个人打得有点惨。”
原既白看完顾遥的思路以后,很久才回:“这个人很厉害。”
“比我呢?”
江遥发完便后悔,觉得这个问题幼稚,可没有撤回。
原既白隔了几分钟才说:“这道题上,比你强。”
江遥盯着屏幕,心里居然舒服了。
“我也觉得。”
两个人又聊了很久。原既白对顾遥的做法尤其感兴趣,因为那种“先选择最有信息量的问题”让他想到围棋:高手有时并不是算得更深,而是知道下一手应该逼对方回答什么。他又想到自己最近看机器学习时遇到的一个词——训练数据。如果样本不是被动得到,而是可以主动选择,那么“该问哪一个问题”本身也许就是学习的一部分。
江遥看到“学习的一部分”几个字,突然想起一件小时候的事。
她给父亲打了电话。
父亲正在家里看电视,接起来以后问是不是没钱了。江遥说不是,突然问:“我小时候你是不是给我出过三个开关三个灯的题?”
电话那边安静两秒,然后笑起来。
“你还记得?”
她其实只记得一个模糊轮廓。那时还没上小学,家里刚换过客厅灯,父亲随口说了一个题:隔壁房间有三只灯,这边有三个开关,进去以后不能再回来反复试,怎么判断哪个开关对应哪盏灯。父亲原本只是从一本面试题集里看来的,想逗女儿。江遥坐在地板上玩积木,听完以后只问了一句:“灯会不会热?”
父亲当时愣住了。
她随后说,先开一只灯很久再关掉,再开第二只,然后进去。亮着的是第二个,灭着但热的是第一个,剩下冷的就是第三个。整个过程快到父亲后来一直怀疑,她是不是以前听别人讲过。可那时她连小学都没上,家里也没人教过这种题。
“我当时什么反应?”江遥问。
父亲在电话里笑:“我把你妈叫过来,让你再讲一遍。你妈说这有什么,我女儿当然聪明。我晚上还偷偷上网查了一次,看是不是还有别的答案。”
江遥趴在宿舍床上笑。
父亲又问她怎么突然想这个。她把顾遥的事情讲了一点,说今天才发现自己小时候那个答案其实也是同一类东西:题面写的是“开关和灯”,自己却偷偷加了一个“温度”。父亲没听懂她后面那些分类,只说:“你小时候就这样,别人问你一件事,你老从旁边钻出去。”
挂电话以后,江遥没有立刻把这段旧事告诉原既白。
她第一次从成年一点的自己回头看那个还没上小学的小女孩,忽然明白有些东西不是高中才出现,只是小时候没有名字。父亲当年大吃一惊,她自己却根本不知道那意味着什么。对六岁孩子来说,灯亮过以后会热,本来就是这个世界的一部分;真正奇怪的是成年人为什么会把它忘在题目外面。
第二天,她才把这件事发给原既白。
原既白看完以后回:“很像你。”
“哪里像?”
“题目给三个变量,你自己找第四个。”
江遥笑了一下,问:“那你小时候呢?你爸什么时候发现你不正常?”
原既白回了一个问号。
她坚持追问。
原既白想了很久,才记起一件自己几乎忘掉的事。大概也是六七岁,父亲有一次修村里祠堂的旧窗,拆下来几块木格。原既白蹲在旁边数窗格,父亲随口问他这么多格子里到底有多少个长方形,本来只是想让他慢慢数。他数到一半忽然不数了,问父亲:“是不是只要选两条竖线和两条横线,就一定有一个?”
父亲当时没听懂。
原既白拿粉笔在地上重新画,把大小不同的长方形都看成“选四条边”的结果。父亲后来并不会算组合数,只知道儿子原本要数几十个东西,忽然换了一种方法以后,好像不需要一个个找了。他那天晚上还拿更大的格子重新问了一次,原既白仍然按同样的办法拆,反而比第一次更快。
江遥看完,只回了一句:
“也很像你。”
原既白坐在县一中宿舍里,盯着这五个字笑了很久。
他以前从未把那件旧窗格的事情当作什么天赋证据,甚至不知道父亲后来和母亲讲过多少次。在他的记忆里,那只是一天下午,父亲修窗,他蹲在地上画线。可现在回头看,自己很多年后的学习方式竟然早已有一个很朴素的影子:先不数每一个结果,而是去找产生所有结果的那层规则。
两个人没有把这件事继续谈成“谁更聪明”。
因为高中已经开始不断告诉他们,聪明并不是一把统一的尺。
许澄能看见实验里被理论忽略的那根弹簧,顾遥会先问最有价值的信息是什么,贺铭可以在别人还画线路图时直接把东西焊出来,宋弈写程序的速度让原既白第一次真正感到自己在计算机上只是初学者;季闻到了市里以后更像被放进适合自己的水里,三个月便在信息学训练中冲进年级最前一组,还发来一段自己写的搜索程序,问原既白能不能找到更快的办法。
世界没有因为两个少年变得突出而缩小。
恰恰相反,它越来越大。
十二月的一个晚上,县一中停电半小时。教室里一片喧闹,大家索性趴在窗口看远处城市的灯。宋弈忽然问原既白:“你觉得以后机器下围棋会不会比人强得多,强到人完全看不懂?”
原既白说:“已经有一部分这样了。”
“AlphaGo?”
“嗯。”
2016年以后,AlphaGo这个名字早就不是什么陌生新闻;围棋圈里谈得更多。2017年AlphaGo Zero不再依赖人类棋谱、主要靠自我对弈学习的消息传出来时,顾老师甚至专门拿过几盘棋给他们看。原既白当时最震动的并不是“机器赢人”,而是那些棋里有一些走法,人类高手事后才开始理解。
以前他喜欢看高手棋谱,因为高处能照亮下面。
可如果机器自己造出了一个人类原先不存在的高处呢?
停电的黑暗里,宋弈还在谈未来电脑会不会把所有定式都算完。原既白却忽然想起江遥小时候那三个灯泡,又想起顾遥选择“下一条最有价值的信息”,再想到AlphaGo Zero从最初规则开始不断自我对弈。
他第一次如此清楚地意识到,两种学习也许可以同时存在。
一种是看见高处,再理解下面。
另一种是从下面,一步一步把高处造出来。
窗外远处的灯亮成一片。十几分钟后,学校恢复供电,日光灯突然全部亮起,教室里有人被刺得眯起眼睛,老师站到讲台上让大家继续做题。原既白低下头,在草稿纸边缘写了四个字:
**高处何来。**
没有答案。
他把纸翻过去,继续上课。