24

谷歌造出拉马努金机:几毫秒求解数学常数,无需任何先验信息

 4 years ago
source link: https://www.tuicool.com/articles/I7rYVbq
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

驭洋 晓查 发自 凹非寺
量子位 出品 公众号 QbitAI

3. 1415926……

π和e这样的基本常数在科学领域中无处不在,但计算它们的高精度近似值往往令人头大。如今,机器学习或许能帮上大忙。

能算近似值,还能在数学计算中快速找出精准规律,机器学习表示 I can I up。

这就是以色列理工学院和谷歌一起开发的 拉马努金机器 (Ramanujan Machine)。

拉马努金,这位英年早逝的天才数学家,总能发现一些让世人惊叹的数学公式。由他发现的圆周率π的计算公式,只需计算第一项就能突破普通计算器的最高精度。

20190706-34358-20190706152931607-2026289163.jpg

拉马努金机器也有类似的奇效。面对各种奇怪复杂的数学常数,只要找出它的 连分数 表示,只需计算十几步、几毫秒就能快速收敛,得到精准答案。 而且算法已经开源!

然而让拉马努金玩出花来的连分数可不是简简单单就能被找出来的,几个世纪以来,与基本常数相关的新数学公式十分少见,毕竟奠基人是欧拉、高斯这样堪称“变态”的天才,想要继承他们的事业,不仅要有丰富的知识积累,还要有敏锐的数学直觉。

而机器学习却表示,无需先验信息,我也能快速 get 新公式。

什么是连分数

20190706-34358-20190706152938626-2130673654.png

优美的欧拉公式将e和π两个数学常数联系起来,但你知道这两个无理数是怎么算出来的吗?

你可以用泰勒展开的方法计算:

20190706-34358-20190706152931520-1143564822.png

实际上还有另一种计算方法,那就是 连分数 ,它的分母无限延伸下去,结果就会越来越接近:

20190706-34358-20190706152931533-2022071491.gif

黄金分割比φ=0.618……有着几乎最简单的连分数形式,一组全是 1 表示的数:

20190706-34358-20190706152931647-1067421474.png

其他的数学尝试,包括自然对数的底 e 、圆周率 π ,还有黎曼猜想中 黎曼 Zeta 函数 ζ(3) 的值。都可以用连分数来表示。

20190706-34358-20190706152931673-1226242641.png

π的连分数表示

任意实数都可以用连分数来表示。

连分数有何用

你如果认为连分数是数学家们的奇技淫巧,那就大错特错了,发现连分数的某个表达式有着实际的用途。

各种数学常数的连分数是 存在却不是唯一 的,如果找到一个合适的连分数,那么计算结果的收敛速度会非常快,大大减少计算机的运算量。

20190706-34358-20190706152931535-2027779829.png

但是找到连分数里一组特殊的数却并不是一件容易的事情,否则这套算法也不会叫做 拉马努金机器 了。

20190706-34358-20190706152931680-1569525709.png

拉马努金发现的连分数,φ是黄金分割比

发现连分数里那些特殊整数的规律,需要有长年数学知识的积累,更要有易于常人的直觉。

现在有了拉马努金机器,可以用电脑代替人的思维去寻找特殊的连分数了。

有 Reddit 网友把拉马努金机器找到的公式写成 Python 代码,各算了一遍e和π,分别用了 15 步和 18 步的迭代,就能达到 float 64 的精度,也就是小数点后 15 位。

20190706-34358-20190706152931690-1985260178.jpg

拉马努金机器不仅能算数学常数,如李维常数、辛钦常数,还能计算一些物理常数,如天文学计算中的拉普拉斯极限等等。

作者下一步的目标用它来做数学证明, 发现数学常数的固有属性 。比如e和π,我们都已经能证明他们是无理数而且是超越数,其他常数是不是无理数呢?以后或许可以用计算机来证明了。

算法介绍

论文当中提到了两种算法。

第一种是 中间相遇法(The Meet-In-The Middle) 。这个算法的思路非常简单:

给定一个常数c(如 c=π),根据公式:

20190706-34358-20190706152931526-1377364972.png

f1(x)=x,f2(x)=1/x ,……;GCF (α,β)代表 an=α(n),bn=β(n)的连分数;α,β,γ,δ为整数多项式。

先计算出公式右边一个精度较低的值,并将其存入哈希表,然后通过枚举的方法来使公式左右两边的值相匹配,匹配上的值称为“hits”,随后增加 hits 的精度并重新比较,重复这个过程直到 hits 达到指定精度。这个最终的结果就提供了一个新的连分数。

20190706-34358-20190706152931676-713271807.jpg

有些 hits 值会产生误报,针对这一点,研究人员提出通过计算任意精度的有理函数来减少误报。

20190706-34358-20190706152931715-413320660.jpg

在这个算法当中,由于公式右边的计算成本更高,所以将它的值以哈希表来存储,以空间换时间。这个哈希表也可以保存下来重新服务于公式左边的枚举,从而大大减少未来的枚举时间。

MITM-RF 算法不需要任何关于基本常数的先验信息,不过有许多基本常数的结构是可以推断出来的,以此作为 MITM-RF 的先验信息可以有效降低空间复杂度和计算复杂度。

不过,MITM-RF 方法还是存在扩展性不佳的问题,于是研究者使用到了机器学习当中常用的梯度下降方法,他们称其为 Descent&Repel 方法

我们可以把优化问题描述成这个样子:

20190706-34358-20190706152931692-2084848390.png

这里的最小值不是零维度点,而是(d-1)维的流形,其中d是给定的单一约束所预期的优化变量的数量。

研究者还观察到所有的最小值都是全局的,并且它们的误差为0,也就是说所有的梯度下降过程最后都会得到L=0 的解。

这个优化问题起始于一个大的点的集合,在示例当中,所有初始条件被放置在一条线上。对每一个点迭代执行梯度下降,然后强制所有的点通过库仑排斥彼此排斥。通过梯度下降步骤保证算法朝向整数格并趋向最小曲线,最后仅返回位于整数格上的解。

20190706-34358-20190706152931743-1005310094.jpg

网友的质疑

有 Reddit 网友认为,连分数通过等效变换可以获得无限多种组合这篇论文不是机器学习,它只是一种自动化查找新表达式的算法。

20190706-34358-20190706152938693-1154081858.jpg

网友虽然反对将作者的结果称为机器学习,但它仍然是一种吸引人的算法,最有趣的是使用梯度下降优化整数分数,以前从未见过有人这么用过,因此是有创新性的。

对此,作者表示,是不是机器学习取决于你如何定义,文章中寻找新数学公式的算法是基于梯度下降的模型,因此可以看做是机器学习,今后他还将展示更直接地利用机器学习的其他结果。

至于发现新的连分数表达式,已经有前人的研究成果可供查询,而作者用拉马努金机器发现的很多结果已经被人类手工发现了。况且只要掌握了连分数的知识,就能发现各种表达式变体。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK