“这。。。。。。这不还是算吗?”
她小声问,“倒着走就不会迷路了?”
“当然会。所以我们需要一个罗盘。”
林允宁在草稿纸的另一边,写下了一个数学符号:DkiP||Q。
“这个叫‘KL散度’,是信息论里的一个工具,”
他用最简单的语言解释道,“你可以把它理解成一个测量’意外程度”的尺子。它衡量的是,我们用一个假设的模型Q,去描述真实的数据P时,会丢失多少信息。”
他看着程新竹,打了个比方:
“简单来说,我们从成千上万个‘出口往回推,每走一步,就用这个‘罗盘’算一下。如果算出来的信息损失变小了,说明我们走了;如果信息损失变大了,说明我们走错了,那就退回来,换条路再试。”
“这样一步步倒推回去,最终就能找到那条信息损失最小,也就是概率最大,能量最省力的路径。那条路,就是蛋白质从健康到病变,最可能走的那条主干道’!”
这番话,终于点醒了程新竹。
她猛地坐直身体,一把抢过林允宁手里的笔,眼神里重新燃起了光。
“我懂了!”
她的大脑开始飞速运转,立刻用自己熟悉的生物学语言重构了这个逻辑,“你的意思是,我们不是要去从头养大小白鼠,看它最后得了什么病。而是直接解剖一万只已经得了不同病症的小白鼠,通过对比它们的基因和生理指
标,来反推出最开始是哪个基因出了问题?!”
“非常精准的比喻。
林允宁笑了。
“天啊。。。。。。”
程新竹的呼吸急促起来,她看着林允宁,像在看一个怪物,“你这个想法。。。。。。简直是疯了!你把物理学的信息论,用到了蛋白质折叠上?”
“为什么不呢?”
"。。。。。。"
程新竹激动得说不出话,她站起身,在长椅前焦躁地来回踱步,嘴里不停地念叨着,“构象反向传播。。。。。。最大似然路径。。。。。。天啊,如果这个能成。。。。。。”
周围路过的几个学生,都用看神经病一样的眼神看着这两个在长椅前手舞足蹈,嘴里念叨着无人能懂的词汇的亚裔年轻人。
最终,程新竹停下脚步,猛地转过身,双手抓住林允宁的肩膀,用力晃了晃。
“走!现在就去干!”
两人分开后,林允宁直接去了克雷勒图书馆。
他在三楼找了个僻静的角落,把笔记本电脑接上电源。
桌子上,摊开着两本书。
一本是《NumericalRecipesinC》,另一本是DavidMacKay的《InformationTheory,Inference,andLearningAlgorithms》。
他戴上耳机,隔绝了周围的一切声音,开始将脑中那个疯狂的想法,翻译成一行行冰冷、精确的代码。
他没有从头造轮子,而是将之前为Aether开发的贝叶斯推断框架,进行了一次彻底的升级,将目标从“参数估计”,转向了“路径搜索”。
两天后,算法原型完成。
周五晚上,I-House的大厅。
林允宁和程新竹并排坐在那台嗡嗡作响的笔记本电脑前,神情专注。
“就用一千张图先试试,”
程新竹显得有些紧张,双手合十放在胸前,像是在祈祷,“要是这个再失败,我真的不知道该怎么办了。”
“不会的。”