学习周报:文献阅读+水动力学方程推导

news2024/11/25 21:38:06

目录

摘要

Abstract

文献阅读:物理信息神经网络学习自由表面流

文献摘要

讨论|结论

预备知识

浅水方程SWE(Shallow Water Equations)

质量守恒方程:

动量守恒方程:

Godunov通量法:

基本原理:

步骤:

数值通量计算:

Riemann问题:

物理意义

模型设置

一维的pinn SWE模型

模型优化

①变化的水深-沙洲场景

②放射状溃坝- 2D场景

水动力学方程推导

总结


摘要

在本周,阅读的文献为关于PINN在模拟自由表面流动中的应用,重点探讨了浅水方程(SWE)模型的实现与优化。PINN通过在神经网络的训练过程中引入物理约束,提高了预测的准确性和稳定性。关于理论学习部分,学习了浅水方程(SWE)和圣维南方程的推导,巩固了水动力学的知识。

Abstract

During this week, the literature which I read focused on the application of PINN in simulating free surface flows, emphasizing the implementation and optimization of the Shallow Water Equations (SWE) model. The accuracy and stability of predictions were improved by incorporating physical constraints into the training process of the neural network. In the theoretical learning section, I studied the derivation of the Shallow Water Equations (SWE) and the Saint-Venant equations, consolidating my knowledge of hydrodynamics.


文献阅读:物理信息神经网络学习自由表面流

Learning Free-Surface Flow with Physics-Informed Neural Networks

文献摘要

  文章介绍了物理信息神经网络(PINN)在模拟自由表面流动中的应用,重点探讨了浅水方程(SWE)模型的实现与优化。PINN通过在神经网络的训练过程中引入物理约束,提高了预测的准确性和稳定性。详细讨论了浅水方程的数学表达及其物理意义,并比较了不同形式的物理损失函数对模型性能的影响。通过引入正弦激活函数、局部自适应激活函数和注意力机制等优化策略,展示了如何在复杂变地形场景下提升PINN模型的训练效果和预测精度。实验结果表明,非保守形式的PINN在多个场景中表现出色,特别是在深度扰动和复杂地形条件下,展现了其强大的模拟能力和适应性。

  对于具有不同水深的SWE场景,与直接数值模拟相比,该方法能够产生具有竞争力的结果,其总相对L2误差为8.9e−3。


讨论|结论

文章提出了一种新的标值损失函数,它在设计上实现了质量守恒,并与两种替代方法进行了比较。此外,评估了在最近的出版物中提出的针对pinn的多种训练优化。利用浅水方程模拟自由表面流动问题,在该领域中,PINN被证明是科学机器学习领域的一种合适方法。

虽然提出的优化方法在各自的测试用例中表现良好,但它们也以新的超参数的形式引入了更多的复杂性,这些超参数再次需要仔细选择。否则,它们甚至可能带来比基线LRA方法更差的执行风险。

该文章采用两个实验案例证明,分别为:变化的水深、放射状溃坝- 2D场景

基于浅水方程(SWE),本文提出了三种在物理信息神经网络(PINN)框架下的损失函数建模方法,以实现水深和动量的预测(下一标题中详细描述):

1.直接预测水深和动量(守恒型);

2.非保守形式的浅水方程;

3.基于标量值函数的模型;

对于一个简单的深度扰动场景,三种方法在平坦的地形和初始水深与速度条件下进行了比较。实验结果表明,每种方法在不同条件下的性能有所不同,具体的实验设置可见下文描述,并通过该实验,探讨了三种优化方式的使用:

1.正弦激活函数(Sinusoidal Activation Functions):

显示出波动方程PINN模型的精度提高了一个数量级以上,归功于正弦激活函数允许的频率表示,确保训练过程稳定的专门初始化方案。然而,该方法还引入了一个新的超参数κ,该参数控制激活函数相对于每层输入域的频率,关于文中的实验,采用的κ=3.5,以便在测试用例中更好地工作

2.局部自适应激活函数(Locally Adaptive Activation Functions):

在网络激活函数的每层(L-LAAF)或每神经元(N-LAAF)的基础上引入了缩放因子。这些因素被视为网络的额外可训练参数,可在正常训练过程中进行优化。

