摘要
随着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.
关于壁仞科技研究院
壁仞科技研究院作为壁仞科技的前沿研究部门,旨在研究新型智能计算系统的关键技术,重点关注新型架构,先进编译技术和设计方法学,并将逐渐拓展研究方向,探索未来智能系统的各种可能。壁仞科技研究院秉持开放的原则,将积极投入各类产学研合作并参与开源社区的建设,为相关领域的技术进步做出自己的贡献。
扫码关注我们
继续阅读
阅读原文