作者|爱德华·拉夫
编译|熊先生
编辑|群集的结尾
对于每一名研究者来说,复现论文是理解一篇论文的必经之路,然而也是最令人头疼的环节。什么样的论文可以被复现?什么样的论文无法被复现?这实际上也是一个科学问题。在NeurIPS 2019中,元科学研究者爱德华·拉夫(Edward Raff)对此进行了深入分析,揭开了论文可复制性的神秘面纱。
300多年来,同行评议一直是科学研究中必不可少的环节。然而,即使在引入同行评议机制之前,再现性也是科学方法的重要组成部分。
公元800年,贾比尔·伊本展示了第一批可重复的实验。在过去的几十年里,许多领域都有一些不可重复的实验结果。美国心理学会一直试图解决作者无法提供实验数据的问题(https://psycnet . APA . org/doi/10.1037/0003-066 x . 61 . 7 . 726)。2011年的一项研究发现,只有6%的医学研究可以完全重现。2016年,一项针对各个学科研究人员的调查发现,大多数研究人员未能重现他们之前的论文。
现在,在人工智能和机器学习领域,我们也听到了一些关于“可复制性危机”的警告。
我们不禁要问:这是真的吗?这似乎不可思议,因为机器学习技术已经渗透到所有智能设备中,并影响了我们的日常生活。从通过电子邮件告诉我们如何礼貌的实用技巧,到埃隆·马斯克承诺明年问世的自动驾驶汽车,所有这些似乎都在向我们证明,机器学习确实是可复制的。
最新机器学习研究的可重复性如何?可以开始定量分析影响其重现性的因素了吗?这个问题促使我写了论文《量化可独立重现的机器学习研究的阶梯塔》(https://arxiv . org/ABS/1909.06674),该论文已经发表在NeurIPS 2019上。
基于“提出问题”的原则,在过去的八年里,我从零开始尝试实现各种机器学习算法。终于完成了机器学习库《JSAT》(https://github . com/EdwardRaff/JSAT)。我对可再生机器学习的研究也在门德利(https://www.mendeley.com/)和Github上的个人笔记和记录中托管。
有了这些数据,我不禁开始定量分析,验证再现性!不久后,我意识到我将来要从事“元科学”研究,目的是研究科学本身。
一、什么是可复现机器学习?
照片中戴眼镜的人并没有直接跟随论文中的描述:https://abstrusegoose.com/588.
在我们深入讨论之前,有必要定义一下什么叫做“再现性”。
理想情况下,完全再现性意味着阅读科学论文应该直接为您提供完成以下三个步骤所需的所有信息:
1)设置相同的实验;
2)遵循同样的方法;
3)得到相似的实验结果。
如果能完全基于论文提供的信息完成上述步骤(1)到步骤(3),我们就把这个性质称为“独立再现性”。在这个例子中,因为我们可以独立地得到相同的实验结果(完全独立于原始论文的工作),所以我们的实验结果是可重复的。
然而,正如上面漫画中的人物告诉我们的那样,直接遵循论文的内容并不总是足以重现实验结果。如果从步骤(1)到步骤(3)不能仅仅使用论文中的信息(或根据论文中引用的前人工作),就会认为论文不是“独立可复制的”。
可能有人会疑惑:为什么要区分“可复制性”和“独立可复制性”?
人工智能和机器学习领域几乎所有的研究都是基于计算机代码的。我们不需要昂贵的劳动密集型化学合成,不需要等待细菌在培养皿中生长,也不需要麻烦的人体实验。我们只需要从作者那里得到代码,在相同的数据上运行代码,得到相同的实验结果!
如果你以前从来没有看过研究人员的代码,你会失去很多脑细胞。
我们不喜欢向作者要代码并使用它们,不仅仅是因为我们害怕使用不描述文档的研究级代码。
克里斯·德拉蒙德(Chris Drummond)将使用作者代码的方法描述为“可重用性”,并提出了一个非常明确的论点:我们确实需要论文被复制,但这对好的科学工作来说仍然不够。一篇论文应该是具体工作的科学升华,代表我们所学的和现在所理解的,这样才能出现新的实验结果。如果在没有作者代码的情况下,我们无法复制论文的结果,这可能表明论文本身没有成功覆盖重要的科学贡献。之后,我们会考虑代码中可能出现的错误,或者代码与论文可能出现的不一致。
去年在ICML发表的论文《不可再现的研究是可再现的》(http://proceedings . MLR . press/v 97/bouthilier 19 a/bouthilier 19 a . pdf)指出,即使我们能够再现这篇论文的实验结果,如果我们稍微改变实验设置,也可能得到非常不同的结果。
基于这些原因,我们不想考虑作者的代码,因为它可能会带来偏见。我们希望把重点放在可重复性的问题上,而不是陷入重复论文的泥潭。
二、影响机器学习论文可复现性的重要因素
有些特性与再现性无关,但我觉得这些特性最有趣。
我回顾了截至2017年我尝试实现的每一篇论文,并基于两个标准筛选这些论文:(1)通过阅读已发布的源代码,这种尝试实现论文的行为是否有偏差;(2)是否与作者有私人关系。
对于每篇论文,我尽可能多地记录信息,以创建一组可量化的特征。有些特征是完全客观的(论文中有多少作者),而有些特征是非常主观的(论文看起来令人惊讶吗?这种分析的目的是获得尽可能多的信息,这些信息可能会影响论文的再现性。
为了做到这一点,我需要尝试复制255篇论文,最终我成功复制了其中的162篇。每篇论文都被提炼为26个特征的集合,然后我对其进行统计测试,以确定哪些特征是重要的。在上表中,我列出了最有趣、最重要的实验结果和我的初步反应。
有些结果并不令人惊讶。比如作者数量对于论文的可重复性应该不是特别重要,两者之间没有显著关系。
我们可以通过调整超参数来改变算法的性能,但是算法本身并不学习超参数。超参数的值必须由人类设定(或想出明智的方法来选择值)。
我们发现一篇论文是否详细描述了使用的超参数是非常重要的(我们可以直观的想到原因)。如果不向读者解释超参数设置,读者必须自己猜测。这需要大量的工作和时间,而且很容易出错!因此,我们的一些研究结果证实了研究界正在追求的想法,以便使论文更具可重复性。
更重要的是,我们现在可以量化为什么这些值得追求。其他发现也遵循基本逻辑。比如可读性强的论文更容易被转载,这可能是因为它们更容易理解。
想更深入探讨这个问题的读者可以阅读原论文,论文中有一些我认为非常有趣的附带实验结果:它们要么挑战了我们“知道”的好论文的想法,要么产生了一些惊人的结论。所有这些结果都太微妙了,无法在本文中详细解释。
本文提出以下发现,以启发人们做更深入的研究,回答存在的问题。
发现一:论文每页公式越少,论文的可重复性越高。
对于数学复习者来说,就是“猫薄荷”!他们控制不住自己!https://xkcd.com/982/
这似乎是因为可读性最强的论文通常使用最少的公式。我们经常看到论文因为各种原因列出很多公式和导数。然而,谨慎合理地使用公式似乎可以使观点更容易阅读。这主要是因为作者可以选择性地使用数学进行更有效的交流。
这一结论与论文发表的激励机制相冲突。我不止一次遇到让我在论文中加入更多数学论证的审稿人。也许数学本身就能让论文更科学或者更客观。虽然让论文更标准化似乎更好,但这并不等同于可复制性。这是研究界需要解决的文化问题。
发现 2:实证论文可能比面向理论的论文更容易复现在机器学习社区中,关于社区中的什么地方以及在多大程度上需要标准化,存在很多争议。现在,指导思想是:作为一个社区,我们应该根据给定的比较基准,专注于获得最佳的实验结果。
然而,在优化基准的过程中,我们可能会失去对实际发生了什么以及为什么这些方法是有效的理解。通过理论分析和形式证明,术语所表达的内涵并不能全部得到严格解释。
一般认为,详细的数学证明可以确保更好地理解给定的方法,但有趣的是,事实上,更好的数学描述并不一定会使研究工作更容易重现。需要指出的是,理论研究和实证研究相结合的论文总体复现率与只包含实证研究的论文相似。从可重复性的角度来看,做实证研究是有益的,但也可能因不当的激励效应或意想不到的副作用而阻碍研究的进展(https://openreview.net/pdf?id=rJWF0Fywf).
发现 3:共享代码并不是灵丹妙药我们的讨论已经触及了一点,即通过作者发布的代码进行复制与独立复制不是一回事。
我们能区分这种不同吗?我的研究表明,开源代码充其量只是可复制性的一个微弱指标。随着学术会议开始鼓励越来越多的代码提交和代码检查作为评审过程的一部分,我相信找出这一点是至关重要的。
作为一个研究社区,我们需要知道我们在做什么,我们实际上在做什么。如果我们被迫提交代码,并为评审者提供评估这些代码的指南,我们应该仔细考虑并考虑两者之间的差异。
从其他人的反应来看,我发现上述研究结果特别值得注意。当我提交关于NeurIPS的论文时,许多人对它发表了评论。
其中一半认为发布代码与可复制性有关,另一半认为两者明显不相关。这些鲜明的观点形成鲜明的对比,这是我为什么进行这项研究的最好例子。当我们真正坐下来评价这些观点的时候,其实并不知道谁对谁错。
发现 4:论文中有没有详细的伪代码对可复现性没有影响
Step伪代码,很简洁,但是需要论文其他部分的上下文来解释。
标准伪代码:比较详细,基本自成体系,通常是数学符号。
伪代码与实际代码相似:几乎都是自成体系的,可以很容易地转换成实际代码。
这个发现挑战了我之前关于形成一篇好论文不可分割的一部分的假设,但是当我思考这个结论的时候,我发现它变得越来越有意义了。
在论文的某个地方,我们必须描述工作过程。作为一名训练有素的计算机科学家,我一直更倾向于所谓“伪代码”的描述。但是伪代码可以采取许多不同的形式。
我把我的论文分为四类:无伪代码、分步伪代码、标准伪代码和与实际代码相似的伪代码。我总结了这四大类中被广泛转载的代表性论文,其中一些论文也在我的研究中使用。
当我看到“标准伪代码”和“与实际代码相似的伪代码”具有大致相同的再现率时,我震惊了。我惊讶地发现,伪代码都不好用。
但是逻辑清晰,有说服力的文笔,对于沟通工作流还是很有效的。无效的是所谓的“分步伪代码”,列出一些步骤的条目,每一步都与论文的另一节相关。然而,这种循序渐进的伪代码实际上增加了读者理解论文的难度,因为读者不得不在不同章节之间来回切换,而不是沿着统一的序列流程阅读。
发现 5:给出简化的示例问题似乎对可复现性没有帮助这又是一个惊人的发现,我还在研究。
我一直很钦佩那些能把复杂的思想浓缩成简单易懂的形式的作家。我也很欣赏那些给出“玩具问题”的论文。“游戏问题”通过一种易于可视化和实验的方式说明了一些性质。
主观上,我总是发现简化的例子非常有助于理解论文想要达到的目的。在创建一个可以用于调试的小测试用例时,重现这个“游戏问题”是一个非常有用的手段。
然而,从客观的角度来看,简化例子似乎并不能使论文更具可重复性。事实上,他们甚至不能提高论文的可读性!我仍然很难理解和解释这个结果。
这就是为什么对研究团体来说量化这些问题是重要的。如果不做这些量化的工作,我们永远不知道我们需要做什么,也就是处理与手头的研究问题最相关的问题。
发现 6:请查收你的电子邮件最后,我想讨论一下答题对论文重现性影响很大的发现。这个结果是意料之中的,因为并不是所有的论文都完美地描述了他们的方法。
我们给50位不同的作者发了电子邮件,询问如何重现他们的实验结果。在我没有收到回复的24个案例中,我只转载了其中一篇论文的实验结果(成功率约为4%)。
对于剩下的26篇论文,作者给出了回复,我得以成功复制其中的22篇(成功率约为85%)。我觉得这个实验结果很有意思,因为它挑战了论文的发表过程。
如果我们允许发表的论文随着时间的推移不断更新,而不是成为某种“新”论文,会怎么样?
这样,作者就可以在原论文中把各种常见的反馈和问题都考虑进去。在arXiv上发表论文的机制使这成为可能,在会议上发表的论文也应该如此。这些实践有可能通过提高可再现性来促进科学的发展,但前提是我们必须实施它们。
三。我们获得了哪些启示?
专家称之为“超参数调谐”。https://xkcd.com/1838/
这部作品的灵感来源于《人工智能正面临可复制性的危机》一文。这种说法是炒作吗?还是真的指出了人工智能领域的系统性问题?完成这部作品后,我倾向于认为这个领域还有提升的空间空。
然而,人工智能和机器学习领域的科学家比其他领域的科学家做得更好。人工智能领域62%的递归成功率高于其他科学领域的元分析。其实我觉得62%的成功率比实际要低。其他对我专业领域之外的研究领域更熟悉的人,或许也能在我失败的案例中获得成功。因此,我认为62%的估计是一个下限。
我想说明的是,上面给出的所有实验结果,都不应该被视为对什么是可重复的,什么是不可重复的明确陈述。有很多潜在的偏见可能会影响这些结果。最明显的是,这255次重现性的尝试都是同一个人做的。元分析师之间的内部一致性没有统一的标准。
我觉得容易复制的工作对别人来说可能很难,反之亦然。例如,我不能复制基于贝叶斯或公平的论文,但我不相信这些领域的工作是完全不可重复的。我个人在背景,学历,资源,兴趣等方面的偏见。可能与最终得到的实验结果密切相关。
也就是说,我认为这项工作为我们的研究社区目前面临的一系列挑战提供了有力的证据,同时也验证了社区中有很多关于可重复性的研究。最大的因素是我们不能把所谓可复制机器学习的所有假设都当真。这些假设需要被检验,我希望这项工作可以激励其他人开始量化和收集这些数据。
在元科学研究界,我们人工智能研究者处于一个非常特殊的地位,我们繁衍后代的成本比其他任何科学领域都要低得多。我们从这项研究中得到的启示可能会产生超出人工智能和机器学习范围的影响,并扩展到计算机科学的其他领域。
最重要的是,我认为这项工作强调了评估科学研究的可重复性是多么困难。孤立地考虑每个特征是实现这种分析的一种相当简单的方法。这种分析已经给出了一系列潜在的发现、意想不到的结果和复杂性。
但是,它并没有开始考虑基于作者的论文之间的相关性,把数据表征为图形,甚至只是分析了当前特征之间的非线性相互作用!这就是为什么我试图将大部分数据公开,以便其他人可以更深入地分析这些数据。
最后,有人向我指出,我的研究本身可能是历史上最不可重复的机器学习研究。但实际上,它提出了一系列关于我们如何进行元科学研究的问题,研究了我们应该如何认识和评价我们的研究。
想象一下你自己的工作是如何融入人类知识和科学的宏伟蓝图的。随着人工智能和机器学习研究的不断进步,我们利用这些工作并从中学习的能力也将高度依赖于我们将越来越多的知识提炼为易于理解的形式的能力。
同时,我们的工作流程和系统必须产生可重复的工作,不会误导我们。期待大家加入元科学研究领域!
通过https://the gradient . pub/independently-reproducible-machine-learning/