3.注意机制(Attention Mechanism):

假设硬偏微分方程在时空域的尖锐界面中表现出来,通常难以使用标准的PINN方法进行训练,因此需要大量的搭配点来解决上述界面。试图通过引入搭配点的注意机制来缓解这种情况,这些搭配点在物理损失中都是单独加权的。将优化问题重新表述为鞍点问题minθ maxλ Lp(θ, λ),该问题首先使单个配点权值λi的损失最大化,然后使其与通常网络参数θ的损失最小化。将促使优化器的“注意力”转向那些经历高物理损失的区域。

在简单和复杂场景下的实验结果表明,PINN模型具有良好的预测能力和适应性,为自由表面流动的数值模拟提供了一种有效的新方法。


预备知识

(关于PINN的知识,前面文章中叙述过,在本文将不再赘述)

浅水方程SWE(Shallow Water Equations)

浅水方程是对一般Navier-Stokes方程的简化,为模拟自由表面流动问题提供了一个合适的近似。它们被用于许多应用,例如模拟和预测海啸波或大型洪水事件,在此文献中,将重点放在双曲偏微分方程系统形式出现的浅水方程上,方程如下所示:

质量守恒方程:

质量守恒方程描述了流体的质量守恒情况,表达式为:\frac{\partial h}{\partial t} + \frac{\partial (hu)}{\partial x} + \frac{\partial (hv)}{\partial y} = 0

动量守恒方程:

水平方向上(X):

动量守恒方程包括水平方向和垂直方向的动量守恒。其表达式分别为:

\frac{\partial (hu)}{\partial t} + \frac{\partial \left( u^2 h + \frac{1}{2} g h^2 \right)}{\partial x} = -gh \frac{\partial b}{\partial x}

竖直方向上(y)

\frac{\partial (hv)}{\partial t} + \frac{\partial \left( v^2 h + \frac{1}{2} g h^2 \right)}{\partial y} = -gh \frac{\partial b}{\partial y}

其中:

  • gr 表示重力加速度,
  • b(x)是描述地形(边界条件)的函数
Godunov通量法:

一种用于解决双曲守恒律的数值方法,特别适用于计算流体动力学中的激波和间断问题;基本思想是通过局部求解每个单元边界上的Riemann问题来计算数值通量,从而获得高分辨率的数值解。

基本原理:

一般的双曲守恒律可以写成如下形式:\frac{\partial \mathbf{u}}{\partial t} + \frac{\partial \mathbf{f}(\mathbf{u})}{\partial x} =0

其中,u是守恒变量向量,f(u) 是通量函数。

步骤:
  • 离散化网格:将计算域分成若干单元,每个单元的值代表该单元的平均值。
  • 解Riemann问题:在每个时间步长,利用每个单元边界的左右状态求解局部Riemann问题。
  • 计算数值通量:根据Riemann问题的解计算数值通量,从而更新每个单元的值。
数值通量计算

通过求解Riemann问题得到,即边界的数值通量取决于左右两侧状态的Riemann解。

例如,对于左侧状态为 uL和右侧状态为 uR,数值通量 Fi+1/2可以表示为:F_{i+\frac{1}{2}}=f\left ( u^{*} \right )

其中,u∗是Riemann问题的解。

Riemann问题

(形式同Godunov中的形式)

Riemann问题是一个具有分片常数初始条件的双曲方程初值问题,初始条件形式为:

其中,uL和 uR 分别是左侧和右侧状态。

物理意义

Riemann问题模拟的是在某个初始时刻存在一个间断面(例如冲击波、接触间断等),该间断面将介质分为两个不同状态的区域。Riemann问题的解描述了在这种初始条件下,系统如何随时间演化。在有限体积方法中,用于计算单元边界上的数值通量。通过局部求解Riemann问题,可以更准确地捕捉间断和激波,确保数值解的稳定性和保守性。

模型设置

一维的pinn SWE模型

在PINN环境中对swe建模的直接方法是让网络Φ(x, t;θ)学习水的高度和动量,

直接学习水深 \tilde{h}(x, t) 和动量 \tilde{h}u(x, t)。相应的物理损失函数定义为:

