沈向洋谈科研纠错:做好学问要“深揭猛批”

2021-02-22 | 作者:微软亚洲研究院

在微软亚洲研究院为实习生们打造的科研训练“沈老师带你肝论文”中,沈向洋博士曾分享了自己发现已发表的工作中出现错误,之后及时勘误的故事,以此告诉年轻的研究者,在科研中,犯错是正常的,纠错是必须的。科研就是一个不断发现错误与不断纠正错误的探索过程。“It’s honorable to admit your mistake”。对于科研,我们应有“深揭猛批”的态度,这样才能做出了不起的工作。针对科研容错与纠错这个议题,我们与沈向洋博士进行了更多探讨,以下是 Harry 的分享。

Q1:您如何看待在科学研究中出现错误?
沈向洋:在科学研究中,犯错误是经常会出现的事情。因此,容错和纠错也是必不可少的一部分。科研的目的是发现知识。重复实验是验证知识的过程。然而实现“可重复性”的确不容易。不同的领域比如生命科学、量子物理、计算机科学重现实验的难度和代价也可能会有很大差距。在我熟悉的计算机视觉领域,如果有优秀的论文发表出来,很快就会有人努力去尝试重现。如果不能被重现和验证,大家就会抱有一个“健康的怀疑态度”。2014 年我还在 Redmond 必应搜索产品部门工作的时候,深度神经网络的研究已经在兴起。我回北京 MSRA 时和孙剑讨论了这个问题,他说他们团队深入研究了Hinton的AlexNet 文章,但是因为有一些技巧和细节,包括网络初始化方式、数据增广、参数调节、GPU Kernel 的编写等,在实现中并不能精确复现。但过了几个月再碰到孙剑,他说应该可以重现了。一年后 ResNet 就做出来了。

最近这些年,很多计算机和人工智能论文在发表的时候,会把代码和数据开源出来。这样对大家重复实验非常有帮助。

Q2:如果发现自己已发表的工作中存在错误,您会如何处理?
沈向洋:It’s honorable to admit your mistake,承认与改正错误是我们应该做的。我可以与大家分享一个 20 年前的故事。2000 年,我在 IJCV 上发表了一篇全景图 Panoramic Image Mosaics 的文章。2001 年,欧洲的一位教授寄了一封 Email 给我,说在教计算机视觉课讲这个算法时,觉得公式中存在错误。

我开始觉得不可能,因为论文已经发表了一段时间了,我的程序更是跑了好几年了,结果都没问题。我后来花了周末一个下午的时间,仔细读了教授写的邮件,重读了自己的论文,再看程序里如何实现公式的,再次认真重读了论文,终于发现果然有个左乘换右乘的错误。因为它是一个迭代算法,所以程序最后还是收敛了!

虽然程序跑下来最后结果是没问题的,但里面的数学公式确实错了。所以我跟我的合作者 Szeliski 写了一篇勘误(见本文结尾),2002 年发表在 IJCV 这本杂志上。

在计算机科学领域,像我这样刊登勘误是很常见的。论文里面有错误,领域内的共识是鼓励大家指出来,也鼓励作者再去改,甚至有人专门投稿去指出其他文章中的错误,有时可以写好几页纸。

Q3: 在科学研究中,容错与纠错的价值与意义是什么?

沈向洋:科学研究是一个追求真理、追求新知的探索过程,也是一个去伪存真的过程。那么,容错与纠错必然是其中的重要一环。丘成桐教授证明卡拉比猜想的故事是一个好的例证。意大利几何学家卡拉比在 1954 年提出了卡拉比猜想,即在封闭的空间中,有无可能存在没有物质分布的引力场。但是,包括卡拉比自己在内,没有人能证实这个猜想,甚至几乎所有数学家都认为,卡拉比是错的。

丘教授花了相当多的时间思考如何证明卡拉比猜想是错的,而且他也认为自己已经做出了证伪的证明。1973 年,在一个会议上,丘成桐把自己的想法告诉了卡拉比,卡拉比专门组织了讨论会让丘成桐陈述。卡拉比很兴奋,在场者的人认为问题已经解决。

一个多月之后,卡拉比致信丘成桐,说他在重建丘的思想中碰到了困难。丘成桐又开始进行证明,几乎两个星期没有睡觉,但证明总会在最后一分钟崩溃。丘教授说,这时,他感觉卡拉比应该是正确的,于是他开始发明新工具来理解卡拉比猜想。1975 年,丘成桐终于证明了卡拉比猜想。而卡拉比猜想的证明,也标志着微分几何新时代的到来。

在科学研究追求真理的过程中,犯错误不奇怪。其实,通过犯错、纠错来不断努力去接近真理,也正是科研的魅力之一。

Q4:在“沈老师带你肝论文”的科研训练中,您与同学们分享了自己发现错误与改正错误的故事,您希望借此对年轻的学生和科研工作者有什么启示与建议?
沈向洋:在 MSRA 的时候,我和郭百宁老师徐迎庆老师喜欢和同学们讲的一句话叫做“深揭猛批”。这是我非常推崇的一个概念:读别人的论文,要同时带着学习、怀疑和批判的态度去读;对自己的工作则要更加怀疑,更加批判。做科研的时候有这样的精神,才能做出了不起的学问。“这个结论正确吗?我的假设成立吗?工作创新点在哪里?要不要再做个实验?还有哪里不清楚?换个方法重画框图?人家为什么应该来读我的论文?这篇论文投出去是不是浪费审稿人的时间?” 这些是我们应该不断问自己的问题。

世界上本来是没有什么学问的。学的时间长了,问的问题多了,就好像有学问了。

沈向洋博士在 2002 年发表的勘误