物理法則を”発見”できる機械学習モデルAI Feynman

この記事について

この記事は、データから物理法則を「発見」できる”AI Feynman”[1]の解説記事です。この手法の概要以下のようになります。

物理法則をデータから見つけるという研究。ポイントは、次元削減や無次元量へ分解、並進対称性で変数を除去する等によって問題を簡単にすること。Neural Neworkでデータのパターンを学習させ、validationデータで並進対称性等の仮説検証を行う。

問題設定

ある物理現象に従うデータから物理法則を導くという問題設定を考えます。

物理法則とは何かというと、万有引力の法則のように質量等のシンボルで表せる等式のことです。データの中にある変数を使って、目的変数をうまく表現できるシンボル形式の数式を見つけます。

万有引力の法則

例えば、2つの物体間での万有引力を表す数式を”発見”することを考えてみます。このときに使えるデータとしては、目的変数である万有引力の値f、説明変数として2つの物体x座標、y座標、質量等です。ここで重要なのは、各データは物理的な単位((次元)をもっている、ということです。

万有引力に従うデータ

ここではメートル・キログラム・秒を基準にしたMKS単位系を使っています。例えば、質点のx,y座標の単位は[メートル]で、引力fは[kg・メートル/秒²]という単位を持っています。

Key Insight

AI Feynmanの特色は、「解けないほど難しければ、問題を簡単にして再度挑戦する」という部分です。図にすると以下のようになります。

手法(Method)

AI Feynmanでは、データを表現する法則が見つかるまで、『対称性の導入・分離等で問題を分割、簡略化』しながら『次元解析→簡単なフィッティング→組み合わせの総当たり』のサイクルを繰り返すという方法で物理法則を”発見”していきます。それぞれの段階で、”発見”された物理法則仮説を使った予測が、ある定められた誤差以下で予測できているか、を確かめています。

全体図は下記の通りです。

このままだとわかりづらいので、実際に万有引力の法則で解いてみると下記のようになります。

まず、次元解析を用いて目的変数である万有引力fの次元をもつ部分と、無次元量で構成させる部分に分割します。前者はもう十分に簡単な形になっているので(この部分は、ある誤差閾値以下で予測ができる)、ここで終了です。

しかし、無次元量に関する部分はまだ複雑なため、並進対称性や因数分解を等をすることで問題を簡単化して解いています。次のパートで詳しくみていきます。

問題を解く基本的な手段

まず、問題を解く基本的な手段です。これらの手段で単純な問題は解くことができます。

1. 次元解析

次元解析は物理学で頻繁に用いられる解析手法です。AI Feynmanでは、目的変数の単位をもとに、無次元量(単位なし)と目的変数の単位をもつものに問題を分解しています。

万有引力の例だと、目的変数の引力Fは[質量・長さ/時間²]の次元を持っているため、目的変数の次元を表現する項と、無次元量の項の式の積に問題を分解します。

そうすると問題自体が簡単になったり、場合によってはこれで問題が解けてしまします。

2.多項式フィッティング

多項式回帰は、ある次数以下の複数の変数から成る多項式で目的変数が表現できるかを確かめる手法です。具体例を挙げると、変数がa,bの2つあって最大次数が2のとき、目的変数yを表すように以下の式の係数βを線形回帰で求める手法です。

運動エネルギーの表式や、万有引力の法則の分子・分母のように、低次数の多項式で表現できることが多いので、これも有用な手法といえるでしょう。

3. 組み合わせ総当たり(brute force)

ここでは多項式よりもっと複雑な表式を総当たりで求めます。下記のように加減乗除や二乗根を記号化したものを使い、数式を表現します。

この表現を使って、あらゆる組み合わせを試して問題が解けるかを確かめます。

問題を簡単にする手段

上記の手法を用いても物理法則を見つけることができない場合があります。なぜなら、多項式を分母と分子両方にもっているなど複雑な表式になっていることが多いからです。そのため、問題設定をより簡単にした上で上記の手法を再度試していくという方法をとります。

AI Feynmanではニューラルネットを用いて問題が簡単になるかをたしかめています。下の図は万有引力の法則に並進対称性があるかを検証したときの模式図です。

学習データでパターンを学習させたモデルを用いて、検証用データ(validation data)で仮説が実証できるかを確認するという戦略です。

1. 並進対称性(Translational Symmetry)

変数に並進対称性があるかを確かめます。並進対称性とは以下のように、x_1, x_2にある定数を加えても(移動させても)、同じ値が出るか、という検証です。例えば、万有引力の法則だと、2つの物体をx軸方向に平行移動させても引力の値は変化しません。

並進対称性が確かめられると、変数x_1, x_2の絶対値ではなくx_1とx_2の相対位置が引力に寄与しているということです。つまり、新しい変数x’ ≡x_1 -x_2を導入すれば、x_1,x_2を消去できるのでより問題を簡単にできます。詳細なアルゴリズムは下記の通りです

2. 因数分解(Separability)

次は因数分解のように積で分解できる部分がないか、つまりf(x_1,x_2) = h(x_1)g(x_2)のように分解できないか、を確かめます。

ここでは、次の式が成り立つかを考えます。

この式では、x_1とx_2が分離可能ならば値はゼロになります。観測誤差を考えて、ある値以下になれば”分離可能”とします。分離できれば、yの値を求めるという問題は、y’を求める問題とy’’を求める問題の2つに分離することができます。

これにより、複雑な問題をより簡単な2つの問題に落とし込むことができます。

3. 変数を等価にする

独立している変数にそれぞれ同じ値を入れることでも、問題を簡単にすることができます。例えば、下図のガウス分布を”発見”する問題で、θとσに同じ値を入れると、指数部分とそれ以外に問題を分割するこができます。

結果

上述の手法を使うと、物理法則を”発見”することができます。”発見”された法則は多いので、気になる方は元論文を参照してください。複雑な数式や先行研究のEureqaでも解けなかった問題が多く解けていることがわかると思います。

Equation列は発見したい物理法則で、Noise toleranceのガウシアンノイズを入れながら学習データが生成されます。Methods used列は解くのに使った手法で、 daはDimensional Analysis(次元解析)、bfは組み合わせ総当たり(Brute Force)、symは並進対称性(symmetry)、等です。

データは、その問題を解くために必要な最小データ数です。多くのデータで解けるかを確かめ、徐々にデータを減らしながら解くための最小データ数を検証しています。

まとめ

このブログでは物理法則を”発見”するAI Feynmanを解説しました。シンボル形式で法則を予測できるモデルで、(ものによりますが)必要データもそこまで多くなく、直感的で強力な手法です。

ものづくりエンジニアの現場では、説明変数が多すぎて何が実際に効いているのかわからない場面がよくあります。統計解析や機械学習の活用もいいですが、このようにシンボル形式で仮説を出してもらえると、解釈性も高いです。ものづくりエンジニアにとっても嬉しい手法なのではないでしょうか。

Twitter , 一言論文紹介とかしてます。

Reference

  1. Silviu-Marian Udrescu, Max Tegmark, AI Feynman: a Physics-Inspired Method for Symbolic Regression, arXiv:1905.11481 (2019)

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