流体力学で考える

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

深層学習

【失敗談】パラメトリックPINNの精度改善|学習範囲拡大とβ分布サンプリングの検証

公開: 2026-04-18更新: 2026-04-18
【失敗談】パラメトリックPINNの精度改善|学習範囲拡大とβ分布サンプリングの検証

前回の記事では、Re=10100Re = 10 \sim 100 のパラメトリックPINNを構築しましたが、学習範囲の境界(Re=10,100Re = 10, 100)での予測精度が低下する問題がありました。NNが入力範囲の境界付近で外挿的な予測になりやすいことが原因と考えられます。今回は、学習範囲の拡大とβ分布による重点サンプリングの2つの手法を試みましたが、いずれも効果は見られませんでした。その過程と考察を記録します。基本的な実装は前回の記事と同じため、本記事では変更点のみを説明します。

前回の精度低下の振り返り|Re境界付近の問題

前回の結果では、Re=50Re = 50 では良好な精度が得られましたが、Re=10,100Re = 10, 100 ではピーク速度の予測に誤差が見られました。

この原因として、以下の2つのアプローチで改善できる可能性を指摘しました。

  • 学習範囲の拡大: Re=10,100Re = 10, 100 が境界にならないよう範囲を広げる
  • 重点サンプリング: 境界付近でより多くサンプリングする

以下、それぞれの手法を実装・検証します。

改善手法1|学習範囲をRe=8〜120に拡大する方法

前回のコードからの変更は、Re_range の定義のみです:

# 前回 Re_range = (10, 100) # 今回(学習範囲拡大) Re_range = (8, 120)

学習範囲を Re=8120Re = 8 \sim 120 に広げることで、評価対象である Re=10,100Re = 10, 100 が学習範囲の内側に入ります。これにより、境界での外挿的な予測を避ける効果が期待できます。

学習範囲拡大の結果

学習範囲を Re=8120Re = 8 \sim 120 に広げた場合の速度プロファイルを示します。

残念ながら、Re=10,100Re = 10, 100 での精度はほとんど変わりませんでした。

改善手法2|β分布による重点サンプリングの方法

もう一つのアプローチとして、ReRe のサンプリング分布を変更します。前回は一様分布を使用していましたが、β分布を使うことで境界付近を重点的にサンプリングします。

# 前回(一様分布) Re = Re_range[0] + np.random.rand() * (Re_range[1] - Re_range[0]) # 今回(β分布) Re = Re_range[0] + np.random.beta(0.5, 0.5) * (Re_range[1] - Re_range[0])

β分布とは何か|U字型分布による境界付近のサンプリング

β分布 Beta(α,β)\mathrm{Beta}(\alpha, \beta)[0,1][0, 1] の範囲で値を生成する確率分布です。確率密度関数は次の式で定義されます。

f(x;α,β)=xα1(1x)β1B(α,β),x[0,1]f(x; \alpha, \beta) = \frac{x^{\alpha-1}(1-x)^{\beta-1}}{B(\alpha, \beta)}, \quad x \in [0, 1]

ここで B(α,β)B(\alpha, \beta) はベータ関数(正規化定数)です。パラメータ α,β\alpha, \beta の値によって分布の形状が変わります。

α=β=0.5\alpha = \beta = 0.5 の場合、U字型の分布となり、0と1の近傍(つまり境界付近)でサンプリング確率が高くなります。以下は Re=10100Re = 10 \sim 100 の範囲でβ分布によるサンプリング結果を示した図です。

境界付近を重点的にサンプリングできていることが確認できます。

β分布サンプリングの学習結果

β分布サンプリングを使用した場合の速度プロファイルを示します。

β分布サンプリングを使用した場合も、精度の改善は見られませんでした。

まとめ|改善手法の検証結果と今後の課題

パラメトリックPINNにおける境界付近の精度低下問題に対して、2つの改善手法を検証しました。

手法変更内容結果
学習範囲の拡大Re=(10,100)Re = (10, 100)(8,120)(8, 120)効果なし
β分布サンプリング一様分布 → Beta(0.5,0.5)\mathrm{Beta}(0.5, 0.5)効果なし

いずれの手法も効果は見られませんでした。今回の結果から、精度低下の原因が「境界付近のサンプリング不足」ではなく、別の要因にある可能性が高いと考えられます。

考えられる原因としては、以下が挙げられます。

  • ネットワーク容量の不足: ReRe が変化するにつれて流れ場の構造が大きく変わるため、4層256ニューロンでは表現能力が不足している
  • 損失バランスの問題: 境界条件損失とPDE損失のバランスが、特定の ReRe 範囲で崩れている
  • 学習ステップ数の不足: パラメトリックPINNは通常のPINNより複雑な関数を学習する必要があり、50,000ステップでは収束していない

PINNの精度改善は、サンプリング戦略だけでなく、ネットワーク設計・損失設計・学習スケジュールの組み合わせで検討する必要があります。

さらに深く学ぶための書籍

本記事のテーマをより深く学びたい方には、以下の書籍をおすすめします。

入門・学部レベル

  • ゼロから作るDeepLearning(斎藤康毅、オライリー・ジャパン):ニューラルネットワークと自動微分の仕組みをゼロから実装しながら学べる一冊です。PINNの失敗原因を理解するうえでも、基礎から丁寧に押さえておくことが重要です。

発展・大学院レベル

  • Data-Driven Science and Engineering: Machine Learning, Dynamical Systems, and Control(Steven L. Brunton・J. Nathan Kutz、Cambridge University Press):データ駆動型の流体力学・物理シミュレーションを体系的に解説しており、PINNを含む最新手法の理論的背景を学ぶのに適した一冊です。

参考文献

  • M. Raissi, P. Perdikaris, G.E. Karniadakis, "Physics-informed neural networks: A deep learning framework for solving forward and inverse problems involving nonlinear partial differential equations", Journal of Computational Physics, Vol. 378, pp. 686–707, 2019. DOI: 10.1016/j.jcp.2018.10.045