arXiv (ML)AI
スクラッチから学ぶ自動微分:PyTorchが物理情報ニューラルネットワークの勾配をいかに計算するか
Automatic Differentiation from Scratch: How PyTorch Computes Gradients in Physics-Informed Neural Networks
この記事についてAIに質問する →
日本語要約青い用語にマウスを合わせると解説が表示されます
本論文は、PyTorchの自動微分(AD)エンジンが物理情報ニューラルネットワーク(PINN)の訓練においていかにして勾配を計算するのかを、明示的な数値を用いて詳細に追跡する。PINNの訓練には2段階の微分が必要とされる。第一段階は、ネットワークを通じて物理導関数$\hat{y}'(t)=d\hat{y}/dt$を計算することであり、第二段階は、その物理導関数$\hat{y}'(t)$に依存する損失関数のパラメータ勾配$\nabla_\theta L$を計算することである。
本研究では、1-3-3-1構造の多層パーセプトロンと初期値問題$y'(t)+y(t)=0$、$y(0)=1$を用いて、すべてのノードにおける完全なパイプラインを追跡している。具体的には、順伝播中に構築される計算グラフ、22個のパラメータ勾配を単一パスで計算する逆モード後進走査、そして`create_graph=True`により物理情報残差を通じた正確な微分を可能にするグラフオングラフメカニズムを検証している。
すべての随伴値は、Tahimiの手計算による導出に対して検証され、P/Q感度フレームワークがPyTorchのautograd エンジンで使用されるベクトル・ヤコビアン積へとどのように繋がるかが明らかにされている。本論文は、複雑な二階微分計算が自動微分エンジンの内部でいかに機能するかを理解するための重要な教材となる。