正文
1)设置相同的实验;
2)遵循相同的方法;
3)获得类似的实验结果。
如果我们可以完全基于论文中提供的信息从上面的步骤 (
1)一直完成到步骤(3),我们就将这种性质成为「独立可复现性」。在本例中,因为我们可以独立得出相同的实验结果(完全独立于原始论文的工作),所以我们的实验结果是可复现的。
但是,正如上面漫画中的人物告诉我们的那样,直接遵循论文中的内容并不总是足以复现实验结果。如果我们不能仅仅利用论文中的信息(或者根据论文引用的之前的工作)从步骤(1)一直完成到步骤(3),我们将认为论文不是「独立可复现的」。
有些人可能会感到疑惑:为什么要将「可复现性」和「独立可复现性」区分开来?
几乎所有人工智能和机器学习领域的研究都是以计算机代码为基础的。我们并不需要昂贵的劳动密集型的化学合成,不需要等待细菌在培养皿中长成,也不需要麻烦的人体实验。我们仅仅只需要从作者那里获取代码,在相同的数据上运行这些代码, 并得到相同的实验结果!
如果你以前从没有阅读过研究人员的代码,那你会少损失很多脑细胞。
我们并不喜欢找论文作者要代码并使用它们,这不仅仅是因为害怕使用没有描述文档的研究级代码。
Chris Drummond 将使用作者的代码的方法描述为「可复用性」,并提出了一个非常鲜明的论点:即我们非常需要论文能够被复现,但这对于好的科学工作来说,这仍然是不够的。一篇论文应该是具体工作的科学升华,它代表了我们所学到的和现在所理解的东西,从而使新的实验结果得以出现。如果我们不能在没有作者代码的情况下复现论文的结果,这可能表明论文本身并没有成功地囊括重要的科学贡献。在这之后,我们才会考虑代码中可能存在的错误,或者代码和论文之间可能存在的不一致的地方。
去年 ICML 上发表的论文《Unreproducible Research is Reproducible》(http://proceedings.mlr.press/v97/bouthillier19a/bouthillier19a.pdf)指出,即使我们可以复现论文的实验结果,但如果我们稍微改变一下实验设置也可能会得到非常不同结果。
出于这些原因,我们不想考虑作者的代码,因为这可能带来偏见。我们希望专注于可复现性的问题,而不是陷入复现论文的泥潭。
二、影响机器学习论文可复现性的重要因素
有些特性与可复现性无关,但我发现这些特性却最有趣。
我回顾了到 2017 年为止,我试图实现的每一篇论文,并且基于两个准则对这些论文进行了筛选:(1)这种尝试实现论文的工作是否会因为看过发布的源代码而带有偏见;(2)与作者是否有私人关系。
对于每篇论文,我尽可能多地记录信息,以创建一套可以量化的特征。有一些特征是完全客观的(论文中有多少个作者),而另一些特征则非常主观(论文看起来是否令人惊讶?)这项分析的目的是获得尽可能多的信息,这些信息可能会影响论文的可复现性。
为了做到这一点,我需要尝试复现 255 篇论文,最终我成功复现了其中的 162 篇。每篇论文都被提炼成了一个由26 个特征组成的集合,然后我对其进行统计检验从而确定哪些特征是重要的。在上面的表格中,我列出了我认为最有趣的、最重要的实验结果,以及我最初的反应。
有些结果不足为奇。例如,作者的数量对于论文的可复现性不应该特别重要,它们之间没有显著的关系。
我们可以通过调整超参数来改变算法的表现,但是算法本身并不会学习超参数。必须由人类设置超参数的值(或者想出一个明智的办法来选择该值)。
我们发现,一篇论文是否详细描述了用到的超参数是非常重要的(我们更可以凭直觉想到原因)。如果你不向读者说明超参数的设置,读者必须自己猜测。这需要付出大量的工作、时间,并且很容易出错!因此,我们的一些研究成果已经证实了研究社区为了使论文更具有可复现性而在追求的理念。