由于没有直接表示速度 u 的方式,速度需要通过\tilde{u}=\frac{\tilde{hu}}{h}来近似得到;这可能引入数值误差,尤其是在训练初期网络对 \tilde{h}的预测接近零时。(可通过将SWE重写为非保守形式,并构建一个直接输出高度和速度的PINN来解决)

将损失函数调整为:

另一个方法是定义一个至少二次连续可微的标量值函数 :\phi: \Omega \to \mathbb{R}并通过定义 \tilde{h}=-\frac{\partial \phi }{\partial x}\tilde{hu}=\frac{\partial \phi}{\partial x}来简化损失函数,定义为:

给定PINN现在输出标量值函数≈φ的预测。

关于包含相关变量的模拟设置说明可见下图:

比较了这三种方法在一个简单的深度扰动场景下的特点是一个平坦的测深和初始水高度和速度,如下所示:

结果如下表所示:

可以看出:非守恒形式和守恒形式在50K次训练后的预测误差都比较好。然而,令人惊讶的是,即使标量值方法在定义上满足质量守恒,它并不自动等于一个更好的近似值。图2中的验证图清楚地显示,性能在8K次epoch之后就停滞不前了,这表明发生了某种过拟合。利用这些结果,我们可知,非守恒形式的损失函数构建效果较好,运行结果如下所示:

模型优化

为了提高模型的训练效率和预测精度,文章介绍了几种优化策略:

  • 学习率退火:动态调整学习率,帮助模型更快收敛。
  • 正弦激活函数:引入正弦激活函数,以改善模型对高频信息的表示能力。
  • 局部自适应激活函数:在每一层或每个神经元中引入可调节的缩放因子,增强模型的灵活性。
  • 注意力机制:利用注意力机制优化物理损失中每个点的权重,解决刚性PDE问题。

①变化的水深-沙洲场景

应用在复杂的一维例子上,其中流体表面的初始深度扰动以及不同的水深测量给出。完整的初始条件和边界条件定义为:

用于训练PINN的超参数选择如下:网络深度为5层宽度为50个神经元使用tanh激活函数。这个选择是通过使用标准MSE损失对参考解决方案获得的完整模拟结果进行超参数优化得到的;使用标准输入和权值归一化方法,LRA参数设为_{\alpha _{lra }} = 0.9,优化使用标准ADAM算法,学习率为1e−3。

预测结果如下图所示:

其中一段河道的预测结果:

各种优化方式的损失值如下所示,表2给出了对不同优化方法如何执行的更细粒度的分析

经过50k次训练后,总相对l2 -误差仅为8.9e−3。我们可以清楚地看到,真解的特性被准确地预测了。在区域的相反方向上传播的两个波以及在穿越沙洲水深时向区域右侧传播的波的陡度都得到了准确的分解。此外,从时空图中我们可以看出,h和u的误差主要集中在波前形成的激波上。很容易发现,除了神经元自适应激活函数方法外,所有其他优化方法都未能在预测能力方面提供实质性的改进。

在图六中可观察到,虽然自适应激活函数方法在总体相对误差中确实表现得相当好,但它们似乎处于振荡状态,这可能是不利的。(为了减轻这种行为,对学习率进行超参数优化可能就足够了)

②放射状溃坝- 2D场景

考虑一个径向溃坝的场景,我们的初始条件是一个半径为r的圆形凸起,在一个平坦的方形盆地中。边界用流出条件建模,允许波传播出域。精确的初始条件和边界条件定义为:

(xb, yb)∈∂Ω,n⊥∂Ω和域Ω选为[−2.5,2.5]⊗(−2.5,2.5),设置与①中描述的相同。

下图定性地显示了网络学习到的水高预测,以及t = 0.1和t = 0.7两个不同时间步长的绝对误差。如前所述,我们可以清楚地观察到,模拟的特征是由网络捕获的,初始凸起向外移动,同时缓慢扩散。预测中的大部分误差再次集中在从中心向外传播的陡峭波前周围:

在表III中给出了每种优化方法在该实验中获得的最佳性能。在这种情况下,LRA、Siren和Attention方法或多或少都能很好地工作,达到最佳总相对误差为6e−2:

