文章翻译记录
以 PINN 为基础,我们开发了一个框架,用于在不同震源位置和速度模型下进行地震建模。本研究的显著贡献包括:
1. 为了提高网络对不同速度模型的泛化能力,必须将速度变量 vp 作为系统的输入参数。本研究从监督学习中汲取灵感,训练过程包含两个连续步骤:速度编码波场预测器和物理引导的地震建模。在第一部分,我们将使用有限差分法(FDM)计算的不同速度模型对应的波场纳入训练数据集。随后,神经网络以速度模型为输入,生成特定速度模型的初始波场,作为后续步骤的初始条件。我们的主要目标是在不同的速度模型和相应的波场之间建立映射关系。与传统的数据驱动方法不同,我们只使用有限的训练数据。在物理引导阶段,PINN 被用来预测与第一步相同的预定速度模型的波场解决方案。PINN 遵循波方程和初始条件的约束,计算不同时间步长的波场。速度编码波场预测器为第二步中 PINN 参数的初始化提供了更可靠的基础,增强了改进后 PINN 的通用性;
2. 针对直接将 vp 作为网络输入的问题,本研究确定并深入探讨了其实际应用中固有的挑战。值得注意的是,在非均质介质中进行的模拟容易受到界面不连续性的影响,从而对网络预测的准确性产生重大影响。在 PINN 框架的基础上,我们引入了一种称为速度编码 PINN(VE-PINN)的新方法。这项研究通过在每一层中加入界面深度和速度等特征参数来区分各种速度模型。在标为 "速度编码波场预测器 "的初始步骤中引入这些特征参数作为输入,增强了网络捕捉速度变化和相应波场特征的能力;
3. 这种方法只需将声源位置作为输入,就能直接模拟不同声源位置的时域波场。神经网络以善于捕捉连续参数及其相应解之间的非线性关系而著称,因此这种方法特别有效。这种策略的基本功效源于其基本原理,即利用连续参数来表示本身具有不连续性的信息。这项研究简化了各种速度模型和波源位置的波方程建模工作流程。一旦网络的速度编码部分得到训练,就无需针对不同模型使用传统数值方法重新计算初始解。使用 PINN 进行多震源地震波模拟在频域取得了显著成功。然而,其在时域建模中的功效仍面临挑战。在时域模拟应用中,我们建议采用网络预测较窄时间范围内不同震源位置的初始解,作为整个时域物理引导训练的初始条件。利用初始部分的输出作为初始条件,VE-PINN 可以精确模拟地震波的传播。
为了对多种速度模型进行地震波建模,我们建议将速度模型 vp 作为神经网络的输入。将不同的速度模型及其相应的波场作为初始条件,目的是让神经网络熟练地学习与新速度模型相关的波场。然而,我们发现该网络难以有效捕捉突变,尤其是与地表不连续性相关的突变。此外,如图 6 所示,由于速度的离散性,网络的训练具有挑战性。在前面讨论的基础上,我们为每一层引入了界面深度和速度等参数,以表示不同的速度模型。这些参数在本文中称为特征参数,在特定范围内呈现连续变化,没有明显的中断。通过直接将界面位置作为网络的输入,界面不连续性带来的挑战得以缓解。
另一方面,将特征参数作为 PINN 的输入时,计算复杂度和成本会大幅增加。在这种情况下,神经网络需要理解不同特征参数的波场。因此,必须预测特定模型的波传播。因此,我们引入了一种新颖的分解训练方法,旨在减少 PINN 的输入维度并增强其训练稳定性。工作流程如图 2 所示,具体细节说明如下:
(1) 速度编码波场预测器: 如前所述,PINN 只求解特定速度模型的波方程。这意味着需要针对不同的速度模型和波源位置反复进行数值模拟。受监督学习的启发,我们使用了训练数据有限的速度编码方法。首先,使用有限差分法计算不同速度模型的数值波场 Ufdm。我们使用特征参数(d, vup, vlow)来表示随机的两层模型,其中 d 代表层界面深度,(vup, vlow) 分别表示顶层和底层的速度。然后,在整个域(x、z、t、d、vup、vlow、Ufdm)中随机采样这些波场的子集,形成训练数据集 D。随后,选择三个不同时间步长的波场作为 VE-PINN 第二阶段的初始条件。训练完成后,神经网络 1 无需重新训练即可推断出变速模型的波场。损失函数定义如下:
(2) 物理指导下的地震建模: 我们的研究表明,训练 PINN 的关键在于强化与初始条件相关的约束,因为这直接影响预测精度。在这一阶段,我们引入使用 NN1 生成的三个时间间隔的波场,作为针对特定速度模型进行进一步地震模拟的初始条件。通过加入与初始条件和 PDE 相关的约束条件,PINN 可以计算出具有合理精度的解。值得注意的是,对于各种速度模型,无需通过传统数值方法重新计算相应的初始波场。为了减轻高维问题带来的计算复杂性,我们选择不将特征参数作为输入。因此,损失函数定义如下:
1) 各种两层模型的地震建模:首先,我们演示了震源深度为 0.2 千米的两层速度模型的性能。特征参数包括界面深度 d∈[0.2, 1 km]和上下两层的速度,分别表示为 vup, vlow∈[0.6, 2 km/s]。我们在(d, vup, vlow)范围内随机选取 12 个样本,代表 12 个速度模型,计算 12 个速度模型的数值波场 Ufdm,并在域(x, z, t, d, vup, vlow,Ufdm)内随机选取 15,000 个点作为训练数据。神经网络 1 经过 30,000 次历时后,输出为图 5 中速度模型在 t = 0.1 秒、0.2 秒、0.4 秒时的波场 Uθ1(不包括在训练集中)。网络 1 的训练随即停止。在 "物理引导的地震建模 "阶段,我们以 Uθ1 为初始条件,对神经网络 2 进行 60,000 次历元训练。PINN 可以预测 t = 0 - 1 s 内的波场,结果如图 5 所示。第一行显示的是 VE-PINN 解决方案,第二行显示的是来自 FDM 的数值波场。两行都描述了波随时间的传播,显示了 VE-PINN 解决方案与参考方案之间的精确一致。通过对速度模型进行网络 1 条件化,VE-PINN 可以有效地模拟原始数据集中未包含的模型的波场。
为了说明 VE-PINN 的有效性,我们将其性能与传统 PINN 进行了比较。以图 5 中的模型(b)为例,其顶层和底层的速度分别为 1.0 km/s 和 1.2 km/s,界面深度为 0.5 km。利用 PINN,我们将特征参数作为输入(情况 1),将整个速度模型 vp 作为输入(情况 2)。情况 1 和情况 2 的网络训练初始条件与 VE-PINN 相同,包括 12 个速度模型及其相应的波场。图 6 比较了情况 1、情况 2 和 VEPINN(情况 3)。计算时间和误差记录见表 1。从结果中可以明显看出,本研究讨论的 VEPINN 具有显著的优势,只需较少的时间就能达到较高的精度。此外,它在捕捉界面波场变化方面的能力也有所增强。
图 8:本文使用的三层模型。本文使用的三层模型。考虑到地质条件,一般认为在大多数情况下,深层的速度超过浅层的速度。假设沉积岩的速度范围为 1.5 km/s-6.0 km/s,我们设置了一个三层水平模型。各层厚度和速度的具体情况如图 8 所示。
我们设置的速度模型如图 8 所示,感兴趣域的范围为 x、z∈[0,2 km],t∈[0,1.2 s]。特征参数包括界面深度 (d1, d2) ∈ [0, 2 km](其中 d1 < d2),以及顶层、中层和底层的速度 vup、vlow、vmid 分别∈ [0.3, 3 km/s]。我们在域中随机选择 14 个采样点(d1, d2, vup, vlow, vmid),对应 14 个速度模型。我们使用 FDM 计算数值波场 Ufdm,并在域中随机采样 30,000 个点(x, z, t, d1, d2, vup, vlow, vmid,Ufdm)作为训练数据。神经网络 1 训练 30,000 次后,图 8 中的速度模型在 t = 0.1 秒、0.2 秒、0.5 秒时产生波场 Uθ1(训练集中未使用),随后停止网络 1 的训练。在 "物理引导的地震建模 "阶段,以 Uθ1 为初始条件,对神经网络 2 进行 60,000 次历元训练。PINN 可以预测 t = 0 - 1.2 s 内的波场,结果如图 9 所示,第一行和第二行分别为 VE-PINN 和数值建模预测的波场。我们观察到,预测解与参考解之间的误差相对较小。将界面深度直接编码到神经网络输入中可以更快地捕捉到每一层内的速度变化。VE-PINN 具有模拟波现象的能力,包括在各种界面上产生的反射波和透射波。
所提出的方法适用于三层或三层以上的模型,只需修改特征参数即可。考虑到地质情况,一般认为在大多数条件下,深层的速度超过浅层的速度。假设沉积岩的速度范围在 1.5 km/s-6.0 km/s 之间,我们设置了一个三层水平模型。各层厚度和速度的具体情况如图 8 所示。
我们设置的速度模型如图 8 所示,感兴趣域的范围为 x、z∈[0,2 km],t∈[0,1.2 s]。特征参数包括界面深度 (d1, d2) ∈ [0, 2 km](其中 d1 < d2),以及顶层、中层和底层的速度 vup、vlow、vmid 分别∈ [0.3, 3 km/s]。我们在域中随机选择 14 个采样点(d1, d2, vup, vlow, vmid),对应 14 个速度模型。我们使用 FDM 计算数值波场 Ufdm,并在域中随机采样 30,000 个点(x, z, t, d1, d2, vup, vlow, vmid,Ufdm)作为训练数据。神经网络 1 训练 30,000 次后,图 8 中的速度模型在 t = 0.1 秒、0.2 秒、0.5 秒时产生波场 Uθ1(训练集中未使用),随后停止网络 1 的训练。在 "物理引导的地震建模 "阶段,以 Uθ1 为初始条件,对神经网络 2 进行 60,000 次历元训练。PINN 可以预测 t = 0 - 1.2 s 内的波场,结果如图 9 所示,第一行和第二行分别为 VE-PINN 和数值建模预测的波场。我们观察到,预测解与参考解之间的误差相对较小。将界面深度直接编码到神经网络输入中可以更快地捕捉到每一层内的速度变化。VE-PINN 具有模拟波现象的能力,包括在各种界面上产生的反射波和透射波。
相关文章:
文章翻译记录
以 PINN 为基础,我们开发了一个框架,用于在不同震源位置和速度模型下进行地震建模。本研究的显著贡献包括: 1. 为了提高网络对不同速度模型的泛化能力,必须将速度变量 vp 作为系统的输入参数。本研究从监督学习中汲取灵感…...
C++ 语法习题(2)
第三讲 循环语句 1.偶数 编写一个程序,输出 1 到 100之间(包括 1 和 100)的全部偶数。 输入格式 无输入。 输出格式 输出全部偶数,每个偶数占一行。 输入样例 No input输出样例 2 4 6 ... 100 参考代码: #include <i…...
使用Gstreamer时遇到WARNING: erroneous pipeline: no element “x264enc“(亲测有效)
WARNING: erroneous pipeline: no element “x264enc” 解决: 我下了gstreamer1.0-plugins-ugly包就解决了 sudo apt install -y gstreamer1.0-plugins-ugly...
SAP 新增移动类型简介
在SAP系统中新增移动类型的过程涉及多个步骤,包括复制现有的移动类型、调整科目设置以及进行必要的测试。以下是新增移动类型的一般步骤和关键点: 复制现有的移动类型: 使用事务代码OMJJ进入移动类型维护界面。 勾选移动类型 这里不填写移动类型,然后直接下…...
SQL性能优化策略
发现问题 通过业务监控发现慢SQL或接口响应延迟。利用性能分析工具定位问题。 定位SQL语句 使用监控工具确定影响性能的SQL语句和表。 SQL查询变慢原因 索引失效:查询未使用索引或索引效率低。多表连接:JOIN操作导致性能下降。查询字段过多…...
代码随想录第四十八天 | 198.打家劫舍, 213.打家劫舍II,337.打家劫舍III
198.打家劫舍 看完想法:这里的偷/不偷,和背包问题中的放/不放感觉是一个道理,所以在dp递推公式中仍旧使用max(dp[i-2] nums[i], dp[i-1]) int rob(vector<int>& nums) {vector<int> dp(nums.size()1,0);if(nums.size()0) …...
C#实用的工具类库
Masuit.Tools Masuit.Tools大都是静态类,加密解密,反射操作,树结构,文件探测,权重随机筛选算法,分布式短id,表达式树,linq扩展,文件压缩,多线程下载…...
首席数据官CDO证书报考指南:方式、流程、适考人群与考试难度
在信息泛滥的今天,数据已转变为企业不可或缺的宝贵资源。 面对海量的信息,如何提炼出价值,为企业带来实质性的收益?首席数据官(CDO)认证的出现正是为了满足这一需求,它不仅是个人专业能力的体现…...
数据库基础复习
数据库简介 关系型数据库:Mysql 、Oracle 、SqlServer.... DB2 达梦 非关系型数据库:Redis 、MongoDB... MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管…...
探索AI大模型(LLM)减少幻觉的三种策略
大型语言模型(LLM)在生成文本方面具有令人瞩目的能力,但在面对陌生概念和查询时,它们有时会输出看似合理却实际错误的信息,这种现象被称为“幻觉”。近期的研究发现,通过策略性微调和情境学习、检索增强等方…...
【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第一篇 嵌入式Linux入门篇-第十三章 Linux连接档
i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…...
鸿蒙语言基础类库:【@ohos.uri (URI字符串解析)】
URI字符串解析 说明: 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。开发前请熟悉鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 导入…...
JavaScript---new Map()用法
new Map 创建 Map 对象设置键值对获取值检查键是否存在键值对数量删除键值对清空所有键值对迭代 Map 在JavaScript中,Map 是一个构造函数,用于创建 Map 对象,它可以存储键值对集合。与普通的对象不同,Map 的键可以是任何类型的值&…...
【数据基础】— 基于Go1.19的站点模板爬虫的实现
目录 1. 定义目标站点 2. 使用Go的库 3. 发送HTTP请求 4. 解析HTML并提取数据 5. 存储数据 6. 并发处理 示例代码 基于Go 1.19的站点模板爬虫实现通常涉及几个关键步骤:定义目标站点、解析HTML页面、提取所需数据、存储数据以及可能的并发处理。下面我将详细…...
Angular进阶之九: JS code coverage是如何运作的
环境准备 需要用到的包 node 18.16.0# Javascript 代码编辑"babel/core": "^7.24.7","babel/preset-env": "^7.24.7","babel-loader": "^9.1.3",# 打包时使用的 module, 给代码中注入新的方法# http…...
el-table 鼠标移入更改悬停背景颜色
鼠标悬停时需要更改当前行背景颜色,一开始写的颜色会改变,但是一闪而过就没了 这是因为移入移出的动画效果导致的 .el-table__body {.el-table__row:hover {background-color: pink !important;}} 更改为后面的代码,就可以了 .el-table__…...
【《无主之地3》风格角色渲染在Unity URP下的实现_角色渲染(第四篇) 】
文章目录 概要描边问题外秒变分叉解决办法1:测试效果如下:外秒变分叉解决办法2:URP管线下PBR渲染源码关键词解释:完整shader代码如下:URP管线下二次元皮肤渲染源码URP管线下二次元头发渲染源码简要介绍文章的目的、主要内容和读者将获得的知识。 概要 提示:《无主之地3》…...
【linux服务器篇】-Redis-RDM远程连接redis
redis desktop manager 使用远程连接工具RDM连接redis 市面上比较常见的其中一款工具redis desktop manager 简单的说: Redis Desktop Manager 简单的来讲就是Redis可视化工具,可以让我们看到Redis中存储的内容。 redis desktop manager是一款功能强…...
【pytorch15】链式法则
x到u再到y,可以理解为x是输入,中间层hidden layer 是u,最后y是pred 对于一个简单的线性层可以展开得到y的表达式,但是对于实际的神经网络还要加上激活函数,此时展开就非常的复杂,不能够一次到位,…...
C#用链表和数组分别实现堆栈
1.链表 实现栈的四个基本功能 入栈 出栈 长度 栈顶值 public class 基础 : MonoBehaviour {public class MyStack{//定义每一个元素的数据结构 //下一个元素 和 该元素的值public class StackData{public StackData next;public object data;public StackData(StackData next,…...
【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...
HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...
tauri项目,如何在rust端读取电脑环境变量
如果想在前端通过调用来获取环境变量的值,可以通过标准的依赖: std::env::var(name).ok() 想在前端通过调用来获取,可以写一个command函数: #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...
JavaScript性能优化实战大纲
性能优化的核心目标 降低页面加载时间,减少内存占用,提高代码执行效率,确保流畅的用户体验。 代码层面的优化 减少全局变量使用,避免内存泄漏 // 不好的实践 var globalVar I am global;// 好的实践 (function() {var localV…...
