本論文は、PyTorchの自動微分エンジンが物理情報ニューラルネットワーク(PINN)のトレーニングでどのように勾配を計算するかを、教育的なチュートリアルとして詳細に解説する。PINNでは2段階の微分が必要である:まずネットワークを通じて物理微分ŷ'(t)=dŷ/dtを計算し、次にŷ'(t)に依存する損失関数のパラメータ勾配∇θLを計算する。著者は1-3-3-1の多層パーセプトロンと初期値問題y'(t)+y(t)=0, y(0)=1を用い、各ノードでの完全なパイプラインを追跡する。具体的には、順方向パスでの計算グラフ構築、逆方向モードのバックワードトラバーサル(22個のパラメータ勾配を一度に計算)、そしてcreate_graph=Trueによって可能となる物理情報残差を通じた正しい微分のためのグラフ・オン・グラフ機構を説明する。すべての随伴値(adjoint)はTahimi(2026)の手計算と照合され、P/Q感度フレームワークとPyTorchのautogradエンジンが使用するベクトル-ヤコビアン積(VJP)を結びつける。本文は25ページ、9枚の図を含み、自動微分の基礎を深く理解したい読者に適している。著者は単純なODE問題を用いることで、ネットワーク出力から損失関数、パラメータ勾配に至る連鎖律の適用過程を明確に示している。科学計算や物理シミュレーションに自動微分を応用したい研究者にとって貴重な教育リソースである。
スクラッチからの自動微分:PyTorchが物理情報ニューラルネットワークで勾配を計算する方法
記事の要約
本論文は、1-3-3-1の多層パーセプトロンと初期値問題y'(t)+y(t)=0, y(0)=1を用いて、PyTorchの自動微分エンジンが物理情報ニューラルネットワーク(PINN)のトレーニングにおいて勾配を計算する完全なパイプラインを数値的に追跡する。順方向の計算グラフ構築、22個のパラメータ勾配を一度に計算する逆方向伝搬、およびcreate_graph=Trueによる物理残差の正しい微分を可能にするグラフ・オン・グラフ機構を詳述する。すべての随伴値はTahimi(2026)の手計算と照合され、P/Q感度フレームワークをPyTorchのautogradエンジンが使用するベクトル-ヤコビアン積に結びつける。
スクラッチからの自動微分:PyTorchが物理情報ニューラルネットワークで勾配を計算する方法