論文筆記-Learning to Simulate Complex Physics with Graph Networks圖網絡模擬器

論文原文

摘要

在這里,我們提供了一個學習模擬的通用框架,并提供了一個單一模型的實現,該模型可在各種具有挑戰性的物理領域(包括流體,剛性固體和可變形材料彼此相互作用)中產生最先進的性能。我們的框架(我們稱為“基于圖網絡的模擬器”(GNS))表示帶有粒子的物理系統的狀態,表示為圖中的節點,并通過學習的消息傳遞來計算動力學。我們的結果表明,我們的模型可以從訓練期間包含數千個粒子狀態的單一時間步長的預測,推廣到不同的初始條件,數千個時間步長,以及在測試時至少增加一個數量級的粒子。我們的模型對于跨各種評估指標的超參數選擇具有魯棒性:長期表現的主要決定因素性能是消息傳遞步驟的數量,并通過用噪聲破壞訓練數據來減輕錯誤的累積。我們的GNS框架是迄今為止最準確的通用學習型物理模擬器,它有望解決各種復雜的正反問題。

介紹

復雜物理學的現實仿真器對許多科學和工程學科而言都是無價的,但是傳統仿真器的創建和使用可能非常昂貴。 構建模擬器可能需要多年的工程工作,并且通常必須在狹窄的設置范圍內犧牲通用性才能獲得準確性。 高質量的模擬器需要大量的計算資源,因此需要擴展起來讓人望而卻步。 由于對基本物理和參數的了解不足或難以近似,即使最好的也常常是不準確的。 一種有吸引力的傳統模擬器的替代方法是使用機器學習直接從觀察到的數據中訓練模擬器,但是對于大型的狀態空間和復雜的動力學而言,標準的端到端學習方法很難克服。

在這里,我們提出了一個從數據中學習模擬的通用框架-“基于圖形網絡的模擬器”(GNS)。 我們的框架強加了歸納偏見,其中豐富的物理狀態由相互作用粒子的圖表示,而復雜的動力學則通過在節點之間學習到的消息傳遞來近似。

我們在一個深度學習架構中實現了GNS框架,發現它可以學習準確地模擬流體,剛性固體和可變形材料相互影響的各種物理系統。 我們的模型還可以很好地推廣到比經過訓練的系統更大的系統和更長的時間范圍。 雖然以前的學習模擬方法高度專注于特定任務,但我們發現單個GNS模型在數十個實驗中表現良好,并且通常對超參數選擇具有魯棒性。 我們的分析表明,性能是由以下幾個關鍵因素決定的:其計算遠程交互作用的能力,空間不變性的歸因偏差以及可減輕長時間模擬軌跡上的誤差累積的訓練程序。

模型

一般的可學習模擬

我們假設X^t \in \mathcal{X}是世界在時間t的狀態。在K個時間步上應用物理動力學可得出狀態軌跡,X^{t:k} = (X^{t0}, .. X^{tK})。一個模擬器,s:X→ X, 通過將先前的狀態映射到因果的未來狀態來對動力學建模。 我們將模擬的“展開”軌跡表示為:X^{t0:K} =(X^{t0}, \widetilde{X}^{t1},...,\widetilde{X}^{tk}),它由\widetilde{X}^{tk+1} = s(\widetilde{X}^{tk})迭代計算 時間步長。 模擬器計算反映當前狀態如何變化的動力學信息,并使用它來將當前狀態更新為預測的未來狀態。 一個例子是數值微分方程求解器:這些方程計算動力學信息,即時間導數,而積分器是更新機制。

一個可學習的模擬器s_{\theta}使用參數化函數近似器(d_{\theta}: \mathcal{X} \rightarrow \mathcal{Y})計算動力學信息,其參數可以針對某些訓練目標進行優化。 Y \in \mathcal{Y}表示動力學信息,其語義由更新機制確定。 可以將更新機制視為采用\widetilde{X} ^{tk}的函數,并使用d_{\theta}來預測下一個狀態,即\widetilde{X} ^{tk+1} = Update(\widetilde{X} ^{tk}, d_{\theta})。 在這里,我們假設一個簡單的更新機制(一個Euler積分器)和代表加速度的Y。 但是,也可以使用更復雜的更新程序,這些更新程序不止一次調用d_{\theta},例如高階積分器。

