物理導引神經網路方法分析

摘要
隨著GPU能力的提升,支撐深度學習的軟硬體生態得到了快速發展。透過深度學習來解決科學計算問題成了一種趨勢,其中用深度學習來求解微分方程的方法也逐漸興起。尤其引人注意的是一種稱為物理導引神經網路的方法,其為科學計算領域注入了新的活力。物理導引神經網路(PINN: Physics Informed Neural Network)方法的核心思路是用神經網路來表徵微分方程的解,透過訓練神經網路來不斷地逼近數值解,從而帶來有別於傳統數值方法的一些優勢。本文將介紹該方法的基本思想,並透過一個簡單的案例來說明其基本實現,以及該方法近期的一些發展。
引言
十七世紀末,物理和天文學上的問題催生了微積分,同時關於微分方程的研究也應運而生。十八世紀中期,伴隨著當時科技發展,微分方程已經發展成一個獨立的學科,而物理定律也不斷地以微分方程的形式出現。例如物質的輸運過程、聲音在空氣中的傳播、熱的擴散、電磁波通訊、水和空氣的流動過程,以及量子力學的物質波——薛定諤方程等等(見圖1)。物理學上的成功,使得微分方程的理論和技術延伸到化學、生物學,以及經濟學等廣闊的科學領域。因此,可以毫不懷疑地說,微分方程在科學和工程領域扮演著極為重要的作用。
圖1 微分方程舉例
利用微分方程來解決問題的常規做法是,首先對問題進行分析,再用微分方程對模型進行建模,然後收集觀測資料,配置模型的關鍵引數和條件(例如微分方程的初始條件、邊界條件等)。之後透過數學手段對微分方程進行求解,通常還需要將微分方程進行某種意義上的離散化,轉為計算機可以計算的形式,最後求得解。
多數情形下,解決實際問題的關鍵在於微分方程的解,因此如何求解微分方程的解成了解決問題的焦點。然而多數微分方程無法求得解析解,或者即使有解析解,也由於其過於複雜而無法應用,因此透過數值方法近似求解成了最切實的解決手段。對於實際問題,通常還會涉及近似解的精確性,對環境擾動的穩定性,以及求解的計算效率等問題。因此,求解微分方程已經發展成一個龐大的領域,發展出了許多數值計算方法,如差分方法、有限體積方法、有限元方法等等。
然而隨著微分方程需要解決的問題不斷地增加,傳統方法面臨著諸多問題。例如:1)適應性問題,實際問題面臨的資料總是多種多樣的,資料多但可能不完整,或具有一定的隨機性,使得傳統方法無法很好地適應這些資料;2)門檻高,專用軟體具有一定的學習難度,當計算規模變大時,往往還需要在原有的框架下編寫並行程式,導致維護成本升高;3)通用性問題,傳統方法對於不同的微分方程型別,發展了很多不同的數值手段,往往並不通用,需要為此單獨編碼,導致專用軟體為了處理通用性使得程式碼規模快速地增長。
深度學習的發展,為傳統方法注入了新的活力。相比與傳統的數值方法,物理導引神經網路方法(PINN:Physics Informed Neural Network)方法是一種無網格方法[1],其優勢在於:1)更好的適應性,能夠充分地利用收集到的資料;2)易實現,容易透過現有的深度學習工具鏈來實現,並更好地使用GPU來完成平行計算;3)更廣的適用範圍,例如適用於積分微分方程[2]、隨機偏微分方程[3]、分數階偏微分方程[4],甚至是求解一些數學上非良定的反問題[1]。
PINN方法的基本思想是將待求解用神經網路進行表徵,將初始條件、邊界條件和方程約束轉化為神經網路的損失函式,並透過梯度下降方法最佳化待求解,從而使得待求解達到物理約束要求。該方法得益於神經網路的強大表徵能力,以及目前流行的深度學習工具如TensorFlow、PyTorch。這些工具都具有強大的自動微分功能,可以輕鬆地為求導數的過程構建計算圖,訓練神經網路即可求解微分方程。
簡易案例
為了更加直觀地介紹該方法,這裡以剎車問題為例。假設有一輛小車,在距離終點1米處開始減速,且滿足一定的物理規律(如剎車速度隨距離線性遞減)。面對如上情景,需要解決的問題:a)預測小車1秒後停留的位置, 以及b)預測小車到達終點的時間。
為了回答上述問題,解決方案可大致分為三種方式:大資料方式、物理模型方式、PINN方法。
首先是大資料方式,這裡以目前流行的神經網路方法為例。神經網路方法的一般流程是1)收集儘可能多的資料;2)搭建通用的神經網路,構建損失函式,用收集到的資料訓練網路;3)利用訓練好的神經網路來進行推理,從而解決問題。
這裡假設已經透過感測器測量,收集到如下資料(非真實資料,僅作示意)。
圖2 小車剎車測量資料示意圖
記收集到的資料點為

,待擬合函式為

,神經網路表徵形式為

,如下圖:

圖3 神經網路

示意圖

