机器学习如今正在面临一些危机,将会阻碍该领域的快速发展。这些危机源于一个更广泛的困境,即科学研究的可重复性。根据《自然》杂志对 1,500 名科学家进行的一项调查,70% 的研究人员曾尝试复制其他科学家的实验但未能获得成功,50% 以上的研究人员未能复制他们自己的研究成果。可重复性也称为可复制性,是科学方法的核心原则,有助于确保给定研究的结果不是一次性的,而是可复制的观察结果。
在计算机科学中,可重复性有一个更狭义的定义:任何结果都应该通过提供所有数据和代码来记录,以便可以再次执行计算并获得相同的结果。不幸的是,在透明度和可重复性方面,人工智能 (AI) 和机器学习(ML)的进展并不顺利。例如,有 31 位科学家在《自然》杂志上发表的一篇文章,他们对 Google Health 的一项记录了人工智能检测乳腺癌迹象的“成功”实验研究进行了严厉批评。
对该实验持怀疑态度的科学家声称,谷歌公司的研究提供的关于人工智能模型如何构建和测试的细节太少,甚至只是其专有技术的一种广告。如果没有关于如何创建此模型的足够信息,科学界几乎不可能审查和重复其结果。这导致人们越来越认为人工智能缺乏透明度,加剧了人类与人工智能系统之间的信任问题。
为了保持机器学习的持续进展,并使其在人工智能方面取得成功,解决该领域的可复制性和透明度问题至关重要。本文解释了人工智能可重复性危机的重要性,以及专门为机器学习构建的新版本 GitHub 如何帮助解决它。
为什么需要专门为机器学习构建的 GitHub
GitHub 是一种基于云的代码开发和管理服务。该平台用于软件版本控制,可以帮助开发人员在整个开发生命周期中跟踪代码的更改。这使得安全地分支和合并项目成为可能,并确保代码是可重复的,无论谁运行它,都能够以相同的方式工作。因为人工智能和机器学习应用程序是用代码编写的,所以 GitHub 是管理它们的自然选择。不幸的是,人工智能与更传统的软件项目之间的一些差异使得 GitHub 不适合人工智能,从而导致机器学习的可重复性危机。
GitHub 在设计时并未将数据作为核心项目组件
传统的软件算法是由开发人员从头脑中提取想法,并用确定性的、数学的、完备的图灵语言将它们编写为代码而创建的。这使得软件具有高度可复制性——重现给定软件所需的只是其代码和用于任务优化的库。
机器学习算法是不同的,因为它们不是从开发人员的头脑中创造出来的,而是从数据中“总结”出来的。这意味着,即使传统软件开发中记录的代码和运行环境变量保持不变,如果数据发生变化,机器学习算法也会发生变化。这是 GitHub 用于人工智能的问题的核心:即使跟踪用于开发人工智能算法的代码和库,也无法重复,因为它依赖于数据,而不仅仅是代码。
要想克服这个问题,有如下一些方法:
人工智能使用大量的非结构化数据集
GitHub 用于人工智能的问题,不仅仅在于无法跟踪数据的变化。传统软件和人工智能依赖的数据类型是完全不同。传统软件是用代码编写的,而代码是用文本表示的。通常来说,文本文件并不是很大。但人工智能主要依赖非结构化数据,如音频、图像和视频,这些数据在量上远远大于文本文件,因此会面临额外的数据跟踪和管理挑战。
将来自多个数据源的数据组合到单个数据存储中的过程称为提取、转换和加载 (ETL)。这是将数据从源系统复制到目标系统的通用过程,它使不同类型的数据可以协同处理。数据科学家和工程师需要数据版本控制、数据沿袭、处理大型文件的能力,以及管理用于数据处理的脚本和库,以便提取、转换和加载数据,以用于人工智能应用程序开发。
本文将讨论该问题的一些新兴解决方案,但需要注意的是,该功能目前并未内置到 GitHub 的核心中,因此无法在平台上正确管理为机器学习算法提供信息的数据。
机器学习模型参数增加了复杂性人工智能的可复制性难题,以及难于将 GitHub 用于机器学习的原因,不仅是无法跟踪数据变化和管理大型非结构化数据集。即使用于开发人工智能算法的代码、库和数据保持不变,由于模型参数的可变性,仍然无法使用相同的人工智能系统复制相同的结果。如上所述,机器学习算法由数据决定。然而,这并不是影响系统的唯一因素。参数也会影响给定算法的运行。模型参数有两种类型:超参数和普通参数。超参数可以被认为是学习过程的高级控制,影响给定模型的结果参数。在机器学习模型训练完成之后,参数就是模型本身的代表。超参数虽然在训练期间被学习算法使用,但不是最终模型的一部分。
根据超参数的定义可知,超参数是在机器学习模型之外,因而无法从数据中估计它们的值。对超参数的更改会导致机器学习模型的最终算法发生更改。如果把代码比作构建人类大脑的蓝图,那么超参数和模型就是构建某个特定大脑的实施方案。这很重要,因为用于训练模型的相同代码库可以生成数百或数千个不同的参数。
实验结果跟踪和代码审查
在测试机器学习模型时,跟踪实验结果很重要。这些结果有助于确定哪种模型最适合使用,毫无疑问,GitHub 并不是用来记录这些细节的。尽管可以构建自定义解决方法,但这一解决方案无法扩展,并且由于时间和资源限制,许多开发人员无法访问。
当然,管理机器学习模型还涉及代码审查和版本跟踪,这是 GitHub 擅长的地方。不过,尽管 GitHub 可以很好地跟踪代码和环境变量,但机器学习引入了跟踪数据、参数、元数据、实验结果等的需求。Git 平台并不是为适应这种复杂程度而构建的,但幸运的是,有一些新兴的解决方案试图克服 GitHub 对人工智能和机器学习的限制。
用于人工智能和机器学习的 GitHub 替代方案
除了 GitHub,没有其他替代方案可以为管理人工智能和机器学习项目提供全面的解决方案。为从事人工智能和机器学习的数据科学家和工程师提供量身定制的 GitHub,是最理想的情况。不过,在做到这一点之前,并非没有可以解决上述不同问题的解决方案:



