当前位置: 首页 > 科技观察

用深度神经网络解决三体问题,提速一亿倍

时间:2023-03-17 13:14:09 科技观察

用深度神经网络解决三体问题,加速1亿倍“不要回答!不要回答!不要回答!”当刘慈欣给自己的科幻小说取名为《三体》的时候,他就已经知道《三体》本身就是一个无解的问题。“三体问题”困扰了人类数百年。无数让你感到害怕的大牛都为此付出了很多努力,比如牛顿、欧拉、拉格朗日、庞加莱,甚至今天。很多人都在研究。但是在犹豫不决的情况下,使用神经网络总是正确的。最近,爱丁堡大学和剑桥大学的数学家们用神经网络解决了三体问题,比以前的求解器快了1亿倍,而且误差仅为1/100,000。“我太难了。”那么三体问题究竟是什么,又为何难倒那么多物理学家和数学家呢?N体问题是指根据牛顿运动三定律和牛顿万有引力定律,已知N个粒子的初始位置和速度,求解其后续运动的问题。首先,二体问题很容易解决。人类早已掌握了地球绕日公转的规律,开普勒行星运动三大定律就是答案。所以在牛顿提出万有引力之后,人们一开始以为三体问题只是比二体问题多了一个体,没什么难的,就是多了一个方程。然而,事情并不简单。当物体数量增加到三个时,一般来说,轨迹会变成乱七八糟的曲线,不再像椭圆那样美观简单。虽然三体问题只包含三个方程,但数学上已经证明,除了少数特殊情况外,一般不可能求出解析解,只能通过数值模拟得到近似解。在欧拉、拉格朗日等大牛的努力下,数学家们已经找到了一些特殊三体问题的精确解,比如三个质量相等的物体绕“8”运动。然而,大多数三体问题都无法精确求解,就像混沌中的蝴蝶效应一样,只要初始条件稍有不同,结果就会大相径庭。为此,需要具有巨大计算能力的计算机来解决三体问题。由于系统的混沌特性,给定初始化问题的解只能通过费时费力的迭代计算找到。2015年,有人开发出Brutus积分器,可以任意精度计算任意N体问题的近似收敛解。但随着精度的不断提高和迭代计算中仿真时间的增加,需要保存在内存中的数字精度呈指数增长,需要进一步减小计算步长。神经网络不是盲目的既然传统的数值解法很难用,不妨试试神经网络。然而,最近,神经网络已经跨越了许多边界。有些人用它们来预测余震,有些人用它们来诊断心脏病。最后,他们发现他们不可靠。在物理学家和数学家使用深度神经网络之前,当然不能随便应用。他们必须首先证明这不是形而上学。早在1991年,就已经从理论上证明,如果神经网络的激活函数是连续的、有界的、非常数的,就可以在紧输入集上实现连续映射。通俗地说,包含足够平滑的激活函数的网络可以以任意精度逼近函数及其导数。换句话说,神经网络可以用来寻找三维问题中物体运动方程的近似解。作者使用了一个由128个节点和10个隐藏层组成的前馈神经网络。数据使用ADAM优化算法训练,每个epoch分为5000个batch,激活函数设置为ReLU。训练集和验证集分别由9900和100个模拟数据组成。在每次模拟中,求解Brutus积分运动方程,并与神经网络的结果进行比较。通过输入时间t和粒子的位置坐标,上述神经网络返回此时其他粒子的坐标,从而实现了三体问题的近似解。在这个过程中,神经网络所需的时间平均比Brutus积分器快10万倍,最高可达1亿倍。不过这种方法受到了一些网友的质疑,因为它只解决了二维平面内的三体问题,而且粒子的初速度也被限制为0。而且神经网络似乎并不遵循这个规律解决问题时的能量守恒。最后作者引入了一个“能量投射层”来达到误差10-5的结果。但这种方法为我们快速、低成本地计算航天器轨道提供了一种解决方案。论文地址:https://arxiv.org/abs/1910.07291