虎口遐想
周日加班和学生一起写论文时偶然发现,一个已有的算法在我们的实验中运行,性能有点儿过于优异了。
断断续续调试了一整天,终于在凌晨发现,在我一年前写的几行程序中有一个致命的问题,致使需要这几行程序的算法的性能远远超过其他类似算法。
我想,为什么学生从来没有怀疑过这个算法的实验结果呢?
英文中有一句话:「If it sounds too good to be true, it probably is. 」
我一直觉得,无论是搞理论研究还是做工程项目,都要有一点儿科学精神。科学精神中最重要的,就是好奇和怀疑。对未知的事物永远保持好奇,对「too good to be true」的结果持怀疑态度,才能经常纠正错误,推陈出新。
这「怀疑」的态度,我最早是跟当年 UIUC 上学时一个天才教授学的。这位教授是印度人,他的学生每次给他讲新的「idea」,他的回答永远是「This doesn’t work, right? The reasons are the following…」
哈哈,幸亏我不是他的学生,否则肯定得急:这也不行那也不行,您倒是给我想一个「work」的啊!
结果这位教授的学生,后来遍布美国名校。学生的学生,竟然可以回到 UIUC 任教职。
至于「好奇」,我想起了刘雪峰。我近十年前在香港访问了一年,刘雪峰是因为经常跟我一起去学校食堂打饭而熟识的一个朋友。刘雪峰的才情,就表现在他什么东西都特别喜欢深入地琢磨一会儿「为什么」。
比如我当年倡导,写论文时无论想到什么,要先简略迅速地写出来。然后再多给朋友和同学传看,慢慢在讨论中细化论文中算法设计的方案,经过多轮迭代完成。
本来挺直觉的一个小建议,刘雪峰则分析得入木三分,觉得这是「步步为营」和「精益求精」的区别。我倡导的方式是「精益求精」,而传统的先看论文、再做实验,最后才开始写论文的方式,则是「步步为营」。由于研究不像工程项目,风险高而且跳跃性大,更适合「精益求精」。
刘雪峰「好奇」了好几年,到北航任教以后,把他平常产生的各种千奇百怪地想法写成了一本书,把计算机科学和数学思维应用到实际生活中。书名本来叫「算法人生」,后来怕没人看,就换汤不换药地改了一个更为通俗的名字,叫「心中有数」。
现在轮到我好奇了——不知道这本书里有没有那么一章,把数学知识和科学精神发扬光大地用于谈恋爱,追心仪的女生成功概率百分之百,情场永远立于不败之地。
要我是刘雪峰,书名多半儿叫「九阴真经」。
2022年5月,多伦多