採用情報 お問合せ

技術情報

FEMと幾何学の機械学習

By 堀江正信 (Masanobu Horie)

はじめに

数値シミュレーションはものづくりのプロセスにおいて重要ですが、近年その計算コストが問題視されてきています。また、数値シミュレーションはそれ自体が目的ではなく、それを設計にフィードバックすることによる最適設計の実現が目的であることが多いです。そういった活動を総称して Computer Aided Engineering(CAE)といいます。

科学計算総合研究所(Research Institute of Computational Science Co. Ltd., RICOS)では、CAEを用いた理想的な最適設計を機械学習の技術を用いて実現しようとしています。特に、有限要素法(Finite Element Method, FEM)の機械学習に注力しています。具体的な方針を以下に示します:

  • 計算コストの削減:FEMシミュレーションを機械学習モデルで置き換える(順問題の学習)
  • 最適化計算の効率化:FEMシミュレーションの結果から入力を推定する機械学習モデルを作成する(逆問題の学習)

ひとつめの、FEMシミュレーションを機械学習モデルで置き換えるほうはイメージがつかみやすいのではないでしょうか。シミュレーションをするアルゴリズムを機械学習で置き換えることにより、短時間でシミュレーション結果を近似的に求めることができます。

ふたつめのFEMシミュレーションの結果から入力を推定する機械学習モデルを作成するほうは、少し発想の転換が必要かもしれません。最適化とは、ある望みの状態を実現しているときの条件を求める問題であると言えますが、これは望みの状態(計算結果)を入力としてそのときの条件(計算の入力)を出力として得る問題とも言えます。すなわち、結果から原因を推定する、 逆問題 ととらえることができます。すなわち、FEMの逆問題を解くアルゴリズムを機械学習で置き換えれば、短時間で最適化結果を近似的に求めることができます。

FEMの順問題と逆問題の例。逆問題では、力と変位の関係からそれを満たす形状を推定している。

 

このように、FEMと機械学習を組み合わせることで、今までより一層ものづくりのプロセスが加速されることが期待できます。そこで、ここではFEMの機械学習について軽く触れ、その後でFEMの機械学習にとって不可欠である幾何学の機械学習について紹介します。中でも、幾何学の機械学習についての論文紹介がメインの内容になります。

FEMの機械学習

FEMの機械学習のよいところとして、教師データの作りやすさが挙げられます。特にFEMの順問題や逆問題を解く機械学習モデルを作成する場合、機械学習モデルの入出力はFEMによるシミュレーションの入出力となります(逆問題の場合は入力と出力を入れ替える)。シミュレーションはコンピュータにより自動的に行えるため、人手を介さず膨大なデータを作ることが可能となります。また、他の機械学習では起こりがちなデータのノイズや人手ラベリングの誤りといった問題も生じないため、非常に質のよいデータが得られることも特長の一つです。

一方で、FEMのデータ構造に起因した難点もあります。FEMではメッシュと呼ばれる、形状を単純形状で分割したモデルを用います。このメッシュのマス目のそれぞれに材料の固さや温度など、用途に応じてさまざまな物理量が付与されているわけです。FEMでは形状が非常に重要なので、この形状をいかにして機械学習モデルに認識させるかがひとつの鍵となります。すなわち、幾何学の機械学習が重要になります。

ml_fem_geometry_fig2@2x

幾何学の機械学習

幾何学の機械学習で深層学習を用いたものは特にGeometric Deep Learningという言葉でまとめられているようです。Google Trendsで見てみると、近年注目度が増してきてはいるものの、まだまだポピュラーとはいえないようです1

Geometric Deep Learningがまだあまりポピュラーになっていない原因としては、特徴量選択の難しさと学習アルゴリズムの難しさが挙げられると思います。詳しくは後述しますが、形状(とくに3次元形状)を表す方法は何通りもあり、またどれも一長一短でこれがすべてにおいてベストといったものは存在していない現状です。学習アルゴリズムはデータ構造に依存する部分も大きいため、当然学習アルゴリズムの選択も難しくなってきます。

しかしながら、物体検知やモーションキャプチャなどの領域で有用であることからコンピュータビジョンなどの領域では盛んに研究され始めている分野でもあります。この節では、Ahmed et al.のサーベイ論文2 をベースに、3 次元形状の表現方法とその機械学習の例について紹介してきます。

