嵌入物理(PINN)还是基于物理(AD)?

news/2024/5/15 12:58:44/文章来源:https://blog.csdn.net/jerry_liufeng/article/details/129126006

文章目录

    • 1. 传统"反演问题"
      • 1.1 反演问题是什么
      • 1.2 常见反演问题
      • 1.3 传统反演问题的困境
    • 2. 深度学习优势
    • 3. AD + inversion 例子
      • 3.1 ADsurf
      • 3.2 ADseismic

在这里插入图片描述
关于PINN的内容大家可以直接google PINN (Physical-informed neural network),其主要的目的是用一个神经网络拟合物理过程,通过融入物理方程达到模型驱动的目的。但是对于很多问题,一味使用端到端的神经网络映射并不是最好的方法。如果我们已经有了非常清晰的正演表示,根据深度学习计算图的概念,梯度是可以通过自动微分(Automatic Differentiation)自动求解得到的;同时由于深度学习框架(Pytorch/tensorflow)给我们提供了大量的优化更新算法(e.g. Adam、LBFGS、SGD),我们可以将这些优化算法和更新策略(e.g. StepLR)融合到反演问题自重;其最核心的优势在于:

  1. 自动微分求解的梯度完全基于链式法则(Chain rule),所以得到的梯度是解析解,不存在任何的近似。
  2. 深度学习框架提供的便捷的GPU加速,使得反演问题变得非常高效。利用Montecarlo等方法可以非常简单地进行反演结果的不确定性估计

墙裂~推荐

[1] 基于Pytorch 自动微分框架实现的地震面波反演工具(相对于全波形反演更加简单一点点) ADsurf

[2] 基于julia和tensorflow的地震全波形反演工具ADseismic

1. 传统"反演问题"

首先,需要说明一点,以下介绍都是个人理解。

1.1 反演问题是什么

反演问题-baidubaike:反演问题是指由结果及某些一般原理(或模型)出发去确定表征问题特征的参数(或模型参数)。在工程应用中,反演问题广泛出现在地球物理、生物、医疗及建筑等领域。反演问题相对于正演问题而存在,其一般的工作程序为数据-正演模型-模型参数的估算值。因此,正演计算模型是反演问题的基础。只有得到了正演问题的数值解,才能考虑去求解反演问题

反演问题-ChatGPT:
在这里插入图片描述

1.2 常见反演问题

  1. 地震波速度反演:使用地震波数据来估计地球内部的速度结构,以了解地球内部的物质组成和构造。

  2. 医学成像反演:使用X射线、CT扫描或MRI等成像技术来创建人体内部的图像,以了解器官、骨骼和其他结构的位置和形态。

  3. 非破坏性测试反演:使用声波、电磁波或光学技术来测量物质的特定性质(如密度、电导率或折射率),以了解材料内部的组成和结构。

  4. 大气遥感反演:使用卫星或飞机上的传感器来测量大气参数(如温度、湿度和气压),以了解大气中的化学和物理过程。

  5. 电力系统反演:使用电力网络的电流和电压数据来估计网络中的未知参数(如线路阻抗和发电机容量),以了解电力系统的运行状态和稳定性。

  6. 重力反演:使用重力数据来估计地球内部的密度结构,以了解地球内部的物质分布和构造。

  7. 磁力反演:使用磁力数据来估计地球内部的磁性结构,以了解地球内部的物质分布和构造。

  8. 水文地质反演:使用地下水位、地下水流速和地下水化学数据来估计地下水储层的性质和分布,以了解地下水资源的利用和管理。

  9. 岩石物理反演:使用地震、电磁、重力和磁力数据来估计岩石的物理属性(如密度、速度、电导率和磁化率),以了解地质结构和勘探矿藏。

  10. 气象反演:使用气象数据来估计大气中的温度、湿度、气压和风速等参数,以了解天气和气候变化。

1.3 传统反演问题的困境

  1. 模型不准确:传统的反演方法通常依赖于建立一个数学模型来描述观测数据和系统属性之间的关系。然而,模型往往是简化的,忽略了一些复杂的物理现象,因此可能不准确。

  2. 数据不完整:有时,我们只能获得一部分观测数据,而且数据可能存在噪声或误差。这使得反演过程更加困难,因为我们需要在缺乏完整信息的情况下推断未知的参数。

  3. 反演过程计算复杂度高:反演问题通常涉及对大量数据进行处理和计算。传统的反演方法可能需要数小时或数天的计算时间,因此限制了反演问题的应用范围。

  4. 结果不稳定(不唯一性):有时,反演问题可能存在多个可能的解决方案,这使得结果不稳定。此外,反演问题的结果也可能对初始猜测值或正则化参数等选择敏感。

  5. 过度拟合:在某些情况下,反演过程可能会过度拟合数据,导致估计的参数值不准确。

  6. 难以处理非线性问题:许多反演问题都涉及到非线性方程组,这使得传统的线性反演方法难以处理这些问题。

2. 深度学习优势

使用自动微分技术可以带来以下一些优势,可以将其应用于传统反演方法中:

  1. 精度高:自动微分技术能够精确地计算梯度,因此可以提高反演结果的精度和准确性。

  2. 计算效率高:与传统的数值微分方法相比,自动微分技术具有更高的计算效率,因为它可以自动计算梯度,避免了重复计算和存储导数的问题。

  3. 反演过程更稳定:自动微分技术可以避免传统反演方法中存在的过度拟合问题和结果不稳定问题,从而提高反演结果的稳定性。

  4. 对非线性问题更具有鲁棒性:自动微分技术能够有效处理非线性问题,因为它可以自动计算高阶导数,并且不需要对解析函数进行求导。

  5. 易于实现和应用:自动微分技术已经在许多科学领域得到了广泛应用,并且有许多成熟的软件库可以方便地集成到反演算法中。

总的来说,使用自动微分技术可以提高反演算法的效率和精度,从而帮助我们更好地理解和解决复杂的反演问题。

3. AD + inversion 例子

3.1 ADsurf

    ADsurf 是基于Pytorch构建的地震面波反演工具,根据Hermann,2002的Fortrun程序修改得到。其通过自动微分(Automatic Differentiation)框架自动计算损失函数关于输入参数的梯度,然后利用深度学习框架中自带的优化算法如Adam等进行自动模型优化,同时利用GPU加速和矩阵计算提高了反演的效率,可以用于高效地下横波波速反演和反演结果不确定性估计。该程序已在Github中开源: https://github.com/liufeng2317/ADsurf。

3.2 ADseismic

    ADseismic是一种用于地震成像中全波形反演(FWI)的工具。它使用自动微分技术高效地计算地震波形对地下模型参数的灵敏度,然后迭代更新模型参数以使观测波形与模拟波形之间的差异最小化。FWI的目标是获得地下结构的高分辨率图像,这可以用于识别地质特征,例如断层、裂缝和油气藏等。ADseismic已被证明是一种强大的FWI工具,并已在各种地震成像研究中得到应用。

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker--------Day1

1.简介 您要如何确保应用能够在这些环境中运行和通过质量检测?并且在部署过程中不出现令人头疼的版本、配置问题,也无需重新编写代码和进行故障修复? Docker之所以发展如此迅速,也是因为它对此给出了一个标准化的解决方案-----…

Linux进程概念讲解

1、进程的基本概念在给进程下定义之前,我们先了解一下进程:我们在编写完代码并运行起来时,在我们的磁盘中会形成一个可执行文件,当我们双击这个可执行文件时(程序时),这个程序会加载到内存中&am…

从全局变量寻找到Tomcat回显方式

前言 对于回显的获取主要是在ApplicationFilterChain类的lastServicedRequest / lastServicedResponse两个属性,是使用的ThreadLocal进行修饰的,并且,在执行请求的过程中,通过反射修改属性值,能够记录下当前线程的req…

camera 硬件基本知识

参考博客:1.【Camera专题】Qcom-你应该掌握的Camera调试技巧2_c枫_撸码的日子的博客-CSDN博客_outputpixelclock 2.浩瀚之水_csdn的博客_CSDN博客-深度学习,嵌入式Linux相关知识汇总,Caffe框架领域博主 3.一个早起的程序员的博客_CSDN博客-FPGA,PCIe应用实战,PCI-E…

Introduction to Multi-Armed Bandits——05 Thompson Sampling[3]

Introduction to Multi-Armed Bandits——05 Thompson Sampling[3] 参考资料 Russo D J, Van Roy B, Kazerouni A, et al. A tutorial on thompson sampling[J]. Foundations and Trends in Machine Learning, 2018, 11(1): 1-96. ts_tutorial 项目代码地址: https://githu…

【自然语言处理】主题建模:Top2Vec(理论篇)

主题建模:Top2Vec(理论篇)Top2Vec 是一种用于 主题建模 和 语义搜索 的算法。它自动检测文本中出现的主题,并生成联合嵌入的主题、文档和词向量。 算法基于的假设:许多语义相似的文档都可以由一个潜在的主题表示。首先…

苏宁基于 AI 和图技术的智能监控体系的建设

汤泳,苏宁科技集团智能监控与运维产研中心总监,中国商业联合会智库顾问,致力于海量数据分析、基于深度学习的时间序列分析与预测、自然语言处理和图神经网络的研究。在应用实践中,通过基于 AI 的方式不断完善智能监控体系的建设&a…

如何快速掌握DDT数据驱动测试?

如何快速掌握DDT数据驱动测试? 目录:导读 前言 实施数据驱动步骤 数据驱动测试环境准备 测试步骤 数据存储 数据存在当前脚本中 json文件读取测试数据进行数据驱动测试 从xml读取数据进行数据驱动测试 总结 写在最后 前言 网盗概念相同的测试…

