2016年。深城。
接下來的三天,小林昭徹底從教室和實驗室裏消失了。
他跟班主任老李請了病假,理由是重感冒發燒。好學生是有特權的,老李二話沒說就批了假。
林建國和張梅白天要上班,家裏就剩他一個人。
臥室的窗簾拉得嚴嚴實實,書桌上堆滿了草稿紙。那本厚重的黃皮書《統計學習基礎》攤開在正中間,旁邊放著兩罐已經空了的可樂。
這三天,他沒有上過一次網,沒有跟王浩聊過一句虛擬偶像的事,甚至連蘇小晚發來的問候簡訊,他也隻是簡單回了句“吃藥了,在睡”。
他把全部的腦容量,都砸在了第五章的公式推導上。
大林昭沒有直接給他答案。
大林昭隻做一件事——當他卡在某個積分轉換或者矩陣分解上超過兩個小時,大林昭就會發過來一個極其刁鑽的提示。
不告訴他怎麽算,隻告訴他去查哪個前置定理。
但“知道查哪個定理”和“真的推通”之間,隔著一道又一道的牆。
第一天晚上,他在偏差-方差分解的積分上卡了三個小時,頭皮都快撓禿了。
大林昭丟過來四個字:“條件期望。”
他翻了兩本教材才把那個條件期望展開式找到。找到之後又磨了四十分鍾,反複驗證中間項的消去條件,才終於通了。
第二天下午,Bootstrap方法的漸近性證明,他在中心極限定理的應用上反複碰壁。
這次他沒等大林昭提示。
他自己翻到了切比雪夫不等式,試圖從那個方向繞過去。
推了一個半小時,死衚衕。
他把草稿紙揉成一團扔進垃圾桶,盯著天花板發了五分鍾呆。
然後大林昭的訊息彈出來,隻有六個字:“大數定律先走一遍。”
他默寫了大數定律的四種形式。第一遍,機械抄寫。第二遍,開始和手頭的推導對照。第三遍——思路打通了。
他回頭看了看垃圾桶裏那團切比雪夫不等式的草稿紙,咬了咬牙。
方向錯了,但至少他先自己試過了。
到了第三天晚上十一點,小林昭寫下了最後一個推導結果。
他把筆一扔,整個人癱倒在椅子上。
桌麵上,兩個厚厚的筆記本寫得密密麻麻。從最基礎的交叉驗證誤差估計,到Bootstrap方法的漸近性證明,他一行一行地全摳了一遍。
閉上眼睛,腦子裏全是那些跳動的希臘字母。
他拿過手機,給大林昭發了條訊息。
“搞定了。我感覺我現在能徒手拆高達。”
大林昭秒回:“別吹牛。明天去見陳知行,他肯定要當場考你。準備好挨罵。”
小林昭冷笑一聲,打字:“這次他考不倒我的。這三天我把這些公式的祖宗十八代都查清楚了。”
——
第二天上午九點。
深大理工樓四層。
小林昭背著書包,推開了陳知行辦公室的門。
陳知行正站在白板前,手裏拿著馬克筆,在畫一個複雜的拓撲結構圖。聽到開門聲,他轉過頭,看了一眼小林昭,又看了看牆上的掛鍾。
陳知行把馬克筆放下,說道。
“我以為你要看一個月。”
小林昭走到辦公桌前,把書包拉鏈拉開,掏出那兩個寫滿公式的筆記本,重重地拍在桌麵上。
“第五章,所有的公式推導。全在這裏。”
他看著陳知行。
“我推完了。”
陳知行沒有表現出任何驚訝。
他走到桌前,拿起最上麵那個筆記本,隨便翻開一頁。
這一頁寫的是K折交叉驗證的方差估計。小林昭的字寫得很急,有些地方還塗改過。但邏輯鏈條非常清晰,每一個等號後麵都標注了引用的定理。
陳知行看了大概十秒鍾。
他把筆記本合上,扔回桌上。
“紙上寫的東西,誰知道是不是你抄來的。”
陳知行指了指背後的白板。
“上去。我考你。”
小林昭二話沒說,直接走到白板前,拿起黑色的馬克筆。
“留一交叉驗證(LOOCV)在處理線性回歸模型時,不需要重新擬合N次模型。有一個捷徑公式。”
陳知行靠在辦公桌邊緣,雙手抱胸。
“把那個捷徑公式寫出來。然後,證明它。”
小林昭愣了一下。
這個公式在書的第153頁。
書上確實給出了公式,但證明過程隻寫了一句話——
“通過簡單的代數運算可得”。
這三天裏,小林昭在這個“簡單的代數運算”上卡了整整四個小時。他翻了三本線性代數的教材,才把那個矩陣的逆給求出來。
他轉過身,麵向白板。
直接下筆。
第一行,殘差的定義。
第二行,帽子矩陣。
馬克筆在白板上摩擦,發出急促的“唰唰”聲。小林昭的動作極快,中間沒有任何停頓——三天裏反複推導的那些步驟,已經刻進了手指的節奏裏。
他把第i個樣本剔除後的模型引數展開,利用Sherman-Morrison公式處理矩陣的逆。
原本極其複雜的求逆過程,被他用一個巧妙的秩1更新直接化簡。
陳知行站在後麵,看著白板上不斷延伸的公式,鏡片後麵的目光慢慢收緊。
他出這道題,就是為了刁難小林昭。
書上省略的證明,往往是最考驗基本功的地方。他以為小林昭會卡在矩陣求逆那一步,或者幹脆說書上沒寫。
但白板上的推導還在往下走。
最標準的線性代數解法。沒有跳步,每一步都嚴絲合縫。
五分鍾後。
小林昭在白板最下方寫下最後一行等式。
LOOCV誤差等於原始殘差除以(1減去帽子矩陣的對角元素)的平方和。
他把馬克筆蓋上,轉過身,看著陳知行。
“陳教授。證明完畢。”
辦公室裏很安靜。
陳知行沒有說話。
他走到白板前,從頭到尾把小林昭的證明看了一遍。
沒有錯。
一個符號都沒有錯。
陳知行轉過頭,看著小林昭。臉上的表情依然很平淡。
“Sherman-Morrison公式。書上沒提這個。你自己查的?”
“是。”小林昭說。“書上的推導做不下去,我查了線性代數。”
陳知行點點頭。
他沒有多說一個字。
走回辦公桌,拉開抽屜,從裏麵拿出一疊列印好的A4紙,直接遞給小林昭。
“這是什麽?”小林昭接過紙。
“你那篇JL引理證明的論文初稿。”
陳知行說。
“我把你那些廢話和吹牛的形容詞全刪了。框架我給你重新理了一遍。”
小林昭低頭看向手裏的紙。
原本他寫的那版初稿,已經被陳知行改得麵目全非。紅筆的批註密密麻麻,幾乎重寫了每一個段落。
但核心的數學推導部分,一個字都沒動。
“地基打完了。現在可以開始蓋樓了。”
陳知行坐回轉椅上,開啟電腦。
“這週末之前,把修改後的第二版發給我。下週一,我們投《Journal of the ACM》。”
小林昭猛地抬起頭。
《Journal of the ACM》(JACM)。
電腦科學領域最頂級的理論期刊。
能在上麵發一篇文章,國內很多高校的教授都能直接評上博導。
“陳教授,這直接投JACM?會不會太激進了?”
小林昭嚥了口唾沫。
“激進?”
陳知行看著他。
“你的證明把誤差上界壓到了理論極限,把推導過程縮短了百分之八十。這種東西不投JACM,投哪裏?投那些給錢就能發的水刊嗎?”
小林昭不說話了。
他把那疊紙緊緊攥在手裏。
“回去改吧。語言要平實,邏輯要嚴密。”
陳知行揮了揮手開始趕人。
“遇到不懂的英文表述,去查文獻,別自己瞎造詞。”
小林昭鞠了個躬,轉身走出辦公室。
門關上了。
陳知行靠在椅背上,拿起桌上那個筆記本,翻到“模型的盲區”那一頁。
盯著看了兩秒,合上,扔進抽屜裏。
他重新開啟郵箱,開始給JACM的主編寫預投稿詢問信。
收件人一欄打完,他停了一下。
遊標在“作者簡介”那一行閃爍。
他敲下:第一作者,林昭,十二歲,深城市第三中學初二學生。
看了兩秒,沒改,直接點了傳送。