模擬圖上的消息傳遞

我們可學習的模擬方法采用物理系統的基于粒子的表示形式,即X =(x_{0},...,x_{N}),其中N個粒子的每個xi表示其狀態。物理動力學是通過粒子之間的相互作用來進行近似的,例如,在粒子之間進行能量和動量的交換。粒子間相互作用的建模方式決定了模擬方法的質量和普遍性,例如,可以模擬的效果和材料的類型,方法在哪種情況下效果良好或較差等。我們對學習這些相互作用感興趣,從原則上講,它應該允許學習任何系統的動力學可以表示為粒子動力學。因此至關重要的是,不同的\theta值應使d_{\theta}跨越很大范圍的粒子間相互作用函數。

基于粒子的模擬可以看作是圖形上的消息傳遞。節點對應于粒子,并且邊緣對應于粒子之間的成對關系,在該關系上計算相互作用。我們可以在此框架中理解SPH之類的方法-節點之間傳遞的消息可能對應于使用密度內核評估壓力。

我們利用基于粒子的模擬器與圖上的消息傳遞之間的對應關系來定義基于GN的通用d_{\theta}。 我們的d_{\theta}分為三個步驟-編碼器,處理器和解碼器。

編碼器定義。 編碼器:\mathcal{X} \rightarrow \mathcal{G}將基于粒子的狀態表示,X嵌入為潛圖(latent graph), G0 = ENCODER(X),其中G =(V,E,u),v_i \in V和e_{i,j} \in E)。 節點嵌入v_i =\varepsilon^v(x_i),是粒子狀態的學習函數。添加有向邊以在具有某些潛在交互作用的粒子節點之間創建路徑。邊緣嵌入e_{i,j} =\varepsilon^e(r_{i, j})是相應粒子ri; j的成對屬性的學習函數,例如,它們的位置之間的位移,彈簧常數等。圖形級嵌入u可以表示諸如重力和磁場之類的全局屬性( 盡管在我們的實現中,我們只是將它們附加為輸入節點功能)。

處理器定義。 處理器:\mathcal{G} \rightarrow \mathcal{G}通過M個學習的消息傳遞步驟來計算節點之間的交互,以生成一系列更新的潛圖(latent graph)G =(G^1,...... G^M),其中G^{m + 1} = GN^{m + 1}(G^m))。 它返回最終圖形G^M = PROCESSOR(G^0)。 消息傳遞允許信息傳播并遵守約束:所需的消息傳遞步驟數可能會隨著交互的復雜性而擴展。

解碼器定義。 解碼器:\mathcal{G} \rightarrow \mathcal{Y}從最終潛圖的節點y^i = \delta^v(v^{M}_i))。 學習\delta^v應該使\mathcal{Y}表示反映相關的動力學信息,例如加速度,以便在語義上對更新過程有意義。

GNS實施細節

輸入和輸出表示。 每個粒子的輸入狀態向量分別代表位置,C = 5的先前速度序列,并具有捕獲靜態材料特性(例如,水,沙,團,剛性,邊界粒子)的特征,x^{tk}_i = [p^{tk}_i, \dot{p}^{tk-C+ 1}_i, ......, \dot{p}^{tk}_i, f_i]。 如果適用,系統的整體特性g包括外力和整體材料特性。 監督學習的預測目標是每粒子平均加速度\dot{p_i}。 請注意,在我們的數據集中,我們只需要p_i向量:使用有限差分從p_i計算出\dot{p_i}\ddot{p_i}

編碼器詳細信息。 ENCODER通過為每個粒子分配一個節點并在“連接半徑” R內的粒子之間添加邊來構造圖形結構G0,該半徑反映了粒子的局部相互作用,并且對于相同分辨率的所有模擬均保持不變。 為了生成卷展欄,在每個時間步上,圖形的邊緣都由最近的鄰居算法重新計算,以反映當前粒子的位置。

ENCODER將\varepsilon^v\varepsilon^e實現為多層感知器(MLP),它們將節點特征和邊緣特征編碼為大小為128的潛在向量v_ie_{i, j}

