物理学と機械学習の融合最前線

この記事について

この記事では物理学数値シミュレーションと機械学習を融合させた最近の研究を2つ紹介します。

1つ目の”Newton vs the machine: solving the chaotic three-body problem using deep neural networks[1]”という研究は、解析的には解けない三体問題のシミュレーションをDNNで近似することができ高速化できた、という研究です。

2つ目に紹介する”Hamiltonian Graph Networks with ODE Integrators[2]”は、質点の軌跡を次のステップとの差分を直接予測するのではなく、ハミルトニアンを介して予測すると高精度な予測ができた、という研究です。

Newton vs the machine: solving the chaotic three-body problem using deep neural networks

この論文はPhilip G. Breenらによって、2019/10/16に投稿されました。この論文の内容をざっくりまとめると下記のようになります。

問題設定

時刻0で3つの等しい質量をもつ静止した質点があり、万有引力で引き合って動く3質点が時刻tでそれぞれどの位置にいるかをDNNで予測するタスク設定です。Brutusというシミュレーションソフトを使って、初期位置を変えながら3つの質点の軌道データセットを作り、学習と予測を行います。その際、x1の初期位置は毎回固定、x2のみが緑のエリアの範囲内で初期位置がランダムに変動、x3は重心が原点にくるように初期位置が設定されます。

軌道データのサンプルは以下のようになっています。ANNはArtifical Neural Networkの略です。

方針の直感的解釈とアプローチ

入力:初期位置情報と予測したい時刻、出力:予測したい時刻における質点の座標、をもつ10層の単純なニューラルネットワークを用いています。

x1の初期位置は座標(1,0)に固定し、x2はFig1の緑のエリアでランダムに初期位置を設定、重心を原点で保つようにx3の初期位置を生成しているため、実質x2の初期位置情報があれば全て定まります。よって、入力にはx2の初期座標と予測したい時刻tを入れれば十分です。出力も同様で、x1,x2が定まればx3の座標が自動的に定まる(重心は動かない)ので、x1,x2を出力させています。

シミュレーション環境の制約が大きいように思うかもしれませんが、質点1を基準としてスケーリングと系の回転変換をかけ、重心座標を原点にもってくるという変換を加えていると解釈すれば、質点2の位置に多少制約はあれど三体問題のシミュレーション環境としては十分に思えます。つまり、物理的な事前知識を用いてモデルの出力が物理的におかしくならない(重心が動く等)ように制約をかけ、問題設定を簡単にしています。

結果と考察

学習結果は下記の通りです。予測先の時刻の範囲別に結果を出力していますが、一番近い時刻のみを予測する水準で一番ロスが落ちています。そこではMAE(予測値と正解値の差の絶対値)が10^-2のオーダーまで落ちているので、Figure.4のスケール感からするとほとんど誤差がない程度にまで学習できていることがわかります。

下記Figure.5は、左上のx2初期位置(-2.0,0.3)を少し摂動を加えて、x2の軌跡がどう変化するかを5つの時刻t ∈ {0.0, 0.95, 1.9, 2.95, 3.8}で可視化した図です。DNN(ANN)とシミュレーション(Brutus)ともに初期値に敏感ですが、軌道の初期値敏感性までよくDNNで近似できていると言えます。

また、あまり詳細は触れてなかったので私の想像が入っていますが、DNNの方が速い理由として『物理シミュレーションは目標時刻tまでを10² ~ 10³ オーダーで分割した各ステップでルンゲクッタ法を介して位置を更新する(逐次処理のため並列化不可)のに対し、NNの法は時刻tまで一発で算出する仕様かつDNNなので並列化可能なので速い』と考えられます。

Hamiltonian Graph Networks with ODE Integrators

Alvaro Sanchez-Gonzalezらによって、2019/9/27に投稿されました。この論文をざっくりまとめると下記のようになります。

問題設定

この研究では前述の研究同様、複数の質点の軌道をシミュレートする問題を解いています。しかし、ここでは時刻tの位置を直接予測するのではなく、次の時刻(ステップ)の運動量と位置を逐一予測して、それを足し合わせて数十〜数百ステップ後の運動量と位置を予測するODE(ordinary differential equation)を使った数値シミュレーションの形式です。