然而,自适应激活函数方法似乎落后了。图8中的单个损失图进一步说明了这一点。结果表明,这两种方法不仅在之前的应用中表现出振荡行为,而且在训练过程中的某些点变得不稳定,从而不再产生合理的结果:

虽然提出的优化方法在各自的测试用例中表现良好,但它们也以新的超参数的形式引入了更多的复杂性,这些超参数再次需要仔细选择。否则,它们甚至可能带来比基线LRA方法更差的执行风险。


水动力学方程推导

总结

通过阅读文献,了解到PINN在预测水动力学中的优势和局限性,在其中的损失函数构建中看到了优化方式和各个形式损失函数中的不足之处,并在理论学习中了解到了SWE和圣维南方程的由来和用处,在以后的学习中将会提供帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1938815.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分布式会话拦截器

1.分布式会话拦截器-构建拦截器 背景:对于不同的用户进行权限拦截(基于token的判断) 实现过程:在api下构建包以及相关的文件,创建UserTokenInterceptor,实现implements handlerInterceptor.重写三种主要方法。 preHandle postHandle afterCo…

MongoDB文档整理

过往mongodb文档: https://blog.csdn.net/qq_46921028/article/details/123361633https://blog.csdn.net/qq_46921028/article/details/131136935https://blog.csdn.net/qq_46921028/article/details/139247847 1. MongoDB前瞻 1、MongoDB概述: MongoDB是…

【Rust日报】在 Linux 文件系统中使用 Rust 的讨论

SIMD 加速的迭代器 单指令流多数据流(Single Instruction Multiple Data,缩写:SIMD)是一种采用一个控制器来控制多个处理器,同时对一组数据(又称"数据向量")中的每一个分别执行相同的…

PDF压缩软件电脑版 电脑pdf压缩怎么压缩文件

在数字化时代,pdf文件因其良好的兼容性和稳定性,已成为工作与生活中不可或缺的文件格式。然而,随着内容的增多,pdf文件的体积也随之增大,给文件的传输和存储带来了一定的困扰。本文将为你详细介绍如何在电脑上压缩pdf文…

【手撕数据结构】拿捏单链表

目录 单链表介绍链表的初始化打印链表增加节点尾插头插再给定位置之后插入在给定位置之前插入 删除节点尾删头删删除给定位置的节点删除给定位置之后的节点 查找节点 单链表介绍 单链表也叫做无头单向非循环链表,链表也是一种线性结构。他在逻辑结构上一定连续&…

昇思25天学习打卡营第10天 | FCN图像语义分割

学习心得:全卷积网络(FCN)在图像语义分割中的应用 图像语义分割作为计算机视觉领域的一个重要分支,对于理解图像内容提供了非常关键的技术支持。通过学习并实践全卷积网络(FCN)在图像语义分割的应用&#…

2024-07-19 Unity插件 Odin Inspector9 —— Validation Attributes

文章目录 1 说明2 验证特性2.1 AssetsOnly / SceneObjectsOnly2.2 ChildGameObjectsOnly2.3 DisallowModificationsIn2.4 FilePath2.5 FolderPath2.6 MaxValue / MinValue2.7 MinMaxSlider2.8 PropertyRange2.9 Required2.10 RequiredIn2.11 RequiredListLength2.12 ValidateIn…

【学习笔记】无人机系统(UAS)的连接、识别和跟踪(八)-无人机探测与避让(DAA)机制

