博客
关于我
谷歌“公式制造机”登上Nature,你也能用它“变成”数学天才 | 开源
阅读量:300 次
发布时间:2019-03-01

本文共 1413 字,大约阅读时间需要 4 分钟。

金磊 发自 凹非寺 量子位 报道 | QbitAI

AI能够生成数学公式,还是迄今尚未解决的那种问题?例如π和e这样的常数,虽然在科学领域司空见惯,但计算其高精度近似值往往令人头大。谷歌打造的拉马努金机(Ramanujan Machine)便帮上了大忙——能算近似值,还能在数学计算中快速找出精准规律。

并且就在今天,还登上了顶刊Nature。论文当中提到了两种算法。第一种是中间相遇法(The Meet-In-The-Middle)。这个算法的思路非常简单:给定一个常数c(如c=π),根据公式先计算出公式右边一个精度较低的值,并将其存入哈希表,然后通过枚举的方法来使公式左右两边的值相匹配,匹配上的值称为“hits”。随后增加hits的精度并重新比较,重复这个过程直到hits达到指定精度。这个最终的结果就提供了一个新的连分数。

有些hits值会产生误报,针对这一点,研究人员提出通过计算任意精度的有理函数来减少误报。在这个算法当中,由于公式右边的计算成本更高,所以将它的值以哈希表来存储,以空间换时间。这个哈希表也可以保存下来重新服务于公式左边的枚举,从而大大减少未来的枚举时间。

MITM-RF算法不需要任何关于基本常数的先验信息,不过有许多基本常数的结构是可以推断出来的,以此作为MITM-RF的先验信息可以有效降低空间复杂度和计算复杂度。Descent&Repel方法结合了机器学习中的梯度下降方法,通过优化问题描述为:我们可以把优化问题描述成这个样子:这里的最小值不是零维度点,而是(d-1)维的流形,其中d是给定的单一约束所预期的优化变量的数量。

研究者还观察到所有的最小值都是全局的,并且它们的误差为0,也就是说所有的梯度下降过程最后都会得到L=0的解。这个优化问题起始于一个大的点的集合,在示例当中,所有初始条件被放置在一条线上。对每一个点迭代执行梯度下降,然后强制所有的点通过库仑排斥彼此排斥。通过梯度下降步骤保证算法朝向整数格并趋向最小曲线,最后仅返回位于整数格上的解。

自动生成猜想,并不是计算机帮助推动数学发展的唯一领域。虽然许多数学家仍旧喜欢用纸、笔来工作,但是利用数学软件,确实可以操作复杂的代数表达式。计算机辅助计算在几个引人注目的结果的证明中发挥了关键作用。最近,一些数学家在人工智能方面取得了进展,人工智能不仅能进行重复的计算,还能自己做出证明。

另一个正在发展的领域是软件,它可以检查人类写的数学证明,并检查它是否正确。正如证明自动化的先驱Zeilberger所述:最终,人类将会被淘汰。随着人工智能产生的数学的复杂性增加,数学家们将会失去计算机正在做什么的轨迹,并且只能粗略地理解计算。

但尽管计算机能够提出数学表示,甚至证明它们是正确的,但如果没有人类的干预,目前还不清楚它们是否仅仅是从技术角度来区分这些数学表示。因此也有人认为,类似于拉马努金机这样的AI,只是数学工作者的一个辅助工具。

拉马努金是印度最著名的数学家之一。在20世纪早期,拉马努金对数学做出了重要贡献。他没受过正规的高等数学教育,沉迷数论,尤爱牵涉π、质数等数学常数的求和公式,以及整数分拆。拉马努金习惯以直觉导出公式,不喜作证明(事后往往证明他是对的)。他留下的那些没有证明的公式,引发了后来的大量研究。

最后,与拉马努金机相关的项目,在GitHub上已开源,戳下方链接可以去试试哦~ 参考链接:相关项目地址:

转载地址:http://liot.baihongyu.com/

你可能感兴趣的文章
NuGet(微软.NET开发平台的软件包管理工具)在VisualStudio中的安装的使用
查看>>
nuget.org 无法加载源 https://api.nuget.org/v3/index.json 的服务索引
查看>>
Nuget~管理自己的包包
查看>>
NuGet学习笔记001---了解使用NuGet给net快速获取引用
查看>>
nullnullHuge Pages
查看>>
NullPointerException Cannot invoke setSkipOutputConversion(boolean) because functionToInvoke is null
查看>>
null可以转换成任意非基本类型(int/short/long/float/boolean/byte/double/char以外)
查看>>
Number Sequence(kmp算法)
查看>>
Numix Core 开源项目教程
查看>>
numpy
查看>>
Numpy 入门
查看>>
NumPy 库详细介绍-ChatGPT4o作答
查看>>
NumPy 或 Pandas:将数组类型保持为整数,同时具有 NaN 值
查看>>
numpy 或 scipy 有哪些可能的计算可以返回 NaN?
查看>>
numpy 数组 dtype 在 Windows 10 64 位机器中默认为 int32
查看>>
numpy 数组与矩阵的乘法理解
查看>>
NumPy 数组拼接方法-ChatGPT4o作答
查看>>
numpy 用法
查看>>
Numpy 科学计算库详解
查看>>
Numpy.fft.fft和numpy.fft.fftfreq有什么不同
查看>>