SpringBoot整合分布式锁redisson

1、导入maven坐标<!-- 用redisson作为所有分布式锁&#xff0c;分布式对象等功能框架--><dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>3.12.5</version></dependency>2、red…

Kafka第三章:新旧节点更替

系列文章目录 Kafka第一章&#xff1a;环境搭建 Kafka第二章&#xff1a;生产者案例 Kafka第三章&#xff1a;新旧节点更替 文章目录系列文章目录前言一、创建新节点1.克隆节点2.修改Kafka配置二、添加新节点1.启动集群2.启动105的Kafka3.创建一个要均衡的主题4.生成一个负载均…

C++项目——高并发内存池(1)--介绍及定长内存池

1.什么是内存池 1.1 池化技术 将程序中需要经常使用的核心资源先申请出来&#xff0c;放在一个池内&#xff0c;由程序自己管理&#xff0c;这样可以提高资源的使用效率&#xff0c;也可以保证本程序占有的资源数量。 比如之前博文实现的线程池&#xff0c;就是预先的申请出…

第四次作业

学生表&#xff1a;Student (Sno, Sname, Ssex , Sage, Sdept)学号&#xff0c;姓名&#xff0c;性别&#xff0c;年龄&#xff0c;所在系 Sno为主键课程表&#xff1a;Course (Cno, Cname)课程号&#xff0c;课程名 Cno为主键学生选课表&#xff1a;SC (Sno, Cno, Score)学号&…

面试经常被问悲观锁和乐观锁?什么是cas?来我花3分钟时间告诉你

锁大家都知道吧&#xff0c;多线程访问资源会存在竞争&#xff0c;那么就需要加锁进而让多个线程一个一个访问。 比如有一个房间&#xff0c;一次只能进一个人&#xff0c;现在有十个人都想进去怎么办&#xff1f; 对&#xff0c;加锁。拿一把钥匙&#xff0c;谁抢到钥匙谁就…

微服务 ModuleFederationPlugin Vue项目体验

随着公司项目的模块越来越多&#xff0c;每次打包后的项目都非常大&#xff0c;而且每修改一个小的模块&#xff0c;都会将整个项目打包&#xff0c;会非常的麻烦&#xff0c;随着前端的发展&#xff0c;微服务的出现&#xff0c;很好的解决了项目庞大的问题&#xff0c;而且每…

大数据处理学习笔记1.4 掌握Scala运算符

文章目录零、本讲学习目标一、运算符等价于方法&#xff08;一&#xff09;运算符即方法&#xff08;二&#xff09;方法即运算符1、单参方法2、多参方法3、无参方法二、Scala运算符&#xff08;一&#xff09;运算符分类表&#xff08;二&#xff09;Scala与Java运算符比较三、…

I.MX6ULL_Linux_系统篇(17) uboot分析-启动linux

bootz 启动 Linux 内核 images 全局变量 不管是 bootz 还是 bootm 命令&#xff0c;在启动 Linux 内核的时候都会用到一个重要的全局变量&#xff1a;images&#xff0c; images 在文件 cmd/bootm.c 中有如下定义&#xff1a; images 是 bootm_headers_t 类型的全局变量&…

03- 通过OpenCV进行图像变换 (OpenCV基础) (机器视觉)

知识重点 resize(src, dsize[, dst[, fx[, fy[, interpolation]]]]) 图像的放大与缩小, 变形 flip(src, flipCode) 图像的翻转 rotate(img, rotateCode) 图像的旋转 warpAffine(src, M, dsize, flags, mode, value) 仿射变换是图像旋转, 缩放, 平移的总称.具体的做法是通…

Windows10神州网信政府版麦克风、摄像头的使用

Windows10神州网信政府版默认麦克风摄像头是禁用状态&#xff0c;此禁用状态符合版本规定。 在录课和直播过程中&#xff0c;如果需要使用麦克风和摄像头的功能&#xff0c;可以这样更改&#xff1a; 1、鼠标右键点击屏幕左下角的开始菜单图标&#xff0c;选择windows中的“运…

跨时钟域 单脉冲 脉冲信号同步问题——快到慢(1)

引言 FPGA设计或者ASIC设计中经常存在多个时钟域&#xff0c;那么这些时钟域之间脉冲信号的同步该如何进行设计&#xff1f;快时钟域到慢时钟域的脉冲信号同步与慢时钟域信号到快时钟域信号的同步是不一样的。 本文先给出快时钟域到慢时钟域脉冲信号同步的方法之一&#xff…

C++设计模式(17)——备忘录模式

亦称&#xff1a; 快照、Snapshot、Memento 意图 备忘录模式是一种行为设计模式&#xff0c; 允许在不暴露对象实现细节的情况下保存和恢复对象之前的状态。 问题 假如你正在开发一款文字编辑器应用程序。 除了简单的文字编辑功能外&#xff0c; 编辑器中还要有设置文本格…