我們測試了兩種ENCODER變體,以其使用絕對位置還是相對位置信息來區分。 對于絕對變量,\varepsilon^v的輸入是上述的xi,并帶有全局特征。\varepsilon^e的輸入,即ri; j實際上沒有攜帶任何信息,因此被丟棄,其中e^0_iG_0設置為可訓練的固定偏差矢量。 相對的ENCODER變體旨在對絕對空間位置施加不變的歸納偏差。 \varepsilon^v被迫通過遮蔽來忽略xi內的pi信息。\varepsilon^e被提供了相對位置位移,其大小為r_{i, j} = [(p_i-p_j),|| p_i-p_j||]。 兩種變體都將全局屬性g連接到每個xi上,然后傳遞給“\varepsilon^u

處理器詳細信息。 我們的處理器使用具有相同結構的MGN(其中M為超參數)堆棧,作為內部邊緣和節點更新功能的MLP,以及共享或不共享的參數。 我們使用沒有全局功能或全局更新(類似于交互網絡)的GN,并且在輸入和輸出潛在節點與邊屬性之間存在殘余連接。

解碼器詳細信息。 我們解碼器的學習函數\delta^v,是MLP。 在DECODER之后,使用Euler積分器更新將來的位置和速度,因此y_i對應于加速度\ddor{p}_i,具有2D或3D尺寸,具體取決于物理域。 如上所述,監督訓練目標只是這些\ddor{p}_i向量。

神經網絡參數化。 所有MLP都有兩個隱藏層(具有ReLU激活),其后是一個未激活的輸出層,每個層的大小為128。所有MLP(輸出解碼器除外)之后是LayerNorm(層。 我們通常發現訓練穩定性得到了改善。

訓練

軟件。 我們使用TensorFlow 1,Sonnet 1和“ Graph Nets”庫實施了模型。

訓練噪聲。 對復雜而混亂的仿真系統進行建模需要模型減輕長時間部署時的錯誤累積。 因為我們在基本事實單步數據上訓練我們的模型,所以永遠不會為它們提供被此類累積噪聲破壞的輸入數據。 這意味著,當我們通過向模型提供自己的噪聲,先前的預測作為輸入來生成推廣時,其輸入不在訓練分布范圍內這一事實可能導致其產生更大的誤差,從而迅速累積進一步的誤差。 我們使用一種簡單的方法使模型對嘈雜的輸入更具魯棒性:在訓練過程中,我們以隨機行走噪聲\mathcal{N}(0,\sigma_v = 0.0003)破壞模型的輸入位置和速度,因此訓練分布更加 與推出期間產生的分布相似。

正則化。我們使用訓練期間在線計算的統計數據,將所有輸入和目標向量的元素歸一化為零均值和單位方差。初步實驗表明,歸一化可加快訓練速度,但融合性能并未得到明顯改善。

損失函數和優化程序。我們從訓練軌跡中隨機采樣粒子狀態對(x^{tk}_ i,x^{tk + 1}_i),計算目標加速度p^{tk}_ i,并根據預測的每個粒子加速度計算L2損失,即L(x^{tk}_i, x^{tk + 1}_i, \theta)= ||d_{\theta}(x^{tk}_i)-\ddot{p}^{tk}_i ||^2。我們使用最小批量大小2,使用Adam優化器針對這種損失優化了模型參數\theta。我們最多執行了20M梯度更新步驟,指數學習速率從10^{-4}下降到10^{-6}。盡管模型可以以更少的步驟進行訓練,但我們避免使用過高的學習率來減少數據集之間的差異,并使設置之間的比較更加公平。

我們在訓練過程中通過在5個保持不變的驗證軌跡上進行全長展示來定期評估我們的模型,并記錄了相關的模型參數以獲得最佳展示MSE。當我們觀察到MSE的下降幅度可忽略不計時,我們停止了訓練,在GPU / TPU硬件上,對于較小,較簡單的數據集,MSE通常在幾個小時內;對于較大,更復雜的數據集,則長達一周。

模型效果以及動畫:https://www.linkresearcher.com/theses/bb7cfd1d-20a8-4f08-8a2b-a64dd04e37b6

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,646評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,595評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,560評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,035評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,814評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,224評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,301評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,444評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,988評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,804評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,998評論 1 370
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,544評論 5 360
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,237評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,665評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,927評論 1 287
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,706評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,993評論 2 374

推薦閱讀更多精彩內容