扩散波模型的物理信息神经网络
文献摘要
扩散波模型(DWM)是浅水方程的非线性二阶简化形式,利用DWM正问题的解可以预测水位和流量的变化。求解其逆问题可以根据观测结果确定关键参数(如曼宁系数、降雨强度等)。文章将改进后的PINN应用于DWM的正解和逆解。在正演问题中,与传统数值方法相比,PINN能够预测任意位置的演化。在反问题中,PINN提供了一个简单高效的求解过程。为了克服DWM的特性在训练过程中引起的梯度爆炸,采用停止梯度技术对神经网络进行训练。为了改进DWM参数的估计,提出了时间分割的概念,并提出了一种新的网络结构。为了验证PINN及其改进算法在DWM中的有效性,对7个实例进行了仿真。将正问题的PINN解与经典数值方法的结果进行了比较,并对反问题确定了正确的降水模式。
讨论|结论
波浪传播是明渠流、溃坝流、坡面流和融雪流中常见的现象,我们主要关注的是准确求解控制方程和估计方程参数。这些方程很容易解,也可以与其他问题结合起来。
波浪传播模型为浅水方程,又称动力波动方程。在水文学和水力学中广泛应用的两个简化方程是运动波动方程,一阶非线性双曲型偏微分方程和扩散波动方程,二阶非线性混合偏微分方程。基于这两个方程的模型分别称为运动波模型(kinetic wave model, KWM)和扩散波模型(diffusion wave model, DWM)。对于坡度大于0.002的陡峭河流,运动波动方程可能是模拟自然洪洪波的首选,而扩散波动方程则可以更好地模拟河流和洪泛平原的洪洪波,这些河流和洪泛平原的坡度较小,在0.001和0.0001之间变化。
正演问题是在给定初始条件、边界条件和方程参数的情况下求方程的解,反问题需要估计方程的未知参数,给定一定数量的观测值和初始和边界条件。在KWM和DWM中有实际意义的参数包括曼宁系数和降雨强度。梯度可以直接测量,所以一般不需要估计。该文献中,如何使时间分割的思路更具针对性是研究的重点之一。
对于文章考虑的一维正演DWM问题,与有限差分相比,PINN没有优势。PINN可能会产生好的解决方案,但需要更多的时间。然而,对于不规则域的高维问题,有限差分的求解过程会变得很困难,但对于PINN则不是问题,框架如下图所示:
在扩散波动方程中,在神经网络的自动微分过程中,有两项容易产生非常大的数,从而导致训练失败。一个是速度项,由于其中包含了高程参数,若地面干燥时,有可能速度项为0,这种水流设定在实际工程中经常出现。另一个是在波速和水力扩散系数中出现的Sf也会产生波动,因此,为了避免训练失败,文章采用停止梯度技术(停止梯度技术只适用于相关的损耗分量)。但不是整个损失函数。因此,在训练过程中不影响网络的更新。
此外,停止梯度技术只影响网络的自动微分,应用PINN及其改进方案求解以下7个实例:两个实例关于稳态方程,两个实例关于近似速度和扩散率,两个例子关于经典波动方程,最后一个例子是利用观测值学习扩散波动方程中的未知降雨率。将上述正问题的解与四阶Runge-Kutta格式和MacCormark格式等数值方法的解进行了比较,并将反演问题的降水强度与精确值进行了比较。对比验证了PINN、时间划分PINN(TPINN)、新架构的PINN(fPINN)、新架构时间划分PINN(fTPINN)的效果。对于非稳态情况,使用扩散波动方程的改进解,当波速和扩散率近似为常数时,De Hoog算法的解与数值方法的解吻合较好,但当扩散波动方程不近似且呈现非线性时,结果与数值方法的解相差甚远。
理论知识
扩散波动方程(曼宁方程)
在不考虑入渗的情况下,坡面流的动力波动方程由以下连续性和动量方程组成:
式中,h为水深,v为波速,I为侧向流入,g为重力加速度,S0为河床斜率,Sf为摩擦斜率。值得注意的是,I可以与空间和时间联系起来,那么它的形式就是I(x,t)。
在DWM中,假设动量方程(2)左边的前两项和右边的第二项可以视为次项,可以忽略。因此,将动量方程简化为:
其中nm为曼宁系数。
将连续性方程与Manning方程相结合,可以得到关于水深的二阶非线性方程扩散波动方程:
其中C,K各有公式可得出:
其中,当波速C和水力扩散系数K近似为常数时,扩散波动方程将简化为线性对流扩散方程。且在理想的河流中,可以将式(3)进行渲染,表示水面剖面如下:
梯度停止(Stop-gradient)技术
同讨论中出现的两种会出现梯度爆炸的情况,在文章中将采用梯度停止的方式来减少影响,停止梯度技术只适用于相关的损耗分量,如C、K等:
由于是对部分参数进行的停止梯度实验,故不会对影响网络的更新。此外,停止梯度技术只影响网络的自动分化,以SGD优化器为例详细说明。在PINN中,神经网络参数的更新为:
式中,θi为第i个历元的神经网络参数集,η为学习率,L(θi¶1;X)是(i-1)-th历元的损失函数。
图2显示了(12)和(13)给出的损失的自动微分,有和没有停止梯度技术。假设任意项a(θ;X)出现在损失的自动分化过程中。当θ接近于零时,如果这一项变成一个极大的数甚至无穷大,就会出现梯度爆炸问题,使训练过程失败。为了避免这样的问题,在建议的停止梯度技术中,这一项被视为(x)。也就是说,在计算损失函数时,它的表达式类似于常数。
这里的停止梯度意味着停止计算梯度,但不是简单地将梯度设置为零或停止训练神经网络(图2)。
它允许在反向传播中选择性地将某些项作为常量处理。此外,在训练开始时需要应用停止梯度。因为如果不从第一个历元开始就停止对这些特定项的梯度计算,神经网络的训练就会因为梯度爆炸而直接失败。当该参数接近于零时趋于无穷。在神经网络的训练中,网络参数的初始化服从正态分布N(0, σ2),使得参数接近于0。因此,这两个项目在训练开始时往往是无穷大的;
梯度爆炸问题不能通过归一化来解决。对于由网络参数推导引起的梯度爆炸,与上述的停止梯度技术相比,归一化解决的是不同的问题。
时分PINN(TPINN)
在将PINN应用于扩散波的实验中就是如此,随着时间的推移,神经网络的结果与精确解之间的差距越来越大。
在传统的数值方法中,求解是逐级进行的。而神经网络的训练不能有这样的方向,唯一的措施就是最小化损失函数。
在传统的数值方法中,求解是逐级进行的。而神经网络的训练不能有这样的方向,唯一的措施就是最小化损失函数。
共有三种时间划分:
- 根据损失函数根据需要增加搭配点,在同一时间段的训练中逐步增加搭配点,以及将不同时间段划分为不同的网络。
- 将时间段等分,将整个时间空间分成大小相同的部分,按照时间从小到大的顺序排列这些部分对于每一个epoch为常数的情况,在训练过程中依次向网络中添加该section的搭配点,直到所有的section都被添加。
- 先对神经网络进行短时间的预训练,然后根据时间划分逐步优化。目的是根据预训练损失,可以使时间段包含大致相同的训练损失。也是本文章中采取的方法。新思路的流程图如图3所示,表示预训练后的过程。结果表明,第一个子图根据训练损失将预训练过程划分为5个时间段,并将后面的5个子图分别加入到搭配点集中。第三阶段的点分布最密集,第五阶段的点分布最稀疏。该划分基于以下分析:
考虑到降雨强度导致突变,水位高度也应相应变化。然而,在实际实验中,神经网络训练的结果往往趋于。
关于m的选择,有以下几点建议:
- 当m = 1时,它明显退化为原始的PINN方法。随着m的增加,可以使网络训练更有方向性,即沿时间增加的方向进行训练。
- 同时,为了保证每个时间段的训练效果,需要保证高效训练的时代。过多的时间周期会增加计算成本。
- 因此,需要平衡方向性和效率,这意味着m的选择是经验性的。在实验中,可以比较不同m的结果,从而选择最优方案。
新结构(fPINN)
其相邻关系如下:
隐层数和神经元数目前还没有明确的选择标准,因为由于方程和参数设置的不同,每个问题适用于不同的情况:
在求解偏微分方程时,并不意味着网络层数越多,训练效果就越好。适合该问题的网络结构可以简化PINN的求解过程。
考虑到降雨强度导致突变,水位高度也应相应变化。然而,在实际实验中,由于函数f(x)的整体连续性和平滑性,神经网络训练结果的变化往往比精确解的变化要慢。
加入偏置后,输出为:
与原始PINN中的Eq.(10)不同,网络f(x)的输出由一系列激活函数组成:
从输出的形式来看,解可以用一组低阶激活函数来表示。在这种网络结构中,最后一个线性层起着至关重要的作用。它以线性方式组合不同的隐藏层,因此该层的参数可以自适应地学习隐藏层的数量。在更新网络参数的过程中,可以给更合理的隐藏层数分配更高的权重,这样就不用担心它的选择了。
在确定n的值时,可以考虑以下几点。由于期望从该网络结构中学习适当数量的隐藏层,并且每一层的重要性相等,因此从每一层提取的神经元数量保持相等。
总结:
从TPINN和fPINN的动机和分析不难看出,这两种方法并不仅仅针对DW问题。它们可以用来解决其他一般问题。当其他问题中需要考虑时间方向性,使其配点分布更加合理时,可以考虑TPINN,当需要提高原始PINN的精度时,fPINN可以是一个很好的选择。
实验设置
对于网络参数设置,每个示例具有相同的50,000个epoch,学习率为0.001,激活函数为tanh。在神经网络的架构设置上,各算法的所有样例之间没有差异。但是,fPINN和fTPINN的架构不同于PINN和TPINN。对于PINN和TPINN,神经网络的隐藏层为4层,包含50个神经元。由于fPINN和fTPINN中的神经元数量逐层递减,考虑到计算成本,后续比较时采用相同的神经元总数。即在fPINN和fTPINN中,隐藏层数为4层,每层神经元数分别为80、60、40、20个。
稳定流问题
基于Eq.(8)作为稳态问题(Lal and Toth, 2013),参考四阶龙格-库塔方法,将PINN和fPINN结果进行对比验证,其中龙格-库塔方法步长为0.005。具体模型参数设置为:这里考虑的计算域为[0,500 m],河床坡度为0.01,曼宁系数为0.03,正常水深为1 m。在不同的边界条件下,得到了不同的水面剖面。这里考虑了两种情况:上游边界条件为h0 = 2.0 m和h0 = 5.0 m。在稳态情况下,由于不涉及时间维度,所以不采用时分的思想。如图5所示,PINN和fPINN给出的解与文献一致:
等速和扩散问题
在这两个例子中,时间步长Δt = 6,空间步长Δx = 3.3。在稳定降雨情况下,在长度为182.88 m的不透水平面上,坡度和降雨条件在宽度范围内相同,则将二维问题简化为一维情况。假设波速为0.11 m/s,扩散系数为0.93 m2 /s。降雨持续时间为30 min,强度为50.8 mm/h,模拟时间为1 h。初始条件为干床,上游边界和无限下游水深为零。
在本例中,分别给出fPINN和TPINN的结果,以突出其各自的作用。从图6可以看出,当降雨量变化时,几个神经网络的结果是有偏差的。fPINN解与PINN解几乎一致,误差更小,且TPINN解在30 min时最接近参考,缓解了PINN在降水分割中的问题:
当降雨强度不恒定时,问题更接近现实。这里应用和模拟了不同的降雨强度,条件与上一个案例相同。设降雨强度从50.8 mm/h变化到101.6 mm/h,每次降雨周期为20 min。模拟结果如图7所示为下游端水深随时间变化的截面图:
非线性速度和扩散问题
模拟时间为1 h,然后由式确定波速和扩散系数。(6)、(7)为水深、曼宁系数、坡度。在本问题中,PINN、改进PINN和MacCormark的仿真结果如图8所示:
如图8所示,两种方法在前半段得到的结果与参考解吻合较好。然而,随着时间的推移,PINN的模拟结果开始更快地下降。这可能是由于PINN缺乏训练方向。这导致PINN首先拟合后半部分的时间,使其符合控制方程,而前半部分的偏差是次要的,其重要性被忽略。在增强神经网络的表达能力和时间段划分思想后,下半年fTPINN的拟合能力得到了显著增强,如图8所示。
在变雨量的情况下,这里考虑的是雨量的连续变化,这比间隔变化的雨量更接近实际情况。由于PINN结果在域中是连续变化的,而不是仅仅在离散的网格上,因此不需要像传统数值方法那样对网格结果进行处理,即可得到时空域中任意点的解。因此,PINN更适合于连续降雨的情况,这种情况往往没有解析解。模拟的降雨模式为正弦函数形式,周期为0.5 h,振幅范围为0 ~ 101.6 mm/h。
为了进一步证明算法对损失函数收敛性和训练时间的影响,还研究了PINN、TPINN、fPINN和fTPINN四种算法的损失和时间成本。每500次取损失值。
将PINN、fPINN、TPINN和fTPINN的仿真结果与图9a中的参考溶液(mcaccormark)进行比较:
如图9b所示,由于预训练,TPINN有很好的下降率,fPINN在同一历元下收敛到一个更低的值。综合仿真结果(图9a)和损耗(图9b),认为fTPINN是最优选择。
再一次验证了降水连续变化模式下PINN的可靠性。通过在fTPINN中使用所提出的两种技术,减少了在PINN中发生的误差积累。
反问题
当给定平面、降雨强度、初始条件和边界条件时,可以唯一地确定水深随时间的变化。当降雨量未知时,PINN也可以根据某些观测来学习其模式。这是其中一个主要的。用PINN、fPINN、TPINN和mcaccormark模拟稳定降雨时扩散波动方程的结果。
PINN相对于传统数值方法的优势。也就是说,它可以在同一个框架内学习正反问题,改进的PINN也可以应用于此。
用实例学习了稳定降雨的强度,其精确值为0.0508 m/s。研究了不同观测点数量对降水模式学习的影响。结果如表1所示。选取的观测点分布均匀,表明只需在时空维度上指定点的个数(即Nobs和Nobt)即可确定观测点。在这里,观测域与模拟域相同:
结果表明,观测点越多,获取的降水信息就越全面,也就越准确。在给定时空点的情况下,两种改进后的修正后的PINN可以更好地学习降雨模式,尽管原PINN也给出了可以接受的解。PINN和fTPINN的学习误差都可以控制在3% ~ 10%之间,满足实际工程要求。需要注意的是,空间点的选择比时间点的选择要复杂得多。