Learning to Simulate Complex Physics with
Graph Networks
進したい
書誌情報
• "Submitted to ICML 2020"
• 著者:Peter W. Battaglia達(Deepmind + Stanford大)
– Graph Netの強い方(Graph Netの提案者)
• Twitterでバズってた
概要
• 「剛体/液体/可変形体 + それらの相互作用」のシミュレーションの、汎用的
な学習フレームワーク
• 学習ベースではSoTA
• めちゃくちゃ汎化する, 幅広い物体に使える
– 予測ステップ数, 物体の量, 形。固体/液体/粘性/可変形。
• モチベーション
– 古典的なシミュレータは高コスト(計算資源, 速度)
– どれだけ頑張ってもわからない物理法則/物理パラメータがある
– (将来的に)観測データから直で学んでほしい
• ひとこと
– trainableなパラメタが多くて賢い。"高次元科学"してる感じ。
結果が映えてる
https://sites.google.com/view/learni
ng-to-simulate/home#h.p_ne1gyU
G1RebB
青:液体,赤:粘性,茶色:砂
シンプルな学習データだけでいろいろできるように⇨
アジェンダ
問題設定
手法
既存手法
実験
問題設定
- 学習用の粒子レベルのデータは与えられる
- 1k~20kの粒子, 100~1k step
- trainと同じデータ分布のtestで評価 + Out of distributionなタスクでも評価
- 様々な問題設定が
ある(a~h)
- +3Dタスク
- 単一種類の粒子を
学習(a,b,c)、坂が
ある(d)、3種類の
粒子を同時に学習
(e)、等
Non-学習ベースの手法
- “smoothed particle hydrodynamics” (SPH)(液体)
- 自身と周りの粒子の密度で運動方程式を近似して、速度の変化を求める
- (Monaghan, 1992)
- “material point method” (MPM) (deformable)
- (Sulsky et al., 1995)
- 有限要素法に似てるらしい(?)
- “position-based dynamics” (PBD) (deformable)
- (Muller et al. ¨ , 2007)
- 粒子同士が一定の距離を保つという拘束条件を
解くらしい(?)
手法:Graph Network-based Simulators(GNS)
- 思想:リッチな(物理的な)状態は、粒子のグラフ構造+メッセージパッシング
で表現される
- 簡単な物理的な裏付け:「エネルギーと運動量の交換」がメッセージパッシングに相
当
- 空間不変性という強い帰納バイアスが入れられる
- 提案手法はSPHを表現できる(内包)
- (GNの途中で密度カーネルを作って圧力を評価すればいい)
- 勝手に粒子間の物理法則を見つけてくれる(はず)
- Xt: 各粒子の座標( )等
- s: シミュレーター
- dθ: ダイナミクス
- Y: Updateの入力となる何か
- 今回は≒加速度
- Update: 更新関数
- 何でもいい
- 今回はYに加速度
を期待して、以下で
Xt+1( )を求める
全体像
sθ
xt xt+1
- Update関数だけ(物理をもとに)定めて、(半陰的オイラー法)
後は基本学習してもらう
- Xt: 各粒子の座標( )等
- Encoder
- ノードを少しつないでグ
ラフを作る
- ノード/エッジに
Embeddingする(v,e)
- Processor
- グラフNNでv,eを
M回更新
- Decoder
- 更新後のvでy(加速度)
を推論
全体像
sθ
xt xt+1
Encoder
入力:
- 入力Xは、粒子の座標 + 5ステップ前までの
速度 (+ 重力、外力など)
- v: ノードベクトル
- e: エッジベクトル
- ただしc: 相対距離、方向ベクトル
- 変位とかバネ係数とかが相当
- embedding_dim: 128
- NN: 隠れ層2層, relu, layer_norm
- Processor,Decoderでも同じ構造
4ステップ前の速度↑ 現在の速度↑
- 5ステップ分も入れるのが
”高次元科学”っぽい
Processor
- vの更新
- eの更新(eは有向)
- 入力はすべてconcatしてMLP
- Mステップの更新で、毎回別のパラメ
タのGNを使う(unshared)
[DL輪読会]Relational inductive biases, deep
learning, and graph networks
GN(Graph Net) 昔の中川さんの輪読で登場
Decoder
1回NN使うだけ。
目的関数
- 1stepの予測のみで学習
- 学習時に自らの予測で誤差がたまらなくていいよね
- その他工夫点:
- 入力データに正規分布でノイズを加える
- テスト時には自らの予測で誤差ができて、入力がOut of Distributionになりかねないので耐性を
つける
- ターゲット(加速度)を正規化する
- 学習は早くなったけど精度は別に変わらなかった
重要なハイパラ
- ハイパラにもロバストだった
- 論文の実験はすべて同じハイパラで行った
- (上がtrain, 下がtest)
- c,d
- processorでMステップ
forwardする際のNNを変
えるか否か
- e,f
- ノードをつなげる半径
- g,h
- 入力のノイズ
- i, j
- 入力が相対座標か絶対
座標か
データセット
- 主にTaich MPMで作成(Diff-Taichではない)
- https://github.com/yuanming-hu/taichi_mpm
- SIGGRAPH 2018
- MITライセンス!
- python APIがある
- サンプルが充実してる
- (この研究グループ何者)(MIT)
比較手法:CConv
- LAGRANGIAN FLUID
SIMULATION WITH
CONTINUOUS
CONVOLUTIONS
- ICLR 2020 accept
- Intel
- Convベース
- non-graph
- めちゃくちゃ高速
- CConvはGSNの
特別な場合らしい
比較手法:CConv
- LAGRANGIAN FLUID
SIMULATION WITH
CONTINUOUS
CONVOLUTIONS
- 3つに分けてembedding
- 外壁
- 周囲の粒子
- 注目してる粒子
- 特殊なカーネルで2Dマップを作る
- △1ステップ前の状態だけで決めてる
- △流体/一種類の予測に特化
比較手法:DPI
- Learning Particle Dynamics for Manipulating Rigid Bodies,
Deformable Objects, and Fluids
- ICLR 2019 accept
- Tenenbaumさん、MIT
- 実機応用もしてる(おにぎりをこねる)
- 画像から点群を推論し、目的の形になるように適
切な把持方向を探索してrollout
- Learning Particle Dynamics for Manipulating Rigid Bodies,
Deformable Objects, and Fluids
比較手法:DPI
- ほぼGNSと同じ
- △ 1ステップ前の情報しか使わない
- △ M回のmessage passingで同じパラメータを使っ
ている
- 〇 ただM回message passingしてるだけではなかな
か遠くまで伝わらないので、階層的なグラフを作る
- 粒子をいくつかのクラスターに(機械的に)分けて、
それぞれで代表点(root)を作る
- root2leaf, leaf2root, root2rootのエッジを追加
定量比較
• CConv(SoTA)とのみ比較
– MSEでの比較(⇩)
– CConvがL1,L2誤差だけで評価してた
• 「最終状態だけが欲しいときとかもあるし、ほか
の評価も入れた方がいいよね」
– 他の評価指標(⇨)
• MMD(maximum mean discrepancy)
• OT(Optimal Transport(最適輸送))
• どちらも順序に依存しない評価指標
• (ヒルベルト空間が出てきた...)
うまくいかなかったケース
- 長期の予測で剛体の方が崩れる
- オリジナルの形を記憶し続けるのが難しい
- 剛体は変形しないという(特殊な)制約を入れてい
ない
- へばりついて滑り落ちないことがある
- 悪いシード
- へばりつくのはtrainデータでは珍しいの現象なの
で、もっとデータを与える必要がある
まとめ
• 広く使える粒子ベースの学習フレームワークを提案した
– 空間不変性という強い制約 + trainableパラメータを広く配置
• 入力(5ステップ)、エッジ、グローバル、non-shared パラメタ(message-passing時)
• 将来的に未来予測、因果推論に使える

[DL輪読会]Learning to Simulate Complex Physics with Graph Networks