3次元形状の表現方法

3次元形状の表現方法は、以下の図がわかりやすいと思います。この論文では大きく、Euclidean-structured data と Non-Euclidean data に分けています。ここではざっくり、画像のように格子状の構造になっているデータ(Euclidean-structured data)かそうでないデータ(Non-Euclidean data)か、くらいのイメージで十分かと思います3。以下では、それぞれの表現方法について見ていきます。

3 次元形状の表現方法の一覧

3D shape descriptor

3D shape descriptorは、3Dオブジェクトの空間から有限次元の別の空間への写像と考えられます4。例えば、形状をモーメント、オイラー標数などの位相不変量、フーリエ変換をした際のスペクトラムなどに変換し、それを特徴量とする方法です。近年では、手でこれらの特徴量を抽出して、より高次な特徴量を機械学習によって生成するといったことも行われているようです。

長所としては、データ構造が単純であるため、異なる形状との比較がしやすいことが挙げられます。例えばモーメントは1次元の量なので、それの差をとれば少なくとも形状のモーメントが異なることがわかります。短所としては、3次元形状を何か別の形式に変換してしまうので、その際に形状の情報が失われてしまう、すなわち複雑形状には向かないことです。

3D data projection

こちらも3D shape descriptorに似ていますが、形状から抽出した特長の場を2次元の面に射影するという方法です。この射影する先は一般に曲面であり、必ずしも平面でなくても構いません。

長所としては、球面や円筒面に投影することによって、回転対称な形状に対して一貫性のある表現が得られることです。対する短所としては、射影によりやはり 3 次元形状がもつリッチな情報が多少失われてしまい、複雑形状の表現には向かないことです。

RGB-D data

RGB-D dataは、 MicrosoftのKinectなどによって近年ポピュラーになってきた形式です。色彩を表す際に通常用いられるRGBに加えて深さの情報を加えた RGB-Dの4チャネルの画像として3次元形状を表現します。通常の画像に比べて、深さの情報を持っているのでどの部分がカメラに近く、どの部分がカメラより遠いかがより確からしく判定できます。

長所としては、画像のフォーマットにかなり近いためシンプルに扱えることと、データセットが潤沢にあることです(これはデータ構造そのものの長所ではないですが)。一方、論文には書いていませんが、これも 2 次元のデータへの変換ですので、入り組んでいて内部構造を持つような複雑形状には不向きであると考えられます。

Multi-view data

こちらも画像のアプローチですが、複数の画角で3Dオブジェクトを描画し、その複数の画像をまとめてひとつの特徴量として扱おうというものです。こちらも画像の集まりなので扱いやすいことが長所で、画像の数や位置を適切に調整すれば、後述するボクセルベースの手法を上回る性能が出ている例もあるようです。ただし、何枚の画像が必要で、どういった画角で描画すればよいのかがタスクや対象形状によりけりでチューニングが必要といったところが短所として挙げられると思います。

Volumetric data

今までは紹介したものは画像に変換するアプローチがメインでしたが、こちらは3次元データを3次元データとして扱う手法です。中でもボクセル(Voxel)は画像の三次元版とも言えるようなデータで、3次元空間にある格子状のセルそれぞれがオブジェクトで埋まっているか埋まっていないかを表現する形式となります。8分木ではそれをもう少し複雑にして、形状の表面まわりではセルを細かくとり、それ以外の場所では粗くとることでデータ量を削減しようとしたものです。

ボクセルデータの例

長所は、データ構造がシンプルであるにもかかわらず3次元形状の特徴をそのまま3次元空間で表現しているため、形状の表現力が高いことです。短所としては、特にボクセルについては、オブジェクトで埋まっていない部分もデータとして持っておかなければいけないため、計算リソースを余分に消費してしまうことです。そのためセルのサイズを小さくして高解像度のデータを扱おうとすると計算量がネックになりますが、これらの問題は8分木を使うことで多少改善されます。また、セルが埋まっているかいないかで形状を表現するため、どうしても表面がカクカクしてしまい、もともとの形状がもっていた表面のなめらかさやエッジのシャープさなどの情報が失われてしまうことも問題になることがあります。

3D point cloud

上記まではEuclidean structured dataと呼ばれる、格子状の空間構造をベースにしたデータ形式でした。ここからは、Non-Euclidean dataを見ていきます。