目录 引言 5.6 探测与避让(DAA)机制 5.6.1 基于PC5的探测与避让(DAA)机制 引言 3GPP TS 23.256 技术规范,主要定义了3GPP系统对无人机(UAV)的连接性、身份识别、跟踪及A2X(Airc…

HP ilo4服务器硬件监控指标解读

随着企业IT架构的复杂化,服务器的稳定性和可靠性成为保障业务连续性的关键因素。HP ilo4作为HP服务器的一个重要组件,提供了强大的远程管理和监控功能。本文将对使用监控易软件通过HP ilo4进行服务器硬件监控的指标进行解读,帮助运维团队更好…

数学建模-----SPSS参数检验和非参数检验

目录 1.参数检验 1.1独立样本t检验案例分析 1.1.1查看数据编号 1.1.2确定变量所属类型 1.1.3选项里面的置信区间 1.1.4对于结果进行分析 1.2配对样本t检验案例分析 1.2.1相关设置 1.2.2分析结果 2.非参数检验 2.1对比分析 2.2非参数检验的方法 2.3案例分析 2.3.1相…

Codeforces Round 960 (Div. 2)(A~C)题

A. Submission Bait 思路: 如果最大值有奇数个显然Alice赢&#xff0c;否则只需要看排序后是否存在n−i1是否为奇数且ai>ai−1即可。 代码: #include<bits/stdc.h> using namespace std; #define N 2000010 typedef long long ll; typedef unsigned long long ull; …

KMeans等其他聚类算法

KMeans算法是一种经典的聚类方法&#xff0c;最早由Stuart Lloyd在1957年提出&#xff0c;并在1982年由J. MacQueen推广和普及。虽然KMeans已经有几十年的历史&#xff0c;但它依然是数据挖掘和机器学习领域中最常用的聚类算法之一。 数学原理 KMeans算法的目标是将数据集分成…

Blender中的重拓扑修改器如何使用?

许多人还不了解Blender中的重拓扑编辑器及其使用方法。Blender中的重拓扑修改器提供了一系列工具和选项&#xff0c;以简化创建优化网格的过程&#xff0c;无论是出于何种目的&#xff0c;都能为3D艺术家和建模者节省大量时间和精力。那么&#xff0c;在Blender中重拓扑的定义是…

springcloud-config客户端启用服务发现报错找不到bean EurekaHttpClient

背景 在对已有项目进行改造的时候&#xff0c;集成SpringConfigStarter&#xff0c;编写完bootstrap.yml&#xff0c;在idea 启动项中编辑并新增VM options -Dspring.cloud.config.discovery.enabledtrue&#xff0c;该版本不加spring不会从configService获取信息&#xff0c;…

网络结构-组件-AI(九)

深度学习网络组件 RNN公式讲解计算示意图讲解 CNN计算示意 Normalization(归一化层)Normalization常见两种方式 Dropout层 RNN 循环神经网络&#xff08;recurrent neural network&#xff09; 主要思想&#xff1a; 即将整个序列划分成多个时间步&#xff0c;将每一个时间步的…

OrangePi AIpro 快速上手初体验

开发板开箱 1.1.包装 1.2.开发版 Orange Pi AIpro Orange Pi官网-香橙派&#xff08;Orange Pi&#xff09;开发板 1.3.引脚分布 1.4开发板资源简介 1CPU配备了4核64位ARM处理器&#xff0c;其中默认预留1个给AI处理器使用NPU集成了华为昇腾310BAI处理器&#xff0c;拥有4TF…

(二)原生js案例之数码时钟计时

原生js实现的数字时间上下切换显示时间的效果&#xff0c;有参考相关设计&#xff0c;思路比较难&#xff0c;代码其实很简单 效果 代码实现 必要的样式 <style>* {padding: 0;margin: 0;}.content{/* text-align: center; */display: flex;align-items: center;justif…

华为OD机试(C卷,200分)- 二叉树计算

题目描述 给出一个二叉树如下图所示&#xff1a; 请由该二叉树生成一个新的二叉树&#xff0c;它满足其树中的每个节点将包含原始树中的左子树和右子树的和。 左子树表示该节点左侧叶子节点为根节点的一颗新树&#xff1b;右子树表示该节点右侧叶子节点为根节点的一颗新树。…

笔记:Few-Shot Learning小样本分类问题 + 孪生网络 + 预训练与微调

内容摘自王老师的B站视频&#xff0c;大家还是尽量去看视频&#xff0c;老师讲的特别好&#xff0c;不到一小时的时间就缕清了小样本学习的基础知识点~Few-Shot Learning (1/3): 基本概念_哔哩哔哩_bilibili Few-Shot Learning&#xff08;小样本分类&#xff09; 假设现在每类…

【Linux】基础I/O——动静态库的制作

我想把我写的头文件和源文件给别人用 1.把源代码直接给他2.把我们的源代码想办法打包为库 1.制作静态库 1.1.制作静态库的过程 我们先看看怎么制作静态库的&#xff01; makefile 所谓制作静态库 需要将所有的.c源文件都编译为(.o)目标文件。使用ar指令将所有目标文件打包…