用深度神經(jīng)網(wǎng)絡(luò)解決三體問題,提速一億倍
本文經(jīng)AI新媒體量子位(公眾號ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系出處。
“不要回答!不要回答!不要回答!”
劉慈欣在為自己的科幻小說起名為《三體》時,他早已知道“三體”本身就是一個不可回答的問題。

“三體問題”已經(jīng)困擾了人類幾百年,曾經(jīng)無數(shù)讓你感到恐懼的大牛都為此付出了巨大的心血,比如牛頓、歐拉、拉格朗日、龐加萊,直到今天還有很多人在研究。
但遇事不決,用神經(jīng)網(wǎng)絡(luò)總是沒錯的。
最近來自愛丁堡大學(xué)、劍橋大學(xué)的數(shù)學(xué)家們,用神經(jīng)網(wǎng)絡(luò)來求解三體問題,速度比之前的求解器快一億倍,而且誤差只有十萬分之一。
“我太難了”
那么三體問題到底是什么,為什么它會難倒如此多的物理學(xué)家、數(shù)學(xué)家?
N體問題是指,根據(jù)牛頓三大運(yùn)動定律和牛頓萬有引力定律,在知道N個質(zhì)點(diǎn)的初始位置和速度的情況下,求解其后續(xù)運(yùn)動的問題。
首先,二體問題極易解決,人類早已掌握地球圍繞太陽運(yùn)轉(zhuǎn)的規(guī)律,開普勒行星運(yùn)動三大定律就是答案。

所以在牛頓提出了萬有引力后,一開始人們以為,三體問題不過是比二體問題多一體,也沒什么難的嘛,就是多加一個方程而已。
然而事情并不簡單,當(dāng)物體增加到3個以后,一般來說,運(yùn)動軌跡就會變成亂七八糟的曲線,不再像橢圓那樣優(yōu)美簡單。

雖然三體問題雖然只包含三個方程,但數(shù)學(xué)上已經(jīng)證明,除了少數(shù)特殊情況,一般是無法找到解析解的,我們只能用數(shù)值模擬的方法求得近似解。
在歐拉、拉格朗日等大牛的努力下,數(shù)學(xué)家找到了一些特殊三體問題的精確解,比如三個等質(zhì)量物體繞“8”字運(yùn)動。

但是大多數(shù)三體問題還是無法求出精確解的,而且就像混沌里的蝴蝶效應(yīng)一樣,只要初始條件有一些細(xì)微的差異,就會導(dǎo)致結(jié)果大為不同。
為此需要有巨大算力的計(jì)算機(jī)去求解三體問題。由于系統(tǒng)的混沌性質(zhì),只能通過費(fèi)時費(fèi)力的迭代計(jì)算來找到給定初始化問題的解。
2015年,有人開發(fā)了開發(fā)了Brutus積分器,可以按任意精度計(jì)算出求出任意N體問題的近似收斂解。

但是,迭代計(jì)算隨著精度的不斷提高和模擬時間的增長,需要在內(nèi)存中保留的數(shù)字精度呈指數(shù)級增長,并且計(jì)算的步長要進(jìn)一步縮小。
神經(jīng)網(wǎng)絡(luò)可不是瞎蒙
既然用傳統(tǒng)的數(shù)值解法難度很大,不妨試一試神經(jīng)網(wǎng)絡(luò)。
不過最近神經(jīng)網(wǎng)絡(luò)的跨界比較多,有人用來預(yù)測余震,有人用來診斷心臟病,最后發(fā)現(xiàn)都不靠譜。
物理學(xué)家、數(shù)學(xué)家在使用深度神經(jīng)網(wǎng)絡(luò)之前,當(dāng)然不能隨便硬套,得先證明這不是玄學(xué)。
早在1991年,已經(jīng)有人用理論證明,如果神經(jīng)網(wǎng)絡(luò)的激活函數(shù)是連續(xù)、有界且非恒定值的,則可以在緊湊的輸入集上實(shí)現(xiàn)連續(xù)映射。
說得通俗些,一個包含足夠光滑激活函數(shù)的網(wǎng)絡(luò),能夠以任意精確度逼近函數(shù)及其導(dǎo)數(shù)。也就是說,用神經(jīng)網(wǎng)絡(luò)可以找到三位問題中物體運(yùn)動方程的近似解。
作者使用了由128個節(jié)點(diǎn)、10個隱藏層組成的前饋神經(jīng)網(wǎng)絡(luò)。使用ADAM優(yōu)化算法對數(shù)據(jù)進(jìn)行訓(xùn)練,其中每個epoch分為5000個batch,并將激活函數(shù)設(shè)置為ReLU。

訓(xùn)練集和驗(yàn)證集分別由9900和100個模擬數(shù)據(jù)組成。在每個模擬中,通過Brutus積分運(yùn)動方程求解,與神經(jīng)網(wǎng)絡(luò)的結(jié)果進(jìn)行對照。
通過輸入時間t和粒子的位置坐標(biāo),以上的神經(jīng)網(wǎng)絡(luò)返回其他粒子在該時刻的坐標(biāo),從而實(shí)現(xiàn)了近似求解三體問題。
在這個過程中,神經(jīng)網(wǎng)絡(luò)需要的時間平均比Brutus積分器快10萬倍,最高可以快一億倍。
不過,還有是該方法還是遭到了一些網(wǎng)友的質(zhì)疑,原因是它只解決了在二維平面內(nèi)的三體問題,粒子的初速度也限制為0。
而且神經(jīng)網(wǎng)絡(luò)在求解問題的時候似乎沒有遵循能量守恒定律,最后靠作者引入了一個“能量投影層”,才實(shí)現(xiàn)了誤差10-5的結(jié)果。

但是這種方法為我們快速低成本計(jì)算航天器軌道提供了一種解決思路。
論文地址:
https://arxiv.org/abs/1910.07291