3D point cloudは、3次元空間上の点群(point cloud)と呼ばれる点の集まりで形状を表現したものです。これもデータ自体の長所ではないですが、3次元系有情を実際に3Dスキャナなどで測定するとだいたいのデータの形式はこの3D point cloudになるのではないでしょうか。そのため、学習タスクのスタートラインがどうしてもこの形式にならざるを得ないことが多く、3D point cloudをいかにうまく扱うかは応用上非常に重要であると考えられます。また、点の集まりとはいえ3次元の情報を持っているため、3次元形状の概形をつかむのには適していると言えます。

3D point cloudの例

主な短所は3つ挙げられます。一つめは、3D point cloudは実際の形状を測定したものであることが多く、ノイズが乗っていることが多いことです。二つめは、点どうしがどのように繋がっているかの情報が欠けていることにより、どこが表面であるかの情報が不確かになってしまっていることです。三つめは、複数の形状を独立に測定したとすると、点群の個数は異なりますし、それらの順番が不同であることです。機械学習モデルでは入出力を多次元配列で与えることが多いと思いますが、配列のサイズが不定であり、また順番を一意に決められないということになり、学習タスクをうまく回す上で重大な障害になります。

上記三つめの短所を克服するべく、すでに様々な研究が行われています。まず一般の問題に対して順不同データに対応できる機械学習モデルが提案され5、それを点群データに応用した一連の研究があります6 7

この中で Deep Setsについて少し触れておきます。この論文の主なコントリビューションは、配列の順序を入れ替えても計算結果が変わらない(=順不同データを扱える)関数を記述し、それが必要十分であることを数学的に証明したことです。これによって、順不同のデータを扱う機械学習モデルを作る際の強力な指針が得られたことになります。

具体的には、 $M$ 個の要素を持つ順不同データ $X = \{x_1, \dots, x_M\}$ に対して、要素の入れ替えについて不変な関数 $f$ は必ず、ある関数 $\rho$ と $\phi$ を用いて
\[
f(X) = \rho \left( \sum_{x \in X} \phi(x) \right)
\]
の形式で書けることが示せます(定理 2)。さらに、これを一般的なニューラルネットワークの層として実現するためには
\[
\boldsymbol{f}(\boldsymbol{x}) = \boldsymbol{\sigma}(\lambda \boldsymbol{I} \boldsymbol{x} + \gamma \boldsymbol{1} \boldsymbol{1}^T \boldsymbol{x})
\]
または
\[
\boldsymbol{f}(\boldsymbol{x}) = \boldsymbol{\sigma}(\lambda \boldsymbol{I} \boldsymbol{x} + \gamma \ \mathrm{maxpool}(\boldsymbol{x}) \boldsymbol{1})
\]
のようにすればよいことがわかります。ここで、
\[
\begin{align*}
\boldsymbol{f} : &\mathbb{R}^M \rightarrow \mathbb{R}^M, \text{$M$ 次元ベクトルから $M$ 次元ベクトルへ移す、要素の入れ替えに対して不変な関数}
\\
\boldsymbol{x} \in & \mathbb{R}^M, \text{$M$ 次元ベクトルの入力データ}
\\
\boldsymbol{\sigma}: & \mathbb{R}^M \rightarrow \mathbb{R}^M, \text{活性化関数}
\\
\lambda, \gamma \in & \mathbb{R}, \text{学習パラメータ}
\\
\boldsymbol{I} \in & \mathbb{R}^{M \times M}, \text{単位行列}
\\
\mathrm{maxpool}: & \mathbb{R}^M \rightarrow \mathbb{R}, \text{max pooling 関数}
\\
\boldsymbol{1}: & \mathbb{R}^{M \times 1}, \text{1 が $M$ 個並んだ行ベクトル} [1, 1, \dots, 1]^T
\end{align*}
\]
です。点群の機械学習については、こちらの資料でより網羅的にまとめられています。

3D mesh and graph

こちらは形状を、要素と呼ばれる単純な図形の分割で表現する方法で、この表現をメッシュと呼びます。数学的には節点(node、vertex)をエッジ(edge)で繋いだものの集まりとして捉えられるため、グラフとも呼ばれます(関数の増減を描いたようなグラフとは異なります)。

3D mesh and graph の例

