深度學習求解「三體」問題,計算速度提高一億倍
這篇論文試圖透過深度神經網路來解決天體力學中著名的三體問題。早在牛頓的時代,三體問題就已經被提出,即三個可視為質點的天體在相互之間萬有引力作用下的運動規律問題,至今無法被精確求解。與之相對的,描述兩個天體相互運動的二體問題可以透過牛頓力學完美解決。三體問題在國內的知名度部分來自於科幻小說家劉慈欣的小說《三體》,其中就描述了一個生活在三體星系的地外文明,忍受著三顆恆星複雜多變的執行軌跡帶來的變化多端的天氣,由此產生了星際 移 民並試圖佔領地球的故事。
從數學上說,每一個天體在另外兩個天體的萬有引力作用下的運動方程可以表示為3個二階的常微分方程或6個一階的常微分方程[1]。在三體問題中,對應了求解18階方程。然而,物理定律只給了我們10個等式,包含3個質心方程、3個動量守恆方程、3個角動量守恆方程和1個能量守恆方程。因此從數學上完美求解三體問題是不可能的。
既然如此,數學家們擱置了一般情況下的三體問題求解,轉而尋找特定條件下的解,例如法國數學家龐加萊就提出了限制性三體問題,即兩體的質量極大,第三體不能對它們造成擾動的情況。在研究這個問題的過程中,龐加萊提出了混沌理論,並且發現了三體問題中的“蝴蝶效應”:如果初始狀態有一個小的擾動,那麼後來的狀態會有極大的不同。
與數學家們不同,電腦科學家採取了另一種思路,即透過近似和數值技術來計算分析三體之間的關係。到了2015年,研究人員提出了一個名為Brutus的積分器,基於Bulirsch-Stoer演算法可以求解N體問題的任意給定精度的近似收斂解。然而這種方法對記憶體的要求隨著精度的增高和模擬時間的增長而呈指數級增長。
論文標題:Newton vs the machine:solving the chaotic three-body problem using deep neural networks
下載連結:
在這篇論文中,來自愛丁堡大學、劍橋大學、阿威羅大學、萊頓大學的研究人員試圖透過深度神經網路來解決三體的計算問題。神經網路模型取得了跟Brutus非常接近的計算結果,但是速度卻快了一億倍。如此令人震驚的速度提升效果引發了數學家和計算機學家對於這篇論文的關注和大量討論。
模型和實驗
作者首先簡化了三體問題,限制為三個質量相等、初始速度為零的粒子在一個平面上的引力問題。如圖1所示:
圖1. 三個粒子的初始位置。
粒子1的初始位置x1=(1,0)代表了距離原點的單位距離,粒子2的初始位置x2在圖1中的綠色區域中隨機產生,而由於對稱性,粒子3的初始位置x3=-x1-x2。圖1中的紅點代表粒子2和粒子3重合的特殊情況,此時x2=x3=(-0.5, 0)。
然後作者們利用Brutus模擬求解了10000次它們的三體運動,完成這些模擬花費了10天的時間。接下來對神經網路模型而言,作者們使用其中的9900次模擬作為訓練集,100次模擬作為訓練集。這篇論文中使用的深度神經網路模型是一個包含10個隱藏層、128個節點前饋神經網路,如圖2所示:
圖2. 牛頓肖像畫和神經網路模型。
訓練過程採用了Adam最佳化器,每個epoch分為5000個batch,啟用函式使用了ReLU。訓練過程中平均絕對誤差隨epoch變化的情況如圖3所示,
圖3. 平均絕對誤差vs epoch。
其中實線代表訓練集,虛線代表驗證集,3.9、7.8和10分別代表了使用的資料量的大小,特別的,10代表使用了全部10天生成的資料,即全部資料集。
圖4. 神經網路和Brutus結果的對比。
在圖4中,作者給出了訓練好的模型與Brutus計算結果的對比,左半邊為訓練集上的對比,右半邊為驗證集上的對比。三種顏色的曲線代表三個例子的運動軌跡,而由於結果太接近,實線代表的神經網路的軌跡和虛線代表的Brutus的軌跡幾乎無法分辨,代表經過訓練的神經網路令人滿意地再現了粒子之間的相互作用。而神經網路的計算時間(大約是10的負三次方秒)比Brutus快了十萬倍(有時候甚至是一億倍)。進一步,作者們也對比了神經網路模型對於初始位置擾動的敏感性。透過在x2的初始位置上加入一個很小的擾動,神經網路模型依舊取得了跟Brutus相近的結果,如圖5所示。
圖5. 初始位置的敏感依賴。
最後,作者們也嘗試利用神經網路來預測粒子的速度資訊,但是神經網路在求解問題的時候似乎沒有遵循能量守恆定律,作者們在人為加入一個能量投影層之後,才使得預測誤差從10-2降低到了10-5,如圖6所示。
圖6. 相對能量誤差。
結 論
這篇論文成功驗證了神經網路在混沌系統模擬中的應用,能夠以更快的速度完成傳統的方法(例如Brutus)的模擬工作,從而展示了在解決類似的複雜性問題上的應用潛力。
這篇論文的不足也是很明顯的。很多人認為這篇論文只是一種概念上的驗證,因為論文中的神經網路模型只能解決二維平面內並且初速度為0的三體問題。深度學習 近 年來的火爆使得它的應用早於超出了傳統的計算機領域。在物理領域,曾經就有研究將神經網路應用於模擬中子星碰撞[3]。然而這種廣泛的應用也引起了研究人員的擔憂和質疑,例如Nature上一篇利用深度學習預測地震餘震[4]的論文就被質疑為深度學習方法的“濫用”。目前來看深度神經網路還無法完全替代Brutus這樣的工具。正如作者所說的,未來他們會考慮構建一個混合系統,當計算負擔過重時引入神經網路,直到可以繼續使用Brutus方法計算,從而能夠更快地模擬星體之間的運動。
參考:
[1] 淺談三體問題, 甘慶雨, 2014.
[2] Boekholt T, Zwart S P. On the reliability of N-bodysimulations[J]. Computational Astrophysics and Cosmology, 2015, 2(1): 2.
[3] Adamczewski-Musch J, Arnold O, Behnke C, et al. Probing densebaryon-rich matter with virtual photons[J]. Nature Physics, 2019, 15:1040-1045.
[4] DeVries P M R, Viégas F, Wattenberg M, et al. Deep learning ofaftershock patterns following large earthquakes[J]. Nature, 2018, 560(7720):632.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2662684/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 淺談深度學習落地問題深度學習
- [提問交流]OneThink學習日記(更有很多問題求解答!)
- 淺談深度學習的落地問題深度學習
- 計算機視覺與深度學習公司計算機視覺深度學習
- 計算機視覺中的深度學習計算機視覺深度學習
- 深度學習中需要的矩陣計算深度學習矩陣
- 大型計算如何為深度學習火箭助力深度學習
- 雲端計算時代的深度學習訓練深度學習
- 深度學習高效計算與處理器設計深度學習
- 深度:如何從系統層面優化深度學習計算?優化深度學習
- 深度學習之新聞多分類問題深度學習
- 史丹佛—深度學習和計算機視覺深度學習計算機視覺
- 用c++設計哲學家進餐問題的求解C++
- A-深度學習面試題深度學習面試題
- 高等數學隨記 - 一道極限計算題的簡化求解
- 計算機視覺與深度學習應用關係計算機視覺深度學習
- OpenCV 例項解讀:深度學習的計算與加速OpenCV深度學習
- 深度學習問題記錄:Building your Deep Neural深度學習UI
- 深度強化學習的 18 個關鍵問題強化學習
- 自我學習與理解:keras框架下的深度學習(三)迴歸問題Keras框架深度學習
- 程式設計題求解程式設計
- 深度學習運算元優化-FFT深度學習優化FFT
- MIT研究員警告:深度學習已經接近計算極限MIT深度學習
- 8個計算機視覺深度學習中常見的Bug計算機視覺深度學習
- 計算深度學習評價指標Precision、Recall、F1深度學習指標
- 如何從系統層面最佳化深度學習計算?深度學習
- 深度學習也解決不掉語音識別問題深度學習
- 深度強化學習中稀疏獎勵問題Sparse Reward強化學習
- 精度計算問題
- 利用遺傳學演算法求解工作分配問題演算法
- 演算法問題基於蟻群演算法求解求解TSP問題(JAVA)演算法Java
- 深度學習(一)深度學習學習資料深度學習
- 小白怎麼學習雲端計算?雲端計算學習大綱
- 學習雲端計算怎麼入門,如何學習雲端計算?
- 學習的速度
- 樹遞迴問題的求解遞迴
- 【深度學習】:一門入門3D計算機視覺深度學習3D計算機視覺
- 計算機視覺應用:深度學習的力量和侷限性計算機視覺深度學習