以下では、微分方程式を解くための組み込み物理知識ニューラル ネットワーク (PINN) を紹介します。まず、PINN の基本的な方法を紹介し、Pytorch の PINN 解法フレームワークに基づいて、時間項を伴う 2 次元のナビエ・ストークス方程式を解きます。
Embedded Physical Knowledge Neural Network (PINN) の概要と関連論文
微分方程式を解くためのディープ ラーニング シリーズ 1: PINN ソリューション フレームワーク (ポアソン 1d)
微分方程式を解くためのディープ ラーニング シリーズ 2: バーガー方程式の前方問題を解くための PINN
微分方程式を解くためのディープ ラーニングシリーズ 3: PINN はバーガー方程式の逆問題を解く
微分方程式シリーズ IV を解くためのディープラーニング: 適応活性化関数に基づいて、PINN はバーガー方程式の逆問題を解く
微分方程式シリーズ V を解くためのディープラーニング: PINN はナビエ・ストークス方程式の直接問題と逆問題
1. PINN の概要
ニューラル ネットワークは、強力な情報処理ツールとして、コンピューター ビジョン、生物医学、石油およびガス工学の分野で広く使用されており、多くの分野で技術革新を引き起こしています。深層学習ネットワークは非常に強力な学習能力を備えており、物理法則を発見できるだけでなく、偏微分方程式を解くこともできます。近年、深層学習に基づく偏微分方程式の解法が新たな研究の注目スポットとなっています。埋め込み物理情報ニューラル ネットワーク (PINN) は、従来の数値領域における科学マシンのアプリケーションであり、方程式の解決、パラメーターの反転、モデルの発見、制御、モデルの検出など、偏微分方程式 (PDE) に関連するさまざまな問題を解決するために使用できます。最適化など
2.PINN方式
PINN の主な概念を図 1 に示します。まず、出力結果をu ^ \hat{u}として構築します。あなた^のニューラル ネットワークは PDE 解のプロキシ モデルとして使用され、PDE 情報は制約として使用され、トレーニング用のニューラル ネットワーク損失関数にエンコードされます。損失関数は主に、偏微分構造損失 (PDE 損失)、境界値条件損失 (BC 損失)、初期値条件損失 (IC 損失)、実データ条件損失 (データ損失) の 4 つの部分で構成されます。
特に、次の偏微分方程式問題を考えてみましょう。偏微分方程式の解u ( x ) u(x)u ( x )在Ω ⊂ R d \Omega \subset \mathbb{R}^{d}おお⊂Rdの定義、ここでx = ( x 1 , … , xd ) \mathbf{x}=\left(x_{1}, \ldots, x_{d}\right)バツ=( ×1、…、バツd):
f ( x ; ∂ u ∂ x 1 , … , ∂ u ∂ xd ; ∂ 2 u ∂ x 1 ∂ x 1 , … , ∂ 2 u ∂ x 1 ∂ xd ) = 0 , x ∈ Ω f\left( \mathbf{x} ; \frac{\partial u}{\partial x_{1}}, \ldots, \frac{\partial u}{\partial x_{d}} ; \frac{\partial^{2} u}{\partial x_{1} \partial x_{1}}, \ldots, \frac{\partial^{2} u}{\partial x_{1} \partial x_{d}} \right)=0 , \quad \mathbf{x} \in \Omegaf( x ;∂ ×1∂あなた、…、∂ ×d∂あなた;∂ ×1∂ ×1∂2と、…、∂ ×1∂ ×d∂2と)=0 、バツ∈Ω
同時に、次の境界
B ( u , x ) = 0 on ∂ Ω \mathcal{B}(u, \mathbf{x})=0 \quad \text { on } \quad \partial \Omega を満たします。B ( u 、×)=0 の上 ∂Ω _
PINN ソリューションのプロセスには主に次のものが含まれます。
- 最初のステップは、D 層の全結合層のニューラル ネットワーク モデルを定義することです:
N Θ : = LD ∘ σ ∘ LD − 1 ∘ σ ∘ ⋯ ∘ σ ∘ L 1 N_{\Theta}:=L_D \circ \シグマ \circ L_{D-1} \circ \sigma \circ \cdots \circ \sigma \circ L_1NTh:=LD○p○LD − 1○p○⋯○p○L1
式中:
L 1 ( x ) : = W 1 x + b 1 , W 1 ∈ R d 1 × d , b 1 ∈ R d 1 L i ( x ) : = W ix + bi , W i ∈ R di × di − 1 , bi ∈ R di , ∀ i = 2 , 3 , ⋯ D − 1 , LD ( x ) : = WD x + b D , WD ∈ RN × d D − 1 , b D ∈ RN 。\begin{aligned} L_1(x) &:=W_1 x+b_1, \quad W_1 \in \mathbb{R}^{d_1 \times d}, b_1 \in \mathbb{R}^{d_1} \\ L_i (x) &:=W_i x+b_i, \quad W_i \in \mathbb{R}^{d_i \times d_{i-1}}, b_i \in \mathbb{R}^{d_i}, \forall i =2,3, \cdots D-1, \\ L_D(x) &:=W_D x+b_D, \quad W_D \in \mathbb{R}^{N \times d_{D-1}}, b_D \ \mathbb{R}^N で。\end{整列}L1( × )L私は( × )LD( x ): =W1バツ+b1、W1∈Rd1× d、b1∈Rd1: =W私はバツ+b私は、W私は∈Rd私は× di − 1、b私は∈Rd私は、∀i _=2 、3 、⋯D−1 、: =WDバツ+bD、WD∈RN × dD − 1、bD∈RN .
とσ \sigmaσは活性化関数、WWWとBBbは重みとバイアスのパラメータです。 - 2 番目のステップは、ニューラル ネットワークu ^ \hat{u}を測定するためです。あなた^と近束の間の差、失関数を考慮して:
L ( θ ) = wf LPDE ( θ ; T f ) + wi LIC ( θ ; Ti ) + wb LBC ( θ , ; T b ) + wd LD ata ( θ , ; T データ ) \mathcal{L}\left(\boldsymbol{\theta}\right)=w_{f} \mathcal{L}_{PDE}\left(\boldsymbol{\theta}; \mathcal{ T}_{f}\right)+w_{i} \mathcal{L}_{IC}\left(\boldsymbol{\theta} ; \mathcal{T}_{i}\right)+w_{b} \mathcal{L}_{BC}\left(\boldsymbol{\theta},; \mathcal{T}_{b}\right)+w_{d} \mathcal{L}_{データ}\left(\ボールドシンボル{\theta},; \mathcal{T}_{data}\right)L(私)=wふLPDE_ _(私;Tふ)+w私はLIC _(私;T私は)+wbLBC _(私、;Tb)+wdLデータ_ _ _(私、;Tダタ_ _ _)
ここで:
LPDE ( θ ; T f ) = 1 ∣ T f ∣ ∑ x ∈ T f ∥ f ( x ; ∂ u ^ ∂ x 1 , … , ∂ u ^ ∂ xd ; ∂ 2 u ^ ∂ x 1 ∂ x 1 , … , ∂ 2 u ^ ∂ x 1 ∂ xd ) ∥ 2 2 LIC ( θ ; Ti ) = 1 ∣ Ti i ∣ ∑ x ∈ Ti i ∥ u ^ ( x ) − u ( x ) ∥ 2 2 LBC ( θ ; T b ) = 1 ∣ T b ∣ ∑ x ∈ T b ∥ B ( u ^ , x ) ∥ 2 2 LD ata ( θ ; T データ ) = 1 ∣ T データ ∣ ∑ x ∈ T データ ∥ u ^ ( x ) − u ( x ) ∥ 2 2 \begin{aligned} \mathcal{L}_{PDE}\left(\boldsymbol{\theta} ; \mathcal{T}_{f}\right) &=\frac{1 }{\left|\mathcal{T}_{f}\right|} \sum_{\mathbf{x} \in \mathcal{T}_{f}}\left\|f\left(\mathbf{x } ; \frac{\partial \hat{u}}{\partial x_{1}}, \ldots, \frac{\partial \hat{u}}{\partial x_{d}} ; \frac{\partial ^{2} \hat{u}}{\partial x_{1} \partial x_{1}}、\ldots、\frac{\partial^{2} \hat{u}}{\partial x_{1} \partial x_{d}} \right)\right\|_{2}^{2} \\ \mathcal{L}_{IC}\left(\boldsymbol{\theta};\mathcal{T}_{i}\right) &=\frac{1}{\left|\mathcal{T}_{i}\right|} \sum_{\mathbf{x}\in \mathcal{T }_{i}}\|\hat{u}(\mathbf{x})-u(\mathbf{x})\|_{2}^{2} \\ \mathcal{L}_{BC} \left(\ballsymbol{\theta};\mathcal{T}_{b}\right) &=\frac{1}{\left|\mathcal{T}_{b}\right|}\sum_{\ mathbf{x} \in \mathcal{T}_{b}}\|\mathcal{B}(\hat{u}, \mathbf{x})\|_{2}^{2}\\ \mathcal {L}_{データ}\left(\太字記号{\theta}; \mathcal{T}_{データ}\right) &=\frac{1}{\left|\mathcal{T}_{データ} \ right|} \sum_{\mathbf{x} \in \mathcal{T}_{data}}\|\hat{u}(\mathbf{x})-u(\mathbf{x})\|_ { 2}^{2} \end{整列}=\frac{1}{\left|\mathcal{T}_{b}\right|}\sum_{\mathbf{x}\in \mathcal{T}_{b}}\|\mathcal{B} (\hat{u}, \mathbf{x})\|_{2}^{2}\\ \mathcal{L}_{データ}\left(\太字記号{\theta}; \mathcal{T} _ {データ}\right) &=\frac{1}{\left|\mathcal{T}_{data}\right|} \sum_{\mathbf{x}\in \mathcal{T}_{data} } \|\hat{u}(\mathbf{x})-u(\mathbf{x})\|_{2}^{2} \end{aligned}=\frac{1}{\left|\mathcal{T}_{b}\right|}\sum_{\mathbf{x}\in \mathcal{T}_{b}}\|\mathcal{B} (\hat{u}, \mathbf{x})\|_{2}^{2}\\ \mathcal{L}_{データ}\left(\太字記号{\theta}; \mathcal{T} _ {データ}\right) &=\frac{1}{\left|\mathcal{T}_{data}\right|} \sum_{\mathbf{x}\in \mathcal{T}_{data} } \|\hat{u}(\mathbf{x})-u(\mathbf{x})\|_{2}^{2} \end{aligned}LPDE_ _(私;Tふ)LIC _(私;T私は)LBC _(私;Tb)Lデータ_ _ _(私;Tダタ_ _ _)=∣ Tふ∣1x ∈ Tふ∑∥∥∥∥f( x ;∂ ×1∂あなた^、…、∂ ×d∂あなた^;∂ ×1∂ ×1∂2あなた^、…、∂ ×1∂ ×d∂2あなた^)∥∥∥∥22=∣ T私は∣1x ∈ T私は∑∥あなた^ (×)−u ( x ) ∥22=∣ Tb∣1x ∈ Tb∑∥ B (あなた^、x ) ∥22=∣ Tダタ_ _ _∣1x ∈ Tダタ_ _ _∑∥あなた^ (×)−u ( x ) ∥22
わ、わ_{f}wふ、ウィウィ_{イ}w私は、wb w_{b}wbそしてwd w_{d}wd重量です。T f \mathcal{T}_{f}Tふ,T i \mathcal{T}_{i}T私は、T b \mathcal{T}_{b}Tb和T データ \mathcal{T}_{data}Tダタ_ _ _PDEからの残差点、初期値、境界値、真値を表します。ここでT f ⊂ Ω \mathcal{T}_{f} \subset \OmegaTふ⊂Ω は、ニューラル ネットワークの出力u ^ \hat{u}あなた^ PDE との一致の程度。 - 最後に、予測精度を満たすネットワーク パラメーターが見つかるまで、勾配最適化アルゴリズムを使用して損失関数を最小化します。KaTeX 解析エラー: 未定義の制御シーケンス: \theat 位置 1: \̲t̲h̲e̲a̲t̲^{*}。
逆問題の場合、つまり方程式内の一部のパラメーターが不明であることに注意してください。PDE 方程式と境界条件のみがわかっており、PDE パラメーターが不明な場合、逆問題は不定問題となるため、いくつかの観測点などの他の情報がわかっている必要があります。uの値。この場合、PINN メソッドは方程式内のパラメーターを未知の変数として使用し、それらをトレーナーに追加して最適化することができます。損失関数にはデータ損失が含まれます。
3. 問題定義の解決 - 順問題と逆問題
不可圧流体は次の NS 方程式で解釈できます:
ut + λ 1 ( uux + vuy ) = − px + λ 2 ( uxx + uyy ) vt + λ 1 ( uvx + vvy ) = − py + λ 2 ( vxx + vyy ) \begin{aligned} &u_t+\lambda_1\left(u u_x+v u_y\right)=-p_x+\lambda_2\left(u_{xx}+u_{yy}\right) \\ &v_t+\lambda_1\left(u v_x+ v v_y\right)=-p_y+\lambda_2\left(v_{xx}+v_{yy}\right) \end{aligned}あなたた+私1(ううう_×+あなた_はい)=−p _×+私2(あなた× ×+あなたはい、)vた+私1(うv×+vv _はい)=−p _はい+私2( v× ×+vはい、)
肯定的な問題:
- パラメータλ 1 = 1 \lambda_{1}=1私1=1 ,λ 2 = 0.01 \lambda_{2}=0私2=0 . 0 1は既知のパラメータであり、問題は既知の境界条件と微分方程式であり、u、v、p が解かれます。
逆問題: - 単一1 、 2 \lambda_{1}、\lambda_{2}私1、私2未知のパラメーターの場合、問題は既知の境界条件と微分方程式ですが、方程式内のパラメーターが不明であるため、u、v、p および方程式パラメーターを解きます。
図 2 に示す長方形領域内の非圧縮性流れ場を解くことを考えてみましょう。特に、流体方程式の解は発散のない関数を同時に満たし、次のように表すことができます。 ux + vy = 0 u_x+ v_y=
0あなた×+vはい=0
ネットワークの場合、出力は 3 次元になるはずです (u 、 v 、 pu、v、pあなた、v 、p ) ですが、解法過程では潜在関数ψ ( x , y , t ) \psi(x,y,t) をψ ( x ,よ、t )は、要件
u = ψ y 、 v = − ψ xu=\psi_y、 \quad v=-\psi_x を満たします。あなた=pはい、v=−p _×
ネットワーク出力は 2 次元 ( ψ , p \psi,p追伸、p)
。
特に、効果を実証するために、ここでは 10 秒未満の流れ場比較予測効果を選択します。
4. 結果表示
4.1 正問題の実験結果
実験結果を図 6-8 に示します。トレーニングを通じて、PINN は u、v、p の正確な
予測