長所としては、3D 形状の表現方法としてポピュラーで、コンピュータグラフィックスやシミュレーションなどで多く使われているデータ構造であるということです。FEM でもメッシュを形状の表現として用いています。また、3D 形状を 3D で表現しており表面の情報も失われていないので、表面のなめらかさといった情報もある程度保持することが可能です。

短所としては、3D point cloud のときと同様、データ構造がイレギュラーで機械学習モデルにとって扱いにくいということです。たとえば形状やメッシュ分割の仕方が変われば、メッシュを構成する節点や要素の数、より一般にはグラフの構造が変わってしまうため、それらの変化に強い機械学習アルゴリズムを作らなければいけないということです。一般のグラフデータを機械学習で取り扱おうという試みはすでになされており、Graph Neural Network や Graph Convolution などといった言葉でまとめられています。Graph Neural Network については web 上では日本語の情報もあります(たとえば https://tech-blog.abeja.asia/entry/2017/04/27/105613
https://www.slideshare.net/emakryo/neural-networks-for-graph-data-neurips2018pfnなど)。

これを特に mesh データに適用した論文として、Lenssen et al.8や Monti et al.9などがあります。

おわりに

この記事では、FEMの機械学習、そしてその根幹をなす幾何学の機械学習について紹介してきました。幾何学の機械学習に関しては論文が出てくるようになりましたが、それらの知見を活かして FEMや他の数値シミュレーションに関する機械学習を高度化することはまだあまり広くやられていないように思います。RICOSでは幾何学の機械学習を発展させるとともに、それをFEMの機械学習へ適用すべく日夜開発を進めております。この記事を読んで少しでも興味を持たれましたら、RICOSへの応募を検討してみて下さい 採用ページへ

  1. ただの Deep Learning と比較してしまうと、見えなくなってしまうほどです。
  2. E. Ahmed, A. Saint, A. E. R. Shabayek, K. Cherenkova, R. Das, G. Gusev, D. Aouada and B. Ottersten, “Deep Learning Advances on Different 3D Data Representations: A Survey,” arXiv preprint arXiv:1808.01462, 2018.
  3. ただし、ここで挙げられているNon-Euclidean dataは局所的にはEuclidean-structured dataとして振る舞うこともありえると論文では指摘されています。
  4. L. Zhang, M. J. da Fonseca, A. Ferreira, and C. R. A. eRecuperac ̧a ̃o,“Surveyon3dshapedescriptors,”FundaA ̃gaopara a Cincia ea Tecnologia, Lisboa, Portugal, Tech. Rep. Technical Report, DecorAR (FCT POSC/EIA/59938/2004), vol. 3, 2007.
  5. O. Vinyals, S. Bengio, and M. Kudlur, “Order matters: Sequence to sequence for sets,” arXiv preprint arXiv:1511.06391, 2015.
  6. S. Ravanbakhsh, J. Schneider, and B. Poczos, “Deep learning with sets and point clouds,” arXiv preprint arXiv:1611.04500, 2016.
  7. M. Zaheer, S. Kottur, S. Ravanbakhsh, B. Poczos, R. R. Salakhut- dinov, and A. J. Smola, “Deep sets,” in Advances in Neural Information Processing Systems, 2017, pp. 3394–3404.
  8. M.Fey,J.E.Lenssen,F.Weichert,andH.Mu ̈ller,“Splinecnn:Fast geometric deep learning with continuous b-spline kernels,” arXiv preprint arXiv:1711.08920, 2017.
  9. F. Monti, D. Boscaini, J. Masci, E. Rodola, J. Svoboda, and M. M. Bronstein, “Geometric deep learning on graphs and manifolds using mixture model cnns,” in Proc. CVPR, vol. 1, no. 2, 2017, p. 3.

著者情報

堀江正信 (Masanobu Horie)

最高研究開発責任者 兼 基盤研究部部長、JSTさきがけ研究者、筑波大学理工情報生命学術院博士後期課程

プロフィール

製造業の設計プロセスの効率化を目指し、シミュレーションに特化した機械学習アルゴリズムの研究開発・お客様との開発案件のプロジェクトマネジメントを行っています。また、2021年度から JSTさきがけ「複雑な流動・輸送現象の解明・予測・制御に向けた新しい流体科学」の研究員も兼務しています。