CaltechのDOLCITグループの研究者たちが、偏微分方程式(partial differential equations、PDE)を解くディープラーニングメソッドのFouries Neural Operator(FNO)をオープンソースとして公開した。FNOは既存の他のディープラーニングテクニックを性能面で凌駕しており、従来のソルバよりも3桁高速に処理することができる。
チームは自分たちのモデルと一連の試験について、arXivに発表された論文で説明している。このニューラルネットワークは、ひとつの関数から別の関数へのマッピングを学習することによって、メッシュ解像度の不変なPDEファミリに対する解を提示することができる。モデルでは、グローバル畳み込み(global convolution)を効率的に計算するためにフーリエ変換を採用する。PDEを解く他のディープラーニングモデルと比較した場合、FNOはNavier-Stokesで30パーセント、Darcy Flowで60パーセント低いエラー率を達成している。FNOの適用可能な分野のひとつが、天候パターン(weather patterns)の予測計算の速度向上である — 実験では、従来のソルバで2.2秒を要していた予測を、同モデルによって0.005秒で実行することができた。気象モデルの研究における有望な選択肢のひとつだ。
物理やエンジニアリングの分野では、熱伝導、流体力学、量子メカニズムなど、多くの領域のさまざまな事象を説明する手段としてPDEが使用されている。PDEの解の多くは空間と時間の関数である。例えば、流体の動作を説明する非線形PDEのセットであるNavier-Stokes方程式の解は、特定の場所と瞬間における流体の流れを示すベクタとして出力される。
しかしながら、現実的な状況においては、PDEの閉じた解が存在しない場合が大部分を占めるため、有限要素法(FEM)や有限差分法(FDM)を使用した数学的近似が行われる。これらのテクニックは、対象とする離散的なポイントの詳細なメッシュを作成し、各メッシュ点を囲む小近傍における短時間のPDEの動作を分析することによって機能する。これらの制約範囲内でのPDEは、反復的な数学的処理によって解析可能な、より単純な連立方程式として近似されることが多い。このような方法は、多くの技術分野で主力的ではあるが、デメリットもある — プロセスに時間が掛かる上、さまざまな翼の設計を検証する場合など、グリッド定義や問題のパラメータに少しでも変更があれば再実行が必要になる。
ニューラルネットワークとディープラーニングは、科学的シミュレーションを高速化する手段として有望視されている。PDEを解く場合には、統計サンプル用のデータを短時間で生成可能なモデル開発に目標が置かれることが多い。これは、最終的な結果からシステムの初期状態を決定しようという逆問題(inverse problem)でしばしば適用される。この目的には、有限次元演算子とニューラルFEMという、2つのディープラーニングアプローチが従来より存在する。後者は、畳み込みニューラルネットワーク(CNN)を使用して、解のパラメータ化された近似を求めるものだ。ニューラルFEMで使用されるモデルはメッシュに依存しない反面、表現可能なものがPDEの特定のインスタンスに限られており、PDEのパラメータが変更された場合には再トレーニングが必要になる。
これに対して、Caltechのチームが採用したアプローチでは、解演算子(solution operator)を学習可能なニューラルネットワークを構築する。すなわち、PDEと解の間のマッピングを学習するのだ。論文の筆頭執筆者であるZongi Li氏によれば、この問題は画像間モデルに似たものだ。氏らのネットワークはCNN層ではなく、一連のフーリエ層(Fourier layer)によって構成される。各層では入力に対して、高速フーリエ変換(FFT)、線形変換、逆FFTを順に適用する。FFTによって準線形計算複雑性(quasi-linear computational complexity)が実現するため、モデルはデータの空間的分解能に対して不変なものになる。ただしメッシュは均一であることが必要だ。
FNOの開発は、先頃のNeurIPSカンファレンスで同チームが発表したグラフカーネルネットワーク(GKN)の論文を足場としている。Twitterでの議論でLi氏は、均一なメッシュが適応不能な状況では、速度的に劣るGKNが使用可能であることを指摘した。さらに氏は、次のようにも述べている。
特定のジオメトリでトレーニングされたモデルを別のジオメトリに汎化することはできませんが、異なるジオメトリの解を得るためのトレーニング済モデル、あるいは前処理行列(preconditioner)として使用することは可能です。
FNOのコードとトレーニング済モデルはGitHubで公開されている。