毫无疑问,这里的每个人都听说过深度学习,即使他们不知道它是什么或它有什么好处。我本人曾是数学家,后来成为数据科学家,对深度学习及其在数学和符号推理中的应用非常感兴趣。最近取得了很多进展,虽然机器学习专家对此感到兴奋,但迄今为止的结果可能对研究数学家没有用处。我的问题很简单:
是否有研究数学的领域,如果一个人能够获得训练有素的最先进的机器学习模型(就像我将在下面描述的那样),它将在该领域产生积极影响?
虽然数学主要是关于证明,但有时也需要计算、直觉和探索。这些是深度学习特别擅长的事情。让我举几个例子:
良好的直觉或猜测
查顿和兰普显示了变形金刚,一种现在非常标准的神经网络类型,能够很好地解决形式的符号问题$$\mathit美元{表达}_1\mapsto\mathit{表达}_2 $$哪里$\mathit美元{表达}_1$和$\mathit美元{表达}_2$都是符号表达,例如在他们的论文中$\mathit美元{表达}_1$是一个整合和$\mathit美元{表达}_2$是它的整体。这个模型并不完美。在93-98%的时间里,它得到了正确的答案,并且在接受培训的问题类型上做得最好。此外,集成是一个有200年历史的问题,因此很难与最先进的CAS竞争。
然而,有一些事情让这件事变得有趣。符号积分很重要,也很难,而且(在某种程度上)很容易通过计算导数来检查解的正确性(并通过符号检查导数是否与起始被积函数等价)。此外,这是一个“直觉”和“经验”肯定会有所帮助的领域,因为训练有素的人类积分求解器可以快速猜测正确的解决方案。最后,通过微分计算无限数量的训练示例(相对而言)很容易。(本文还使用了其他技巧来丰富训练集。)
在尖端数学中,可能在代数、组合数学或逻辑中,有类似的问题吗?在这些问题中,人们想反转一个易于在一个方向上计算但不易于在另一个方向上计算的符号运算?
神经引导搜索
有些问题只是某种树或图搜索,例如解魔方。给定一个加扰的立方体,神经网络可以建议下一步解决它的行动。一个好的神经网络能够为树或图搜索提供启发式,并且与朴素的强制搜索相比,能够防止指数放大。的确,《自然》杂志的一篇论文演示了如何训练一个神经网络,以这种不需要数学知识的方式从头开始求解魔方。他们的神经网络引导的树搜索,一旦经过训练,就可以完美地解决一个混乱的立方体。这也类似于AlphaGo及其变体背后的思想,以及神经形式定理证明背后的思想——这确实令人兴奋,但也不足以证明任何对研究数学有用的东西。
拼图方块和棋盘游戏并不是最前沿的数学,但人们可以想象出更有趣的领域,就像魔方一样,人们必须通过一系列简单的动作将一个表达式转换成另一种形式,而可靠地做到这一点的能力将是非常有趣的。(注意,我所描述的神经引导树搜索仍然是一种搜索算法,比典型的立方体求解算法慢得多,但新兴的程序合成领域可能有一天会很快从头开始学习一个求解魔方的计算机程序,以及学习计算机程序来解决更有趣的数学问题第条)
神经信息检索
假设您有一个数学对象数据库(例如整数序列、有限群、椭圆曲线或同伦群),并且您希望用户能够在该数据库中查找对象。如果该对象在数据库中,您希望用户找到它。如果不是,您希望该用户找到类似的对象。问题是“相似”很难定义。深度学习提供了一个很好的解决方案。每个对象都可以与一个嵌入相关联,它只是一个向量,例如,$\mathbb{R}^{128}$两个对象的相似性度量是其嵌入的内积。此外,有许多技术使用自监督机器学习来构建这些嵌入,以便语义相似的对象具有相似的嵌入。这在作为前提选择的形式定理证明中已经显示出了很大的潜力,人们希望从定理库中选择最相关的定理用于另一个定理的证明。
例如,我认为这种神经数据库搜索对于OEIS来说是合理的,在OEIS中可以使用神经网络对整数序列执行各种预测任务。训练网络的内层将为每个序列计算一个向量嵌入,用于在数据库中搜索相关序列。
几何直觉
神经网络非常擅长图像识别和其他图像任务(如将图像分割为多个部分)。是否有一些几何任务对于深度学习代理来说是有用的,可能是在维度4或维度5中,人类的几何直觉开始让我们失望,因为我们无法在这些维度中看到。(例如,卷积神经网络很难直接用于4维图像,但我可以想象将嵌入4D的3D曲面表示为坐标点云。这可能适用于Transformer神经网络。)
构建自己的任务
当涉及到输入和输出的选择以及架构时,神经网络非常灵活,因此不要让上面的具体示例过多地限制您的思考。您只需要以下几点:
- 一种数学对象。一个你关心的人。它应该以某种有限的方式表示(作为公式、序列的初始段、图像、图形、计算机程序、电影、属性列表)。
- 要对您的操作执行的任务。它可以是明确的或模糊的。它可以是可解的,或者(像积分一样)只能是部分可解的。它可以将对象划分为有限多个桶。它可以计算其他相关对象或对象属性。它可能是在一个序列中找到下一个元素。它可能会做出某种预测或猜测。甚至,仅仅是跳出框框思考,它可能会把物体变成2D卡通图像。
- 大量培训数据。您要么需要能够像上面的集成示例那样综合生成大量训练示例,要么像OEIS一样拥有一个由数千个示例组成的大型数据集(示例越多越好)。最好使用干净的数据,但神经网络可以很好地处理杂乱的数据。另一个“无数据”解决方案是强化学习,如魔方示例或AlphaGoZero,其中代理学习自己探索问题(并通过探索生成数据)。
- 数据中的模式,即使你看不到它们是什么。你的任务应该是有模式帮助机器学习代理解决问题。(例如,我不相信分解大整数是一项好任务。)
- 激励。为什么这对现场有用?拥有这个经过训练的模型有什么目的?它会使猜测事实、探索数学的新领域、用一堆令人困惑的公式来概括自己的头脑变得更容易吗?或者,你有没有办法将学习过的启发式转化为证明,比如使用搜索算法(如上面的魔方示例)或检查解决方案(如上面集成示例)?