去年,加拿大蒙特利尔大学的计算机科学家们希望展示一种新的语音识别算法,他们希望将其与一名著名科学家的算法进行比较。唯一的问题:该 benchmark 的源代码没有发布。研究人员不得不从已公开发表的描述中重现这一算法。但是他们重现的版本无法与 benchmark 声称的性能相符。蒙特利尔大学实验室博士生 Nan Rosemary Ke 说:“我们尝试了 2 个月,但都无法接近基准的性能。”
人工智能(AI)这个蓬勃发展的领域正面临着实验重现的危机,就像实验重现问题过去十年来一直困扰着心理学、医学以及其他领域一样。
AI 研究者发现他们很难重现许多关键的结果,这导致了对研究方法和出版协议的新认识。法国国家信息与自动化研究所的计算神经科学家 Nicolas Rougier 说:“这个领域以外的人可能会认为,因为我们有代码,所以重现性是有保证的。但完全不是这样。” 上周,在新奥尔良召开的 AAAI 会议上,重现性(reproducibility)问题被提上议程,一些团队对这个问题进行了分析,也有团队提出了减轻这个问题的工具。
最根本的问题是研究人员通常不共享他们的源代码。
在 AAAI 会议上,挪威科技大学计算机科学家 Odd Erik Gundersen 报告了一项调查的结果,调查针对过去几年在两个 AI 顶会上发表的论文中提出的 400 种算法。他发现
只有 6%的研究者分享了算法的代码。只有三分之一的人分享了他们测试算法的数据,而只有一半分享了 “伪代码”。
(许多情况下,包括 Science 和 Nature 在内的期刊上发表的 AI 论文中也没有代码。)
假设你可以获得并运行原始代码,它仍然可能无法达到你的预期。在机器学习领域,计算机从经验中获取专业知识,算法的训练数据可以影响其性能。 Ke 推测,不知道那个语音识别基准的训练数据是什么阻碍了她的团队的进展。“每跑一次的结果都充满了随机性,” 她补充说,你可能 “真的非常幸运,跑出一个非常好的数字。”“研究报告中通常写的就是这个。”
击败幽灵:从论文中自动生成代码
在 AAAI 会议上,加拿大麦吉尔大学的计算机科学家 Peter Henderson 表示,
通过反复试验学习设计的 AI 的性能不仅对所使用的确切代码高度敏感,还对产生的随机数 “超参数” 也非常敏感
——这些设置不是算法的核心,但会影响其学习速度。
Peter Henderson 说,研究人员应该记录更多这些关键细节。 “我们正试图推动这个领域有更好的实验程序,更好的评估方法。”
Peter Henderson 的实验是在 OpenAI Gym 强化学习算法测试平台上进行的,OpenAI 的计算机科学家 John Schulman 帮助创建了 Gym。John Schulman 说,Gym 有助于标准化实验。 “Gym 之前,很多人都在进行强化学习,但每个人都为自己的实验做好了自己的环境,这使得大家很难比较各种论文的结果。”
IBM Research 在 AAAI 会议上提出了另一种工具来帮助复现:一种自动重新创建未发布源代码的系统,它为研究人员节省了数天或数周的时间。
这个系统是一种由小型计算单元层组成的机器学习算法,类似于神经元,用于重新创建其他神经网络。系统通过扫描一份 AI 研究论文,寻找描述神经网络的图表或图示,然后将这些数据解析为图层和连接,并以新代码生成网络。该工具现在已经复现了数百个已经发布的神经网络,IBM 计划把它们放置在一个开放的在线存储库中。
荷兰埃因霍芬理工大学(Eindhoven University of Technology in the Netherlands)的计算机科学家 Joaquin Vanschoren 为创建了另一个存储库:OpenML。它不仅提供算法,还提供数据集和超过 800 万个实验运行及其所有相关详细信息。 “你运行实验的确切方式充满了无证的假设和决定,很多这些细节从来没有成为论文。”Vanschoren 说。
此外,许多人也不愿意报告失败的复现。例如,在 ReScience,所有公布的复现项目迄今为止都是正面的。Rougier 说,他也尝试过发表一些失败的项目,但年轻的研究人员往往不希望批评别人,失败的项目也就无人问津了。这就是为什么 Nan Rosemary Ke 拒绝透露她想用作基准的语音识别算法背后的研究人员的原因之一。