摘要
在這里爬立,我們提供了一個學(xué)習(xí)模擬的通用框架,并提供了一個單一模型的實現(xiàn)万哪,該模型可在各種具有挑戰(zhàn)性的物理領(lǐng)域(包括流體侠驯,剛性固體和可變形材料彼此相互作用)中產(chǎn)生最先進(jìn)的性能抡秆。我們的框架(我們稱為“基于圖網(wǎng)絡(luò)的模擬器”(GNS))表示帶有粒子的物理系統(tǒng)的狀態(tài),表示為圖中的節(jié)點吟策,并通過學(xué)習(xí)的消息傳遞來計算動力學(xué)琅轧。我們的結(jié)果表明,我們的模型可以從訓(xùn)練期間包含數(shù)千個粒子狀態(tài)的單一時間步長的預(yù)測踊挠,推廣到不同的初始條件乍桂,數(shù)千個時間步長,以及在測試時至少增加一個數(shù)量級的粒子效床。我們的模型對于跨各種評估指標(biāo)的超參數(shù)選擇具有魯棒性:長期表現(xiàn)的主要決定因素性能是消息傳遞步驟的數(shù)量睹酌,并通過用噪聲破壞訓(xùn)練數(shù)據(jù)來減輕錯誤的累積。我們的GNS框架是迄今為止最準(zhǔn)確的通用學(xué)習(xí)型物理模擬器剩檀,它有望解決各種復(fù)雜的正反問題憋沿。
介紹
復(fù)雜物理學(xué)的現(xiàn)實仿真器對許多科學(xué)和工程學(xué)科而言都是無價的,但是傳統(tǒng)仿真器的創(chuàng)建和使用可能非常昂貴沪猴。 構(gòu)建模擬器可能需要多年的工程工作辐啄,并且通常必須在狹窄的設(shè)置范圍內(nèi)犧牲通用性才能獲得準(zhǔn)確性。 高質(zhì)量的模擬器需要大量的計算資源运嗜,因此需要擴(kuò)展起來讓人望而卻步壶辜。 由于對基本物理和參數(shù)的了解不足或難以近似,即使最好的也常常是不準(zhǔn)確的担租。 一種有吸引力的傳統(tǒng)模擬器的替代方法是使用機(jī)器學(xué)習(xí)直接從觀察到的數(shù)據(jù)中訓(xùn)練模擬器砸民,但是對于大型的狀態(tài)空間和復(fù)雜的動力學(xué)而言,標(biāo)準(zhǔn)的端到端學(xué)習(xí)方法很難克服奋救。
在這里岭参,我們提出了一個從數(shù)據(jù)中學(xué)習(xí)模擬的通用框架-“基于圖形網(wǎng)絡(luò)的模擬器”(GNS)。 我們的框架強(qiáng)加了歸納偏見尝艘,其中豐富的物理狀態(tài)由相互作用粒子的圖表示演侯,而復(fù)雜的動力學(xué)則通過在節(jié)點之間學(xué)習(xí)到的消息傳遞來近似。
我們在一個深度學(xué)習(xí)架構(gòu)中實現(xiàn)了GNS框架背亥,發(fā)現(xiàn)它可以學(xué)習(xí)準(zhǔn)確地模擬流體秒际,剛性固體和可變形材料相互影響的各種物理系統(tǒng)。 我們的模型還可以很好地推廣到比經(jīng)過訓(xùn)練的系統(tǒng)更大的系統(tǒng)和更長的時間范圍隘梨。 雖然以前的學(xué)習(xí)模擬方法高度專注于特定任務(wù)程癌,但我們發(fā)現(xiàn)單個GNS模型在數(shù)十個實驗中表現(xiàn)良好舷嗡,并且通常對超參數(shù)選擇具有魯棒性轴猎。 我們的分析表明,性能是由以下幾個關(guān)鍵因素決定的:其計算遠(yuǎn)程交互作用的能力进萄,空間不變性的歸因偏差以及可減輕長時間模擬軌跡上的誤差累積的訓(xùn)練程序捻脖。
模型
一般的可學(xué)習(xí)模擬
我們假設(shè)是世界在時間t的狀態(tài)锐峭。在K個時間步上應(yīng)用物理動力學(xué)可得出狀態(tài)軌跡,
可婶。一個模擬器沿癞,s:X→ X, 通過將先前的狀態(tài)映射到因果的未來狀態(tài)來對動力學(xué)建模。 我們將模擬的“展開”軌跡表示為:
矛渴,它由
迭代計算 時間步長椎扬。 模擬器計算反映當(dāng)前狀態(tài)如何變化的動力學(xué)信息,并使用它來將當(dāng)前狀態(tài)更新為預(yù)測的未來狀態(tài)具温。 一個例子是數(shù)值微分方程求解器:這些方程計算動力學(xué)信息蚕涤,即時間導(dǎo)數(shù),而積分器是更新機(jī)制铣猩。
一個可學(xué)習(xí)的模擬器使用參數(shù)化函數(shù)近似器(
)計算動力學(xué)信息揖铜,其參數(shù)可以針對某些訓(xùn)練目標(biāo)進(jìn)行優(yōu)化。
表示動力學(xué)信息达皿,其語義由更新機(jī)制確定天吓。 可以將更新機(jī)制視為采用
的函數(shù),并使用
來預(yù)測下一個狀態(tài)峦椰,即
龄寞。 在這里,我們假設(shè)一個簡單的更新機(jī)制(一個Euler積分器)和代表加速度的Y汤功。 但是萄焦,也可以使用更復(fù)雜的更新程序,這些更新程序不止一次調(diào)用
冤竹,例如高階積分器拂封。
模擬圖上的消息傳遞
我們可學(xué)習(xí)的模擬方法采用物理系統(tǒng)的基于粒子的表示形式,即鹦蠕,其中N個粒子的每個xi表示其狀態(tài)冒签。物理動力學(xué)是通過粒子之間的相互作用來進(jìn)行近似的,例如钟病,在粒子之間進(jìn)行能量和動量的交換萧恕。粒子間相互作用的建模方式?jīng)Q定了模擬方法的質(zhì)量和普遍性,例如肠阱,可以模擬的效果和材料的類型票唆,方法在哪種情況下效果良好或較差等。我們對學(xué)習(xí)這些相互作用感興趣屹徘,從原則上講走趋,它應(yīng)該允許學(xué)習(xí)任何系統(tǒng)的動力學(xué)可以表示為粒子動力學(xué)赚瘦。因此至關(guān)重要的是荤堪,不同的
值應(yīng)使
跨越很大范圍的粒子間相互作用函數(shù)窿锉。
基于粒子的模擬可以看作是圖形上的消息傳遞褒侧。節(jié)點對應(yīng)于粒子,并且邊緣對應(yīng)于粒子之間的成對關(guān)系姨伟,在該關(guān)系上計算相互作用惩琉。我們可以在此框架中理解SPH之類的方法-節(jié)點之間傳遞的消息可能對應(yīng)于使用密度內(nèi)核評估壓力。
我們利用基于粒子的模擬器與圖上的消息傳遞之間的對應(yīng)關(guān)系來定義基于GN的通用夺荒。 我們的
分為三個步驟-編碼器瞒渠,處理器和解碼器。
編碼器定義技扼。 編碼器:將基于粒子的狀態(tài)表示,X嵌入為潛圖(latent graph),
在孝,其中
)淮摔。 節(jié)點嵌入
私沮,是粒子狀態(tài)的學(xué)習(xí)函數(shù)。添加有向邊以在具有某些潛在交互作用的粒子節(jié)點之間創(chuàng)建路徑和橙。邊緣嵌入
是相應(yīng)粒子ri; j的成對屬性的學(xué)習(xí)函數(shù)仔燕,例如,它們的位置之間的位移魔招,彈簧常數(shù)等晰搀。圖形級嵌入
可以表示諸如重力和磁場之類的全局屬性( 盡管在我們的實現(xiàn)中,我們只是將它們附加為輸入節(jié)點功能)办斑。
處理器定義外恕。 處理器:通過M個學(xué)習(xí)的消息傳遞步驟來計算節(jié)點之間的交互,以生成一系列更新的潛圖(latent graph)
)鳞疲。 它返回最終圖形
。 消息傳遞允許信息傳播并遵守約束:所需的消息傳遞步驟數(shù)可能會隨著交互的復(fù)雜性而擴(kuò)展蠕蚜。
解碼器定義尚洽。 解碼器:從最終潛圖的節(jié)點
)。 學(xué)習(xí)
應(yīng)該使
表示反映相關(guān)的動力學(xué)信息靶累,例如加速度腺毫,以便在語義上對更新過程有意義。
GNS實施細(xì)節(jié)
輸入和輸出表示挣柬。 每個粒子的輸入狀態(tài)向量分別代表位置潮酒,的先前速度序列,并具有捕獲靜態(tài)材料特性(例如邪蛔,水急黎,沙,團(tuán),剛性叁熔,邊界粒子)的特征委乌,
床牧。 如果適用荣回,系統(tǒng)的整體特性g包括外力和整體材料特性。 監(jiān)督學(xué)習(xí)的預(yù)測目標(biāo)是每粒子平均加速度
戈咳。 請注意心软,在我們的數(shù)據(jù)集中,我們只需要
向量:使用有限差分從
計算出
和
著蛙。
編碼器詳細(xì)信息删铃。 ENCODER通過為每個粒子分配一個節(jié)點并在“連接半徑” R內(nèi)的粒子之間添加邊來構(gòu)造圖形結(jié)構(gòu)G0,該半徑反映了粒子的局部相互作用踏堡,并且對于相同分辨率的所有模擬均保持不變猎唁。 為了生成卷展欄,在每個時間步上顷蟆,圖形的邊緣都由最近的鄰居算法重新計算诫隅,以反映當(dāng)前粒子的位置。
ENCODER將和
實現(xiàn)為多層感知器(MLP)帐偎,它們將節(jié)點特征和邊緣特征編碼為大小為128的潛在向量
和
逐纬。
我們測試了兩種ENCODER變體,以其使用絕對位置還是相對位置信息來區(qū)分削樊。 對于絕對變量豁生,的輸入是上述的xi,并帶有全局特征漫贞。
的輸入甸箱,即ri; j實際上沒有攜帶任何信息,因此被丟棄迅脐,其中
為
設(shè)置為可訓(xùn)練的固定偏差矢量摇肌。 相對的ENCODER變體旨在對絕對空間位置施加不變的歸納偏差。
被迫通過遮蔽來忽略xi內(nèi)的pi信息仪际。
被提供了相對位置位移围小,其大小為
。 兩種變體都將全局屬性g連接到每個xi上树碱,然后傳遞給“
肯适。
處理器詳細(xì)信息。 我們的處理器使用具有相同結(jié)構(gòu)的MGN(其中M為超參數(shù))堆棧成榜,作為內(nèi)部邊緣和節(jié)點更新功能的MLP框舔,以及共享或不共享的參數(shù)。 我們使用沒有全局功能或全局更新(類似于交互網(wǎng)絡(luò))的GN,并且在輸入和輸出潛在節(jié)點與邊屬性之間存在殘余連接刘绣。
解碼器詳細(xì)信息樱溉。 我們解碼器的學(xué)習(xí)函數(shù),是MLP。 在DECODER之后纬凤,使用Euler積分器更新將來的位置和速度福贞,因此
對應(yīng)于加速度
,具有2D或3D尺寸停士,具體取決于物理域挖帘。 如上所述,監(jiān)督訓(xùn)練目標(biāo)只是這些
向量恋技。
神經(jīng)網(wǎng)絡(luò)參數(shù)化拇舀。 所有MLP都有兩個隱藏層(具有ReLU激活),其后是一個未激活的輸出層蜻底,每個層的大小為128骄崩。所有MLP(輸出解碼器除外)之后是LayerNorm(層。 我們通常發(fā)現(xiàn)訓(xùn)練穩(wěn)定性得到了改善薄辅。
訓(xùn)練
軟件要拂。 我們使用TensorFlow 1,Sonnet 1和“ Graph Nets”庫實施了模型长搀。
訓(xùn)練噪聲宇弛。 對復(fù)雜而混亂的仿真系統(tǒng)進(jìn)行建模需要模型減輕長時間部署時的錯誤累積。 因為我們在基本事實單步數(shù)據(jù)上訓(xùn)練我們的模型源请,所以永遠(yuǎn)不會為它們提供被此類累積噪聲破壞的輸入數(shù)據(jù)枪芒。 這意味著,當(dāng)我們通過向模型提供自己的噪聲谁尸,先前的預(yù)測作為輸入來生成推廣時舅踪,其輸入不在訓(xùn)練分布范圍內(nèi)這一事實可能導(dǎo)致其產(chǎn)生更大的誤差,從而迅速累積進(jìn)一步的誤差良蛮。 我們使用一種簡單的方法使模型對嘈雜的輸入更具魯棒性:在訓(xùn)練過程中抽碌,我們以隨機(jī)行走噪聲破壞模型的輸入位置和速度,因此訓(xùn)練分布更加 與推出期間產(chǎn)生的分布相似决瞳。
正則化货徙。我們使用訓(xùn)練期間在線計算的統(tǒng)計數(shù)據(jù),將所有輸入和目標(biāo)向量的元素歸一化為零均值和單位方差皮胡。初步實驗表明痴颊,歸一化可加快訓(xùn)練速度,但融合性能并未得到明顯改善屡贺。
損失函數(shù)和優(yōu)化程序蠢棱。我們從訓(xùn)練軌跡中隨機(jī)采樣粒子狀態(tài)對锌杀,計算目標(biāo)加速度
,并根據(jù)預(yù)測的每個粒子加速度計算L2損失泻仙,即
糕再。我們使用最小批量大小2,使用Adam優(yōu)化器針對這種損失優(yōu)化了模型參數(shù)
玉转。我們最多執(zhí)行了20M梯度更新步驟突想,指數(shù)學(xué)習(xí)速率從
下降到
。盡管模型可以以更少的步驟進(jìn)行訓(xùn)練冤吨,但我們避免使用過高的學(xué)習(xí)率來減少數(shù)據(jù)集之間的差異蒿柳,并使設(shè)置之間的比較更加公平饶套。
我們在訓(xùn)練過程中通過在5個保持不變的驗證軌跡上進(jìn)行全長展示來定期評估我們的模型漩蟆,并記錄了相關(guān)的模型參數(shù)以獲得最佳展示MSE。當(dāng)我們觀察到MSE的下降幅度可忽略不計時妓蛮,我們停止了訓(xùn)練怠李,在GPU / TPU硬件上,對于較小蛤克,較簡單的數(shù)據(jù)集捺癞,MSE通常在幾個小時內(nèi);對于較大构挤,更復(fù)雜的數(shù)據(jù)集髓介,則長達(dá)一周。
模型效果以及動畫:https://www.linkresearcher.com/theses/bb7cfd1d-20a8-4f08-8a2b-a64dd04e37b6