​批量生产数学猜想,这样的自动算法学会了探索基本常数

2023-10-09 18:10

本文主要是介绍​批量生产数学猜想,这样的自动算法学会了探索基本常数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

(给视学算法加星标,修炼编程内功)

来源:机器之心

印度历史上有一位著名的天才数学家拉姆努金,他留下了很多伟大的公式。虽然有些没有证明,只能称之为猜想,但后来还是被应用到了很多意想不到的领域。他思维跳脱、运算能力极强,常常得出自己也证明不了的公式,哈达将其与欧拉和雅克比相比。然而,这种天才数学家百年难遇,那么,在我们这个时代,由谁去提出这些猜想呢?近日,以色列理工学院和谷歌的研究者公布了自己的一项工作,并将其称之为「拉姆努金机器」,表示他们可以用算法批量生产数学猜想……

e、π等基本常数普遍存在于物理、生物、化学、几何学、抽象数学等各个学科,在这些学科中发挥辅助性作用。然而,几个世纪以来,有关基本常数的新数学公式很少,通常是通过数学直觉或独创性偶然发现的。

但最近,来自以色列理工学院和谷歌的研究者发现了一种利用算法生成基本常数猜想的新方法,并将其命名为「拉姆努金机器」(Ramanujan Machine)。Ramanujan Machine 利用计算机的算力进行数学计算,目前已经发现了几十个新的猜想。

研究者表示,他们利用算法搜寻新的数学猜想公式。社区可以为这些猜想提供证明,还可以提出或开发新的算法。任何新的猜想、证明或算法都将以提出者的名字命名。

也许我们高中或大学偶尔发现过什么,例如 liqui_date_me 在 Reddit 上表明,他在刚学习无穷级数的时候,就发现 ∑n!/n^n 会收敛到约为 1.8 的随机数,新研究也许会告诉我们这些值都有什么意义。Ramanujan Machine 就是将这些「发现」总结起来,形成合理的猜想。

Slash Sero 在 Reddit 上也评论说:「这些发现的猜想都是已知等式的变体,它们在技术上是新的,但是在语义上并不是新的,我们可以通过分数的重新分布定义任何数学常数。不过这种算法非常有意思,它能自动化搜索和测试新表达式,这原本都是需要人力完成的。」

不管怎么说,这项研究都旨在激励大家进行数学和人工智能驱动的科学研究。

论文链接:https://arxiv.org/pdf/1907.00205.pdf

什么是基本常数猜想