接下來是寫出該問題的損失(loss)函式:
之後透過誤差反向傳播演算法訓練得到擬合函式。原問題的解答歸結為
  • 預測小車1秒後停留的位置——即求函式值

  • 預測小車到達終點的時間——即求函式滿足方

    時t的解。

大資料方式處理問題的核心是儘可能多地收集帶標籤的資料,透過收集更多的資料來幫助神經網路進行擬合,但缺點在於過於依賴帶標籤資料,而很多時候收集資料成本卻很高。
接下來是物理模型方法。作為一個物理問題,剎車問題可以透過引入物理先驗知識來求解。這裡的先驗知識是剎車速度隨距離線性遞減,因此建立如下物理模型:
其中λ可以已知也可以未知,為了簡單起見,這裡假設λ= 1。於是問題轉為求解上述物理模型(其中初始條件為

當方程形式較簡單時,即可透過解析法來求解,如該問題的解析解為

而當方程形式較複雜時,可用差分方法進行迭代求解,

該方法的好處在於無需額外的資料,只需要知道具體的物理方程的形式,以及初始位置,即可透過微分方程迭代求解。但實際上,物理方程往往含有難以測量的引數(如這裡的引數λ),且物理模型的初始假設可能會有一些問題,例如上述先驗知識——剎車速度隨距離線性遞減——並不精準。解決問題的難度在於建立一個精準的物理模型。然而現實情況往往是,的確有一些物理先驗知識,但建立精準物理模型的成本過高,而手頭上有一些測量得到的資料,卻無法將物理模型和資料進行有效地耦合。
圖4 物理模型與觀測資料的耦合問題
    下面來看看PINN方法如何處理。PINN的出發點是將物理模型和收集到的資料進行有效地耦合。核心思想是將物理約束條件作為正則項加入神經網路損失函式中,如下圖:
圖5 PINN方法示意圖
相比於神經網路解決方法,其最大的差別在於損失函式形式上的變化,其損失函式包含兩個部分:資料擬合的損失(依賴標籤資料),以及物理約束的損失(不依賴標籤資料)。而物理約束中的求導過程,則是利用了深度學習DL框架自動微分功能來完成。可以看到這種方式很好地融合了物理規律和觀測資料,可以使用少量的標籤資料,甚至是無標籤資料來訓練神經網路。同時也解決了物理模型的引數學習問題,例如學習模型引數λ可以構建如下網路:
圖6 物理模型的引數學習
這是一種優雅的解決方案。
PINN方法的實現
以上問題涉及的是常微分方程(僅含一個自變數導數),這裡再給出一個偏微分方程(含多個自變數導數)的例子。注意,傳統方法對常微分方程、偏微分方程的數值處理形式有不小的差別,但對於PINN方法,對二者的處理方式可以統一起來。下面來考慮一維的Burgers方程的求解。該方程出現在許多領域,如流體力學、氣體動力學以及交通流等問題中。它是一個基本的偏微分方程,可以看成流體動力學方程的一個簡化(去除壓力梯度項)。對於較小的粘滯係數,Burgers方程會導致激波的形成,這是傳統數值方法難以精確解決的問題之一。其方程和初邊值條件如下:
相比於常規的神經網路訓練,PINN方法在實現上的差別僅在於改變了損失函式:
其中

初邊值(初值、邊界值)上的標籤資料的損失,而

可看作偏微分的方程誤差,由於其含有偏導數,因此需額外處理含有偏導

的部分:

這裡引用PINN原作者[1]使用的TensorFlow程式碼如下:
圖7 PINN方法PDE方程損失函式的實現
    理論上,其餘部分和常規的神經網路訓練並無實質差別。但具體實現上,PINN方法在神經網路的訓練上與常規訓練還有一些差別。例如目前關於PINN的多數研究中,其網路結構多為全連線網路,且不同於計算機視覺或者自然語言領域上使用的神經網路,雖然輸入輸出的維度還比較小,但其批資料的batch_size卻比較大。例如上述的Burgers問題,輸入的維度[batch_size, x_range_size],輸出為[batch_size, u_range_size],但由於取樣點通常來源於一個很大的區域,所以batch_size數可以很大,上述問題的batch_size大小的典型值為10000。另外啟用函式也多采用Tanh或者Sigmoid函式等光滑易求導函式。還有一個需要注意的是,最佳化器的使用也有一些差異。以往的深度學習的最佳化往往採用Adam,SGD等一階梯度最佳化器,而PINN方法在最佳化上,為了得到更好的最佳化效果,常常在Adam無法最佳化後,再繼續使用擬二階的最佳化器LBFGS。在實現上,不同的深度學習框架Tensorflow(借用Scipy上的LBFGS-B)和PyTorch上還有一些實現差異,例如PyTorch上的LBFGS還容易出現最佳化不下去或者數值溢位的問題。
目前,有關PINN方法的研究正在如火如荼地開展中,也出現了一些有意思的拓展。例如,處理更復雜的時空問題,可以將大空間區域進行分解[5,6];應用於涉及積分的微分方程,可以進行簡單地離散化[7],或者是更巧妙方式如自積分方法AutoInt[8]。應對高維情況問題[9],以及結合不確定性的問題[10],不同的神經網路結構[11],以及上一篇公眾號提到的工作。同時近期也發展了一些軟體包,如DeepXDE,NVIDIA SimNet,以及SciANN、TensorDiffEq, NeuroDiffEq, IDRLNet 和基於 Julia 語言的 NeuralPDE,其中比較流行的軟體包為DeepXDE,以及NVIDIA的產品SimNet。有關這一領域更多的進展,可以參考綜述性的文章[12]與書籍[13]。
結論與思考
從上述的介紹可以看出,PINN方法是一種介於大資料方法和物理模型方法的融合方法。這種方法將物理模型和資料都轉變為了損失項,從而使得模型與資料之間的隔閡變小。可以從下圖得到一些關於PINN方法適用範圍的啟發。
圖8 PINN方法適合處理的問題(改自文獻[12])
物理方法多適用於具有精細的物理模型,但資料量少的情形;大資料方法多適用於具有很多資料,而無需關心物理模型的情形;而物理導引網路PINN方法則適用於資料量和模型均適中的情形。因此,當收集更多的資料,則可以學習到更好的物理模型,而更好的物理模型又有助於更好地同化收集到的資料,資料和模型在PINN方法中很好的交融在一起。PINN方法可以看作深度學習和物理方法結合的一種優良正規化,相信在不久的將來,一批類似於PINN的新型計算方法,將使深度學習發展的工具鏈生態更好地服務於科學計算領域。
參考文獻
[1] Austin Derrow-Pinion, Jennifer She, David Wong, et al. ETA Predictionwith Graph Neural Networks in Google Maps. 2021
[1] Raissi, M., Perdikaris, P., & Karniadakis, G. E. (2019). Physics-informed neural networks: A deep learning framework for solving forward and inverse problems involving nonlinear partial differential equations. Journal of Computational Physics, 378, 686-707.
[2] Xu, H., Zhang, D., & Wang, N. (2021). Deep-learning based discovery of partial differential equations in integral form from sparse and noisy data. Journal of Computational Physics, 445, 110592.
[3] Zhang, D., Guo, L., & Karniadakis, G. E. (2020). Learning in modal space: Solving time-dependent stochastic PDEs using physics-informed neural networks. SIAM Journal on Scientific Computing, 42(2), A639-A665.
[4] Pang, G., Lu, L., & Karniadakis, G. E. (2019). fPINNs: Fractional physics-informed neural networks. SIAM Journal on Scientific Computing, 41(4), A2603-A2626.
[5] Jagtap, A. D., & Karniadakis, G. E. (2020). Extended physics-informed neural networks (xpinns): A generalized space-time domain decomposition based deep learning framework for nonlinear partial differential equations. Communications in Computational Physics, 28(5), 2002-2041.
[6] Kharazmi, E., Zhang, Z., & Karniadakis, G. E. (2021). hp-VPINNs: Variational physics-informed neural networks with domain decomposition. Computer Methods in Applied Mechanics and Engineering, 374, 113547.
[7] Lu, L., Meng, X., Mao, Z., & Karniadakis, G. E. (2021). DeepXDE: A deep learning library for solving differential equations. SIAM Review, 63(1), 208-228.
[8] Lindell, D. B., Martel, J. N., & Wetzstein, G. (2021). Autoint: Automatic integration for fast neural volume rendering. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (pp. 14556-14565).
[9] Beck, C., Becker, S., Grohs, P., Jaafari, N., & Jentzen, A. (2021). Solving the Kolmogorov PDE by means of deep learning. Journal of Scientific Computing, 88(3), 1-28.
[10] Zhang, D., Lu, L., Guo, L., & Karniadakis, G. E. (2019). Quantifying total uncertainty in physics-informed neural networks for solving forward and inverse stochastic problems. Journal of Computational Physics, 397, 108850.
[11] Ren, P., Rao, C., Liu, Y., Wang, J., & Sun, H. (2021). PhyCRNet: Physics-informed Convolutional-Recurrent Network for Solving Spatiotemporal PDEs. arXiv preprint arXiv:2106.14103.
[12] Karniadakis, G. E., Kevrekidis, I. G., Lu, L., Perdikaris, P., Wang, S., & Yang, L. (2021). Physics-informed machine learning. Nature Reviews Physics, 3(6), 422-440.
[13] Thuerey, N., Holl, P., Mueller, M., Schnell, P., Trost, F., & Um, K. (2021). Physics-based Deep Learning. arXiv preprint arXiv:2109.05237.
關於壁仞科技研究院
壁仞科技研究院作為壁仞科技的前沿研究部門,旨在研究新型智慧計算系統的關鍵技術,重點關注新型架構,先進編譯技術和設計方法學,並將逐漸拓展研究方向,探索未來智慧系統的各種可能。壁仞科技研究院秉持開放的原則,將積極投入各類產學研合作並參與開源社群的建設,為相關領域的技術進步做出自己的貢獻。
掃碼關注我們

相關文章