流体力学で考える

日常にある流体を“見える化”するブログ

深層学習

PINNによる逆問題:観測データから偏微分方程式のパラメータを推定する

公開: 2026-04-05更新: 2026-04-05
PINNによる逆問題:観測データから偏微分方程式のパラメータを推定する

前回の記事では、PINNを用いて偏微分方程式(PDE)の近似解を求める順問題を解説しました。今回は逆問題、すなわち「観測データが与えられたとき、PDEの未知パラメータを推定する問題」を取り上げます。実験や観測からデータは得られているが支配方程式のパラメータが不明、というケースは流体力学・熱工学・材料工学など多くの分野で現れます。この記事では、Raissi et al.(2017)の原著論文に基づき、PINNによる逆問題の定式化と解法を解説します。

問題設定

偏微分方程式の一般形

PDEの一般形を次のように表します。

ut+N[u;λ]=0,xΩ,  t[0,T](1)u_t + \mathcal{N}[u;\,\lambda] = 0, \quad x \in \Omega,\; t \in [0, T] \tag{1}

各記号の意味は以下のとおりです。

記号意味
u(t,x)u(t, x)時刻 tt、位置 xx における物理量(速度・温度など)
N[;λ]\mathcal{N}[\cdot\,;\lambda]λ\lambda をパラメータとする非線形微分演算子
λ\lambdaPDEの未知パラメータ
Ω\Omega空間領域
TT終端時刻

順問題では λ\lambda が既知で uu を求めました。逆問題では、uu の観測データが与えられたとき、λ\lambda を推定します。

Burgers方程式を例に

Burgers方程式を例に逆問題の解き方を説明します。順問題ではu/x\partial u / \partial xの係数、粘性係数 λ=0.01/π\lambda = 0.01/\pi を既知として uu を求めましたが、逆問題では係数を未知として定式化します。

ut+λ1uuxλ22ux2=0,x[1,1],  t[0,1](2)\frac{\partial u}{\partial t} + \lambda_1 u\frac{\partial u}{\partial x} - \lambda_2 \frac{\partial^2 u}{\partial x^2} = 0, \quad x \in [-1, 1],\; t \in [0, 1] \tag{2}

λ1\lambda_1λ2\lambda_2 は未知のパラメータです。真値は λ1=1\lambda_1 = 1λ2=0.01/π\lambda_2 = 0.01/\pi ですが、学習の前はこれを知らない前提で進めます。

式(2)の左辺全体を残差 ff と定義します。

f:=ut+λ1uuxλ22ux2(3)f := \frac{\partial u}{\partial t} + \lambda_1 u\frac{\partial u}{\partial x} - \lambda_2 \frac{\partial^2 u}{\partial x^2} \tag{3}

f=0f = 0 はBurgers方程式を満足することを意味します。

ニューラルネットワークと λ\lambda の定義

順問題と同様に、u(t,x)u(t, x) を近似するNN unetu_\mathrm{net} を定義します。

要素内容
入力層(t,x)(t,\, x) の2次元
中間層全結合層 × 複数(活性化関数:tanh\tanh
出力層uu の1次元

逆問題における順問題との最大の違いは、λ1\lambda_1λ2\lambda_2 をNNの重みと同様に学習パラメータとして扱う点です。unetu_\mathrm{net} の重みと λ1\lambda_1λ2\lambda_2 を同時に最適化することで、観測データと整合するパラメータを自動的に同定します。

損失関数

損失関数は順問題と同じ形で定義します。

L=Lu+Lf(4)\mathcal{L} = \mathcal{L}_u + \mathcal{L}_f \tag{4} Lu=1Nui=1Nuunet(tui,xui)ui2(5)\mathcal{L}_u = \frac{1}{N_u}\sum_{i=1}^{N_u}\left|u_\mathrm{net}(t_u^i,\, x_u^i) - u^i\right|^2 \tag{5} Lf=1Nfi=1Nff(tfi,xfi)2(6)\mathcal{L}_f = \frac{1}{N_f}\sum_{i=1}^{N_f}\left|f(t_f^i,\, x_f^i)\right|^2 \tag{6}

各記号の意味は以下のとおりです。

記号意味
NuN_u観測データ点数
{tui,xui,ui}i=1Nu\{t_u^i,\, x_u^i,\, u^i\}_{i=1}^{N_u}時空間に散在した観測点と uu の観測値
NfN_f領域内部に配置するコロケーション点数
{tfi,xfi}i=1Nf\{t_f^i,\, x_f^i\}_{i=1}^{N_f}領域 Ω×[0,T]\Omega \times [0, T] 内に配置した点

Lu\mathcal{L}_u は観測データとの誤差を、Lf\mathcal{L}_f はPDEの残差を評価します。この L\mathcal{L}unetu_\mathrm{net} の重みと λ1\lambda_1λ2\lambda_2 の両方に関して同時に最小化することで、観測データを再現しつつPDEを満たすパラメータが得られます。

順問題では境界条件・初期条件の点のみを Lu\mathcal{L}_u に使いましたが、逆問題では時空間内に散在する観測データ(Nu=2000N_u = 2000 点)を用います。コロケーション点は Nf=10000N_f = 10000 点を配置します。

残差の計算方法

残差 ff の計算には、順問題と同様に自動微分を用います。unetu_\mathrm{net} の出力 uu を起点として入力 t,xt, x への自動微分を行うことで、u/t\partial u/\partial tu/x\partial u/\partial x2u/x2\partial^2 u/\partial x^2 が得られます。これを式(3)に代入することで ff を算出できます。

逆問題では λ1\lambda_1λ2\lambda_2 も学習パラメータであるため、L\mathcal{L}λ1\lambda_1λ2\lambda_2 に対する勾配も自動微分で計算され、重みの更新と同時に λ\lambda が更新されます。

数値実験の結果

論文では、Burgers方程式の参照解から Nu=2000N_u = 2000 点のデータを抽出し、λ1\lambda_1λ2\lambda_2 を推定しています。

パラメータ真値ノイズなし推定誤差
λ1\lambda_1110.023%0.023\%
λ2\lambda_20.01/π0.003180.01/\pi \approx 0.003180.006%0.006\%

観測データにノイズが含まれる場合も、ノイズ比率10%程度であれば十分な精度での推定が可能であることが示されています。

まとめ

逆問題でのPINNのキーポイントは2つです。

  1. 未知パラメータ λ\lambda をNNの重みと同様に学習パラメータとして扱う
  2. 損失関数を unetu_\mathrm{net} の重みと λ\lambda に関して同時に最小化する

順問題と損失関数の形は同じですが、λ\lambda も最適化対象に加えることで、観測データから支配方程式のパラメータを自動的に同定できます。例えば、あるガスの流速データが得られている一方で、そのガスの粘性係数や反応速度定数などのパラメータが不明なケースに、そのまま適用できる手法です。

参考文献

  • M. Raissi, P. Perdikaris, G.E. Karniadakis, "Physics Informed Deep Learning (Part II): Data-driven Discovery of Nonlinear Partial Differential Equations", arXiv:1711.10566, 2017. https://arxiv.org/abs/1711.10566