跳到主要內容
AI News HubLIVE
站內改寫1 分鐘閱讀

從頭實現自動微分:PyTorch如何在物理資訊神經網路中計算梯度

文章摘要

本文透過一個1-3-3-1多層感知機和初值問題y'(t)+y(t)=0, y(0)=1,詳細追蹤了PyTorch自動微分引擎在物理資訊神經網路訓練中的完整計算流程,包括前向計算圖構建、反向傳播計算22個引數梯度,以及透過create_graph=True實現基於物理殘差的正確微分的圖上圖機制。所有伴隨值均與Tahimi(2026)的手工推導核對,將P/Q敏感性框架與PyTorch的向量-雅可比積聯絡起來。

來源arXiv Machine Learning作者: Abdeladhim Tahimi
從頭實現自動微分:PyTorch如何在物理資訊神經網路中計算梯度
回報錯誤

更正管道尚未開通,可先複製下方文章資訊留存。

查看更正說明
直接讀正文

本文是一篇教育性教程,詳細解析了PyTorch自動微分引擎如何在物理資訊神經網路(PINN)訓練中計算梯度。PINN訓練需要兩個層次的微分:首先透過網路計算物理導數ŷ'(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自動微分在PINN中的兩層微分:物理導數ŷ'和引數梯度∇θL
  • 使用1-3-3-1網路結構,完整追蹤每個節點的計算圖和反向傳播
  • 解析create_graph=True的圖上圖機制,實現物理殘差的正向微分
  • 所有數值結果與手工推導一致,連線了P/Q敏感性框架與向量-雅可比積

要點與分析由自動化流程生成,可能有誤,請結合原始來源核實。