基于两重网格的深度学习方法求解定常偏微分方程∗
2022-08-02彭湃冯新龙
彭湃,冯新龙
(新疆大学 数学与系统科学学院,新疆 乌鲁木齐 830017)
0 引言
随着深度学习研究的不断深入,在不同的学科中产生了深刻变革,如图像识别[1]、认知科学[2]等.深度学习在处理复杂的系统模型中的预测任务时,如何赋予深度学习这一强大函数近似器以先验知识成为学者的研究重点.为了解决这个问题,有些学者致力于设计专门的神经网络将给定的先验知识隐式嵌入到神经网络结构之中,如利用卷积神经网络处理计算机视觉[3].有些学者旨在通过适当的惩罚神经网络的损失函数赋予神经网络先验知识,如利用物理信息神经网络[4](Physics-Informed Neural Networks,PINN)求解偏微分方程[5].
2019年,Raissi等人提出了物理信息神经网络用于求解偏微分方程的正问题及反问题.随后诸多学者根据不同的方程及其应用背景对PINN进行探索.在应用领域,Jin等建立了速度-压力、速度-涡度形式的NSFnets用于求解层流和槽道湍流问题[6].此外,一些学者将传统方法求解偏微分方程的技巧融入到PINN之中:如结合有限体积法在损失函数中增加界面约束做为正则化因子的DPINN[7],Kharazmi等基于Petrov-Galerkin变分原理提出了VPINN求解偏微分方程[8].通过分析前人的研究,不难发现PINN在求解偏微分方程时难以获得高精度解.为了改善神经网络求解偏微分方程的计算精度,本文提出了修正物理信息神经网络(Rectified Physics-Informed Neural Networks,RPINN)的解决方案.将两重网格[9]求解方程的思想融入到PINN求解PDE的框架中,将PINN方法得到数值解及其梯度传递到新的神经网络之中,并建立相应的损失函数,通过训练新的网络从而得到PINN数值解的修正量.
1 预备知识
在这一部分,首先介绍前馈神经网络以及物理信息神经网络求解偏微分方程的主要思想,并详细阐述了神经网络求解多目标优化问题时采取的动态权重策略.
1.1 物理信息神经网络
在数学意义上,前馈神经网络可以表示为一个复杂的非线性函数f(x;θ)L,其中L表示神经网络的层数,x表示神经网络的输入向量,θ表示神经网络的参数,包含神经网络的权重和偏置.对于一个全连接的前馈神经网络,可将其表示为(1)式:
其中:x∈Rn为输入向量,Wi表示权重矩阵,bi为偏置向量,σ(·)表示神经网络的激活函数.在神经网络中,激活函数的选取保证了网络的非线性特性.在本文中,选取双曲正切函数σ(·)=作为神经网络的激活函数.
物理信息神经网络旨在求解出一个连续的数值解u(x)使之满足方程和边界条件,为此本文定义定常偏微分方程如(2)式所示:
其中:Ω表示偏微分方程的求解区域,∂Ω为Ω的边界,x∈Rn表示空间向量,Nx表示非线性微分算子,u表示方程满足的数值解,g(x)表示方程在边界处满足的函数.
将神经网络表示的非线性函数f(x;θ)L代入到偏微分方程(2)式中,使之成为满足方程的一个潜在解.该潜在解满足残差rθ(x):
同时在边界处满足:
非线性函数f(x;θ)L关于空间向量x的梯度通过自动微分[10]求得.
若非线性函数f(x;θ)L满足偏微分方程,则残差rθ(x)=0,并且有(4)式成立.根据方程的残差和边界条件建立神经网络的损失函数:
其中:
其中:Lf和Lb分别表示满足方程和边界的损失函数.λf和λb分别表示损失函数Lf和Lb之间的权重因子,在优化过程中有效避免了梯度病态现象.{0}表示满足残差rθ(x)上的训练集,维数为为满足边界的训练集,维数为Nb.
当为神经网络建立损失函数L(x;θ)后,可通过梯度下降法、Adam算法、L-BFGS-B等一系列优化算法优化损失函数L(x;θ),从而得到一组最优的神经网络参数θ∗={W∗,b∗}.最后将物理信息神经网络求解得到的数值解表示为u∗(x)=f(x;θ∗)L.其具体求解流程如图1所示.
1.2 动态权重策略
在神经网络的训练过程中,损失函数Lf(x;θ)和Lb(x;θ)数值差异较大,在进行反向传播过程中,往往侧重优化Lf(x;θ),忽略在边界上的损失Lb(x;θ),从而导致梯度病态现象.为了缓解这一现象,本文对神经网络的损失函数采取动态权重策略.通过计算损失函数中Lf(x;θ)和Lb(x;θ)关于神经网络参数θ的梯度来动态调整权重λb,从而达到平衡损失函数Lf(x;θ)和Lb(x;θ)的作用.
考虑动态权重策略算法[11]如下:首先确定损失函数Lf的权重λf=c,其中c为常数.当采用梯度下降算法优化损失函数
时,神经网络参数θ的更新公式为:
其中:θk表示在第k次迭代过程中神经网络的参数,超参数η表示神经网络的学习率,∇(·)表示梯度算子,∇θLf表示损失函数Lf(x;θ)关于参数θk的梯度值.然后计算中间变量
其中:µ是一个取值范围为(0,1)的超参数.同时定义未采取动态权重策略为(D0)策略.
2 基于两重网格的深度学习算法
两重网格算法最初来源于对方程的迭代求解,它将细网格方程限制到粗网格上进行求解,然后将所得的解延拓到细网格之上,最后与原来的解组合形成细网格上的精确解.本文提出的基于两重网格的深度学习算法来源于两重网格求解方程的思想,将PINN得到的数值解及其梯度传递到新的神经网络之中,通过为新的神经网络建立损失函数以此获得数值解的修正量.
首先,将PINN求解偏微分方程得到的数值解u∗(x)=f(x;θ∗)L代入到偏微分方程(2)式中,可得(12)式:
(12)式表明由PINN计算得到的数值解u∗(x)与真解u存在误差ε=u−u∗(x),接下来为误差ε建立新的前馈神经网络ε(x;θ)L,使之满足(13)式:
根据(13)式,构建神经网络ε(x;θ)L与PINN数值解之间的残差方程(x;t):
并根据(13)和(14)式,为神经网络ε(x;θ)L建立损失函数
其中:
和为权重因子.{0}表示神经网络ε(x;θ)L满足残差(x)的训练集,为提高计算精度,训练集的选取与神经网络f(x;θ)L的训练集相互独立,{()}表示神经网络ε(x;θ)L在边界处的训练集.在神经网络ε(x;θ)L的损失函数Lε(x;θ)中,u∗()和u∗()为神经网络f(x;θ)L传递到神经网络ε(x;θ)L的数值解,数值解u∗关于向量x的梯度和二阶导数通过自动微分求解.
在本文中,采用Adam算法优化神经网络的损失函数ε(x;θ)L,同时为了有效获得神经网络的最优参数,采取学习率衰减策略,即经过迭代步长N次迭代后,学习率η衰减为原来的ρ倍.通过对神经网络不断优化,得到满足数值解u∗(x)的修正量ε∗=ε(x;θ)L.从而将RPINN求解偏微分方程的数值解表示为:uR=u∗(x)+ε(x;θ)L,具体求解流程如图2所示.
3 数值算例
为了验证结合动态权重策略的深度学习方法在提高计算精度上的有效性,本文给出了若干数值实验,分别为对流扩散反应方程和三维Navier-Stokes方程的求解,并且定义相对L2误差为
例1对流扩散反应方程属于流体力学中的基本方程.大气污染、河流污染等诸多变化过程都可以用对流扩散反应方程来表示.对于求解此类方程,常用的求解方法有有限元法、多重网格法.下面本文通过求解一个二维的对流扩散反应方程来验证基于两重网格的深度学习算法的有效性.定义对流扩散反应方程如下所示[12]
其中:α=0.1是扩散项参数,β=(2,3),f是满足方程的源项,求解区域为Ω=[0,1]2.定义方程满足的真解为:
在PINN求解对流扩散反应方程时,可根据方程满足的残差及其边界建立神经网络的损失函数:
其中:
Nf,Nb分别为在求解区域Ω以及边界上选取训练点的个数.
在本算例中,PINN方法中神经网络f(x;θ)L的参数设置如下:神经网络的网络结构为2+[50]×4+1,即输入层含有2个输入神经元,中间隐藏层的个数为4,每层包含有50个神经元,输出层含有1个输出神经元.训练集的维数为:Nf=10 500,Nb=2 800.初始学习率η设置为η=10−3,衰减步长为N=1 000,学习率的衰减率为ρ=0.9.动态权重策略中采取的超参数为µ=0.5,λf=1,采取Adam优化算法的迭代次数为8 000,并采用L-BFGS-B算法加速收敛.
在RPINN方法中神经网络f(x;θ)L的参数设置如下:神经网络的网络结构为2+[50]×4+1,训练集的维数为:Nf=8 000,Nb=2 000.初始学习率η设置为η=10−3,衰减步长为N=1 000,学习率的衰减率为ρ=0.9.动态权重策略中采取的超参数为µ=0.5,λf=1,采取Adam优化算法的迭代次数为3 000.并将PINN方法训练得到满足偏微分方程的数值解记作.
神经网络ε(x;θ)L的参数设置如下:神经网络的网络结构为2+[50]×4+1,训练集的维数为:=2 500,=800.初始学习率η设置为η=10−3,学习率的衰减步长为N=1 000,学习率的衰减率为ρ=0.9.动态权重策略中采取的超参数为µ=0.5,=1,采取Adam优化算法进行15 000次迭代,并采取L-BFGS-B算法加速网络的收敛.最后将神经网络ε(x;θ)L得到的修正量记作ε∗=ε(x;θ)L,从而RPINN方法得到数值解为u=+ε∗.
下面本文将多重网格、PINN、RPINN方法得到的数值解与真解进行对比分析.值得说明的是:在多重网格求解方程时,迭代方法采用SOR迭代,PINN方法选取训练集的维数为13 300,具体实验数据如表1所示.通过分析可知:与多重网格相比,RPINN方法利用更少的数据获得高精度的数值解.同时,采取动态权重策略(D1)能够有效缓解梯度病态现象,得到高精度的数值解.RPINN与PINN方法相比,计算精度提高了3至8倍.关于RPINN(D1)、PINN(D1)、多重网格求解得到的数值解与真解的图像如图3所示.
表1 多重网格、PINN和RPINN求解对流扩散反应方程之间的数据对比
然后,本文给出了RPINN求解对流扩散反应方程时,采取动态权重策略(D0)、(D1)的RPINN关于神经网络参数θ的梯度的直方分布图,分别如图4和图5所示.结果表明结合动态权重策略的RPINN中的值均趋向于0,并且数值之间差异小,验证了动态权重策略能有效缓解梯度病态现象.
最后,本文分析了RPINN的神经网络结构对修正量ε∗训练结果的影响.首先以神经网络结构为2+[50]×4+1的PINN训练得到的数值解作为基准,通过改变第二个神经网络的结构对同一数值解进行修正.具体的神经网络结构设计和误差如表2所示.结果表明:随着神经网络的网络层数和每层神经元个数的增加,对修正量ε∗训练效果越好.
表2 不同网络结构对数值精度影响的比较
例2Navier-Stokes方程是一类描述流体流动的非线性方程,在流体力学中占有重要地位.本算例中,定义稳态不可压缩的Navier-Stokes方程如(26)式所示:
其中:u=[u,v,w]T是无量纲的速度向量,p是无量纲压力,雷诺数Re=UL/v,其中U和L分别是特征速度和长度,v是流体的运动粘度,f=[f1,f2,f3]为满足方程的源项,Γ表示狄利克雷边界条件.求解区域Ω=[−1,1]3,定义方程满足的真解为:
其中:a=d=1.
在本算例中,PINN方法中神经网络参数设置如下:神经网络的网络结构为3+[50]×4+4,即输入层包含3个神经元,中间隐藏层的个数为4,每层包含50个神经元,输出层包含4个神经元.训练集的维数为:Nf=11 375,Nb=4 200.初始学习率η设置为η=10−3,衰减步长为N=1 000,学习率的衰减率为ρ=0.9.在动态权重策略中采取的超参数为µ=0.5,λf=1,Adam算法的迭代次数为8 000,采用L-BFGS-B算法加速收敛.
在RPINN方法中神经网络f(x;θ∗)L的参数设置如下:神经网络的网络结构为3+[50]×4+4,训练集的维数为:Nf=8 000,Nb=3 000.初始学习率η设置为η=10−3,衰减步长为N=1 000,学习率衰减率为ρ=0.9.在动态权重策略中采取的超参数为µ=0.5,λf=1,Adam 算法的迭代次数为4 000.
神经网络ε(x;θ)L的参数设置如下:神经网络的网络结构为3+[40]×4+4,训练集的维数为:=3 375,=1 200.初始学习率η设置为η=10−3,衰减步长为N=1 000,学习率的衰减率为ρ=0.9.动态权重策略中采取的超参数为µ=0.5,=1,Adam算法的迭代次数为12 000,采用L-BFGS-B算法加速收敛.经过对神经网络ε(x;θ)L不断训练,最终得到数值解的修正量为ε∗=ε(x;θ)L,从而将RPINN方法得到数值解记为u=+ε∗.
最后比较了PINN、RPINN得到数值解在z=0平面上与真解的误差,如图6所示.实验结果表明,PINN方法和RPINN方法在求解偏微分方程时,与求解区域内部相比,在边界上的误差偏大.有关速度场的数值解与真解的误差如表3所示.通过比较分析可知,RPINN方法与PINN方法相比,能够有效提高数值精度.
表3 PINN、RPINN方法求解Navier-Stokes方程的数值比较
4 结论
本文根据两重网格求解偏微分方程的思想,对物理信息神经网络进行改进,提出了基于两重网格的深度学习方法求解定常偏微分方程.然后针对优化过程中出现的梯度病态现象,采取了动态权重策略.最后通过若干数值实验验证,本文提出的基于两重网格的深度学习方法与原始的物理信息神经网络相比,在计算精度上提高了3至8倍.关于如何设计出快速稳定的深度学习方法以减少计算时间以及进一步提高数值精度将是以后研究工作的重点.