方針の直感的解釈とアプローチ

ステップnにおいて位置q,運動量pをもつ質点の系(,)_nが物理法則に基づいてステップn+1で(,)_(n+1)になる現象を予測する問題を設定し、(Figure1.a)、これをDeltaGN, OGN, HOGN3つのアプローチで解くことを考えます。

DeltaGNは(,)_nとステップ間の時間から、直接ステップ間の位置と運動量の差分,を予測し、それを足し合わせて次のステップの位置と運動量とします。

OGN(ODE graph network)とHOGN(Hamiltonian ODE graph network )ではRunge-Kutta法を用いた積分を介して次のステップを予測させます。

OGNでは、,の微分値をgraph networkで予測し、Runge-Kutta法を用いた積分を使って予測します。積分による処理を陽に入れることによって、モデルにODEを使った数値シミュレーションの制約をモデルに課すことができます。

HOGNでは、微分値を予測するのではなく、ハミルトニアンを予測させて、それを介して位置と運動量の微分値を計算します。そしてRunge-Kutta方による積分処理によって次のステップの位置と運動量を予測します。こうすることで、数値シミュレーションの制約だけでなく、物理学に従った制約をモデルに課すことができます。

結果と考察

Figure2 a, c-gの予測精度を見てみると、DeltaGN, OGNは予測値とずれが生じているのに対して、Hamiltonianを用いた数値シミュレーションとHOGNはほとんどずれが生じていないことがわかります。(元データのシミュレーションとHamiltonianを用いた数値シミュレーション水準の値がずれいてるのは、おそらく使ったソルバーが異なるためだと思われます)

エネルギーが系で保存されているかどうかを確認してみると(物理学的には保存されているはず)、HOGNはOGNより少し悪いですが、Hamiltonianを用いた数値シミュレーションと同等の精度を出しています。

次に、物理現象予測としてモデルが構築されているのかを確認します。まず学習と異なるで予測した場合をみてみます。灰色でハイライトされている部分が学習で用いたです。DeltaGNは学習に用いてないだと誤差が大きくなっているのに対し、OGN, HOGNは少々異なっていてもハミルトニアンを用いた物理シミュレーションと同様の動き方をしていることがわかります(Figure3 a-b)。

次のRunge-Kutta法の次数を変えた場合にどのような挙動になるか見てみます。一般に次数を大きくすると積分の精度が上がるため、数値シミュレーションの精度も上がります。もちろんHamiltonianを使ったシミュレーションはそのような挙動をしているのですが、HOGNのも同様の挙動をしています。一方、次数を変えてもOGNの精度はそこまで大きく向上しません(Figure3 c-d)。

最後に学習時とテスト時でRunge-Kutta法の次数を変えた場合を、OGNとHOGNでみてみます。ODEでは次数を大きくすると精度は上がりますが、HOGNにもだいたいそのような傾向がみられます。一方、OGNは学習時の次数以外では次数の大小関係なく精度が悪化します。

これらのことを考えると、OGNは物理モデルではなく、別の関数を近似していると考えられます。(Figure3 e-f)

まとめ

今回の記事では、物理シミュレーションをニューラルネットで近似解を出すという研究を2つ紹介しました。簡単なニューラルネットを使って近似解が高速に導出できるとなると、スパコンを使わずとも手持ちのラップトップで研究ができるので、研究の幅が広がります。

今回は質点のシミュレーションですが、物性シミュレーションである第一原理計算にも同じようなことをやっているらしいです。これも高コストな物理シミュレーションなので、今回紹介したような手法で高速化できるとマテリアルインフォマティクスがより効率的に行えるかもしれません。

。論文の一言紹介とかやってます。

Reference

  1. Philip G. Breen et al. Newton vs the machine: solving the chaotic three-body problem using deep neural networks. :1910.07291, 2019
  2. Alvaro Sanchez-Gonzalez et al. Hamiltonian Graph Networks with ODE Integrators. 1909.12790, 2019

Data Scientist (Engineer) in Japan Twitter : https://twitter.com/AkiraTOSEI LinkedIn : https://www.linkedin.com/mwlite/in/亮宏-藤井-999868122