基本常数的简单公式通常散发着简洁的数学之美。比较有名的基本常数包括欧拉恒等式(Euler's identity)——e^iπ + 1 = 0,还有黄金比例的连续分数表示:

这些规律公式(Regular Formula,RF)的发现通常是零星的,常被归功于数学独创性或深刻的直觉。一个比较著名的例子是高斯发现数列规律的能力,他发现的规律带来了新的分析领域(如椭圆函数和模函数)和关于质数定理的假设。他甚至说过一句名言「我得到了结果,但我现在还不知道是怎么得出来的」(I have the result, but I do not yet know how to get it),从中可以看出发现数据规律和 RF 的重要性,它使数学发现成为可能。

为什么能自动搜索基本常数猜想

和物理学或其他学科的评价不同,数学常数可以用恰当的公式计算到特定的精确度(以位数为计),因此可以证明一个绝对的正确结果。在这种情况下,数学常数包括无限的数据(例如无理数的无限长度)。研究人员使用这个方式寻找新的规律公式,并将已有的精确表示作为标注真值。

由于基本常数的应用无所不在,寻找这种规律可以揭示很多可能的新数学结构,如 Rogers-Ramanujan 连分数(以模块化的形式)和 Dedekind η 和 j 函数。既然我们有了数据及结构,那么岂不是能通过梯度下降搜索到新数学猜想?

用机器学习自动学习新猜想?

Ramanujan Machine 到底是不是用机器学习搜索新的猜想,这就要看我们对机器学习的定义了。它同样采用梯度下降「学习」更合理的猜想,只不过是在一种独特的潜在空间中学习。论文作者表示,过一段时间他们将使用更直接的机器学习方法,并展示更多的可能性。

在 Ramanujan Machine 这项研究中,研究人员建立了一种新的机制,用于学习常数和一系列新猜想之间的关系。由于机制可以以许多种规律公式表示,研究人员提出了一种潜在的等式——广义连续分数:

如图,b_n ∈ Z,n = 1, 2, . . .,分别是部分分子和分母。广义连续分数中的这种分子和分母的多项式表达方式是数学界几个世纪以来一直研究的问题。

研究人员提出,他们的思路是找到广义连续分数和基本常数之间的函数关系。简单来说,列举和表达具有美感,因此研究人员将实数多项式加在等式两边。他们总共提出了两种搜索算法。

第一种方法是中间逼近(Meet-In-The-Middle,MITM)算法,从而以相对小的精度降低搜索空间、减少错配。这种算法提升了很大一部分广义连续分数在剩余次数中的迭代,用于检验它们是否成为新的猜想中的规律公式。因此,这种算法称为 MITM-RF。第二种算法使用基于优化的策略,研究人员称之为 Descent&Repel,通过转换为实数网格点来定义猜想中的正则公式。

MITM-RF 算法提出了一些新的猜想,如图:

猜想 1-4:自动生成的数学公式猜想,它们都是应用 MITM-RF 算法,并通过该论文提出的 Ramanujan Machine 生成的。

如上图所示为 MITM-RF 方法。研究者首先会低精度地枚举等式右边的表达式 RHS(Right-Hand-Side),值会储存在哈希表中。然后研究者会枚举等式左边的表达式 LHS,并搜索与 RHS 相匹配的项。随后模型会重新计算匹配,并获得更高精度的结果。这个重计算的过程会一直进行下去,直到达到了某种精度,我们就能将其作为新提出的猜想。

学习的新猜想只是巧合?

我们可能会疑惑,模型找出来的猜想是数学上的恒等关系,还是说只是数值上的巧合?如果是数值上的巧合,那岂不是说前面很多步都是准确的,但随着数值计算越来越多,它总会出错而崩溃。然而,这项工作中提出的方法使得猜想非常鲁棒:对于 10^9 大小的枚举空间,以及小数点后 50 位的数值精度,随机找到能匹配的猜想概率要小于 10 的负 40 次方。

这个极小的概率可以让我们相信,新的猜想也许是等待严格数学证明的「真理」。在过去一段时间中,这种猜想的证明会带来很多新发现,例如费马大定理(Fermat's Last Theorem)被证明后,得出来的新数学架构。研究者相信这些批量生成的新猜想也有相同的地位,它们的证明会带来全新的技术进步。

学习的参数猜想有什么用

与本文提出的方法相比,很多已知的基本常数的 RF 都是通过传统的数学证明(即从这些常数的已知特性中推导出的序列逻辑步骤)发现的。在本文中,研究者旨在反转这一过程,在没有关于基本常数数学结构先验知识的条件下,仅用它们的数值数据为其找到新的 RF。每个 RF 都可能使产生该 RF 的数学结构的逆向工程成为可能,并为该领域提供新的见解。本文中的方法在经验常数中尤其有效,如混沌理论中的费根鲍姆常数(Feigenbaum constant)(见表 2),该常数是从模拟中通过数值推导出来的,没有解析表示。

表 2:来自不同领域的基本常数示例,这些都是本文方法的相关目标。

新的 RF 猜想可能会有有趣的应用,快速收敛的 GCF 和其他恒等式用于高效计算不同的常数。例如,计算π最高效的方法之一就是基于 Ramanujan 提供的一个公式。更广泛地来说,新的 RF 可以帮助我们更快地计算其他常数,如上面展示的 e 的超指数收敛。新 RF 的另一个潜在应用是证明基本常数的内在特性。

- END -

如果看到这里,说明你喜欢这篇文章,请转发、点赞。扫描下方二维码或者微信搜索「perfect_iscas」,添加好友后即可获得10套程序员全栈课程+1000套PPT和简历模板向我私聊「进群」二字即可进入高质量交流群。

扫描二维码进群↓

在看 

这篇关于​批量生产数学猜想,这样的自动算法学会了探索基本常数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/174635

相关文章

使用Python实现实时金价监控并自动提醒功能

《使用Python实现实时金价监控并自动提醒功能》在日常投资中,很多朋友喜欢在一些平台买点黄金,低买高卖赚点小差价,但黄金价格实时波动频繁,总是盯着手机太累了,于是我用Python写了一个实时金价监控... 目录工具能干啥?手把手教你用1、先装好这些"食材"2、代码实现讲解1. 用户输入参数2. 设置无头浏

Python 异步编程 asyncio简介及基本用法

《Python异步编程asyncio简介及基本用法》asyncio是Python的一个库,用于编写并发代码,使用协程、任务和Futures来处理I/O密集型和高延迟操作,本文给大家介绍Python... 目录1、asyncio是什么IO密集型任务特征2、怎么用1、基本用法2、关键字 async1、async

Springboot实现推荐系统的协同过滤算法

《Springboot实现推荐系统的协同过滤算法》协同过滤算法是一种在推荐系统中广泛使用的算法,用于预测用户对物品(如商品、电影、音乐等)的偏好,从而实现个性化推荐,下面给大家介绍Springboot... 目录前言基本原理 算法分类 计算方法应用场景 代码实现 前言协同过滤算法(Collaborativ

Python实现微信自动锁定工具

《Python实现微信自动锁定工具》在数字化办公时代,微信已成为职场沟通的重要工具,但临时离开时忘记锁屏可能导致敏感信息泄露,下面我们就来看看如何使用Python打造一个微信自动锁定工具吧... 目录引言:当微信隐私遇到自动化守护效果展示核心功能全景图技术亮点深度解析1. 无操作检测引擎2. 微信路径智能获

redis中使用lua脚本的原理与基本使用详解

《redis中使用lua脚本的原理与基本使用详解》在Redis中使用Lua脚本可以实现原子性操作、减少网络开销以及提高执行效率,下面小编就来和大家详细介绍一下在redis中使用lua脚本的原理... 目录Redis 执行 Lua 脚本的原理基本使用方法使用EVAL命令执行 Lua 脚本使用EVALSHA命令

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

pytorch自动求梯度autograd的实现

《pytorch自动求梯度autograd的实现》autograd是一个自动微分引擎,它可以自动计算张量的梯度,本文主要介绍了pytorch自动求梯度autograd的实现,具有一定的参考价值,感兴趣... autograd是pytorch构建神经网络的核心。在 PyTorch 中,结合以下代码例子,当你

Python如何自动生成环境依赖包requirements

《Python如何自动生成环境依赖包requirements》:本文主要介绍Python如何自动生成环境依赖包requirements问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录生成当前 python 环境 安装的所有依赖包1、命令2、常见问题只生成当前 项目 的所有依赖包1、

MySQL 中的 LIMIT 语句及基本用法

《MySQL中的LIMIT语句及基本用法》LIMIT语句用于限制查询返回的行数,常用于分页查询或取部分数据,提高查询效率,:本文主要介绍MySQL中的LIMIT语句,需要的朋友可以参考下... 目录mysql 中的 LIMIT 语句1. LIMIT 语法2. LIMIT 基本用法(1) 获取前 N 行数据(

openCV中KNN算法的实现

《openCV中KNN算法的实现》KNN算法是一种简单且常用的分类算法,本文主要介绍了openCV中KNN算法的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录KNN算法流程使用OpenCV实现KNNOpenCV 是一个开源的跨平台计算机视觉库,它提供了各