使用AlphaTensor发现新的算法

'使用AlphaTensor发现新的算法' can be condensed as 'AlphaTensor发现新算法'.

AlphaZero 首次将其算法扩展到数学领域,为研究开辟了新的可能性

几千年来,算法一直帮助数学家进行基础运算。古埃及人创造了一个算法,可以在不需要乘法表的情况下进行两个数字的乘法运算,而希腊数学家欧几里得描述了一种计算最大公约数的算法,这种算法至今仍在使用。

在伊斯兰黄金时代,波斯数学家穆罕默德·本·穆萨·扎尔吉斯坦设计了解线性和二次方程的新算法。事实上,扎尔吉斯坦的名字在拉丁语中被译为“阿尔戈里斯米”,这个词导致了算法这个术语的产生。但是,尽管如今人们对算法非常熟悉,从课堂代数到尖端科学研究都在使用算法,但是发现新算法的过程非常困难,也是人类思维能力的一个惊人例证。

在我们今天发表在《自然》杂志上的论文中,我们介绍了 AlphaTensor,这是第一个用于发现新的高效和可证明正确的算法的人工智能系统。我们的研究为数学领域中一个50年来未解决的问题——寻找两个矩阵相乘的最快方法——提供了新的启示。

这篇论文是 DeepMind 推动科学发展、利用人工智能解决最基础问题的里程碑。我们的系统 AlphaTensor 基于 AlphaZero,这是一个在棋类游戏(如国际象棋、围棋和将棋)中展示出超人类表现的智能体,而这项研究首次展示了 AlphaZero 从玩游戏到首次解决未解数学问题的过程。

矩阵乘法

矩阵乘法是代数中最简单的运算之一,通常在高中数学课程中教授。但在课堂以外,这个简单的数学运算在当代数字世界中有着巨大的影响,在现代计算中无处不在。

两个3x3矩阵相乘的示例过程。

这个运算在智能手机上处理图像、识别语音命令、生成计算机游戏中的图形、运行天气预报模拟、压缩用于在互联网上分享的数据和视频等方面都得到了应用。世界各地的公司花费大量时间和金钱开发计算硬件,以高效地进行矩阵乘法运算。因此,即使对矩阵乘法的效率进行微小的改进,也能产生广泛的影响。

几个世纪以来,数学家们一直认为标准的矩阵乘法算法是在效率方面可以达到的最好结果。但是在1969年,德国数学家沃尔克·斯特拉森通过展示更好的算法的存在,震惊了数学界。

标准算法与斯特拉森算法的比较,斯特拉森算法在乘法运算中使用了一个较少的数量(7个而不是8个)来相乘2x2矩阵。对于整体效率来说,乘法比加法更为重要。

通过研究非常小的矩阵(大小为2×2),他发现了一种将矩阵的元素组合起来以获得更快算法的巧妙方法。尽管在斯特拉森的突破之后经过了几十年的研究,这个问题的更大规模版本仍然未解决——以至于不知道如何高效地乘以两个大小为3×3的矩阵。

在我们的论文中,我们探索了现代人工智能技术如何推动自动发现新的矩阵乘法算法。借鉴人类直觉的进展,AlphaTensor 发现了比现有技术更高效的算法。我们的人工智能设计的算法优于人类设计的算法,这在算法发现领域是一个重大进展。

自动化算法发现的过程和进展

首先,我们将寻找矩阵乘法高效算法的问题转化为一个单人游戏。在这个游戏中,棋盘是一个三维张量(数字数组),记录当前算法与正确算法之间的差距。通过一组允许的移动,对应于算法指令,玩家试图修改张量并将其元素归零。当玩家成功做到这一点时,就得到了一个对任意一对矩阵都正确的矩阵乘法算法,并且其效率由归零张量所需的步骤数表示。

这个游戏极具挑战性——即使是对于小规模的矩阵乘法问题,需要考虑的可能算法数量远大于宇宙中的原子数量。与围棋这个AI长期无法攻克的游戏相比,我们游戏每一步可能的走法数量要大30个数量级(在我们考虑的某个设置中,数量超过10的33次方)。

基本上,要在这个游戏中玩得好,就需要在海量可能性中找到最微小的一根稻草。为了应对这个与传统游戏显著不同的领域的挑战,我们开发了多个关键组件,包括一个结合了问题特定归纳偏差的创新神经网络架构,生成有用的合成数据的过程,以及利用问题的对称性的方法。

然后,我们使用强化学习训练了一个名为AlphaTensor的代理来玩这个游戏,起初它对现有的矩阵乘法算法一无所知。通过学习,AlphaTensor逐渐提升,重新发现了历史上的快速矩阵乘法算法,如斯特拉森算法,最终超越了人类直觉的范畴,发现了比以前已知的算法更快的算法。

由AlphaTensor玩的单人游戏,目标是找到正确的矩阵乘法算法。游戏的状态是一个立方体数组(灰色表示0,蓝色表示1,绿色表示-1),表示剩余的工作。

例如,如果传统学校教授的算法使用100次乘法来计算一个4×5乘以5×5的矩阵,而人类的聪明才智将这个数字减少到80次,那么AlphaTensor已经找到了只需要76次乘法进行相同操作的算法。

AlphaTensor使用76次乘法发现的算法,超过了现有算法的水平。

除了这个例子,AlphaTensor的算法还在有限域上首次改进了斯特拉森的双层算法,这是自50年前发现以来的首次。这些用于乘法小矩阵的算法可以作为原语来乘法任意大小的矩阵。

此外,AlphaTensor还发现了一系列具有最先进复杂性的算法——针对每个大小的矩阵,可以有成千上万种矩阵乘法算法,显示出矩阵乘法算法的空间比以前认为的更丰富。

这个丰富的空间中的算法具有不同的数学和实际特性。通过利用这种多样性,我们使AlphaTensor能够特定地找到在给定硬件上快速的算法,如Nvidia V100 GPU和Google TPU v2。这些算法在相同硬件上比常用算法快10-20%,展示了AlphaTensor在优化任意目标上的灵活性。

AlphaTensor的目标与算法的运行时间相对应。当找到正确的矩阵乘法算法时,它会在目标硬件上进行基准测试,然后反馈给AlphaTensor,以便在目标硬件上学习更高效的算法。

探索对未来研究和应用的影响

从数学角度来看,我们的结果可以指导进一步的复杂性理论研究,该理论旨在确定解决计算问题的最快算法。通过比以前的方法更有效地探索可能算法的空间,AlphaTensor有助于推进我们对矩阵乘法算法丰富性的理解。理解这个空间可能为确定矩阵乘法的渐近复杂性提供新的结果,这是计算机科学中最基本的开放问题之一。

由于矩阵乘法是许多计算任务的核心组成部分,涵盖了计算机图形学、数字通信、神经网络训练和科学计算等领域,AlphaTensor发现的算法可以显著提高这些领域的计算效率。AlphaTensor的灵活性使得它可以考虑任何类型的目标,这也可以激发设计能够优化能源使用和数值稳定性等指标的算法的新应用,帮助防止算法工作过程中小的舍入误差逐渐累积。

虽然我们在这里专注于矩阵乘法这个特定问题,但我们希望我们的论文能够激励其他人使用人工智能来引导算法发现其他基本的计算任务。我们的研究还表明,AlphaZero是一个强大的算法,可以将其扩展到传统游戏领域以外,帮助解决数学中的开放性问题。在我们的研究基础上,我们希望推动更多的工作——将人工智能应用于帮助社会解决数学和其他科学领域中一些最重要的挑战。

您可以在AlphaTensor的GitHub存储库中找到更多信息。