如何将全波形反演FWI与人工智能AI的神经网络做对比?

2023-10-14 10:48

本文主要是介绍如何将全波形反演FWI与人工智能AI的神经网络做对比?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1.全波形反演

2.神经网络


全波形反演可以说现在被地球物理界的小伙伴做烂了,一提到全波形反演大家先到的就是高精度...各种优点,可是他却有着与人工智能的同样的缺陷,那就是计算量的限制。但是在当下,随着计算技术的不但进步,虽然有人说摩尔定律已死,但是现在各种超级计算机横空出世,我们国家的曙光、天河等位居世界前列,相信,为了得到高精度的结果,这点计算花费是值得的,今天就来简单对地球物理的全波形反演(Full Waveform Inversion)和神经网络(Neural Network)进行简单的对比。

1.全波形反演

总所周知,全波形反演其实就是数学方法的堆叠(其实大部分的科学研究最终都要归功于数学,但是为什么没有诺贝尔数学奖呢?这个故事留给大家自己搜索)。全波形反演的流程其实非常简单:建立数据和模型的非线性关系是要点。假如数据为D,模型为M,他们之间的关系是A,那么简单的关系就是:

AM=D

A说白了就是人类一直研究的自然规律(突然想起一句话:世间万物都是由分子构成“来自《大灌篮》”),地球物理学的常用规律是动力学和运动学理论,前者是波动理论,后者是旅行时理论,同时,当参数出现误差时候,方程就转变成了:

A\Delta M=\Delta D

这里的\Delta D就是数据误差,其实就是波形反演中观测数据与模拟数据之间的误差,\Delta M就是模型误差,就是我们需要更新的模型参数更新量。通常研究过程中加入修正量,叫做bias(偏置):

A\Delta M = \Delta D + bias

这个变量的引入通常会产生一定的修正作用,我们常说到的井约束等信息等。

人类法则是人类从自然法则中获取的一个无线接近于自然法则的定律。

2.神经网络

神经网络的原理大同小异,但是他的区别在于“人类法则”未知,需要通过大量的数据进行训练才能获取的一种规律。

y = ax + b

将其写成神经网络的通用符形式为:

y = wx + bias

其中w为权重,bias为偏置。

如何建立这个“人类法则”的初始状态呢?这里就引入了一个叫做sigmoid函数和softplus函数的随机变量,用这个随机变量建立初始权重和偏置。

给出一个GitHub开源项目中的sigmoid函数的例子,项目名称mnist-neural-network,请大家自行搜索:

/*返回一个 正态分布的随机数*/
double
random_normal_distribution (void)
{return sqrt (-2.0 * log (drand ())) * cos (2.0 * M_PI * drand ());
}/*返回一个此范围内的伪随机数*/
int
random_integer (int min, int max)
{return min + rand () / (RAND_MAX / (max - min + 1) + 1);
}/*sigmoid函数*/
double
sigmoid_to_number (double number)
{
/*
a    sigmoid = 0     i=-9999...99
b            = 0.5   i=0
c            = 1     i=9999...99
*//* exp (double) returns a "double" value, so casting is not required */return 1.0 / (1.0 + exp (-number));
}/*sigmoid的导数*/
double
sigmoid_prime_to_number (double number)
{/* Avoid to call same function 2 times */double sigmoid_number = sigmoid_to_number (number);return sigmoid_number * (1.0 - sigmoid_number);
}

建立完整的初始状态后,就可以根据最速下降法或者其他一些数学方法计算梯度(权重)和修正量(偏置)了,这里需要一系列的神经网络划分,不同的神经网络对于训练结果也会有不同的结果。给出一个简单的神经网络实例:

这个例子是手写数字识别的网络划分,每个手写字体有28*28=784个像素,最终的输出只有0~9数字。

这篇关于如何将全波形反演FWI与人工智能AI的神经网络做对比?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/210000

相关文章

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方

Java+AI驱动实现PDF文件数据提取与解析

《Java+AI驱动实现PDF文件数据提取与解析》本文将和大家分享一套基于AI的体检报告智能评估方案,详细介绍从PDF上传、内容提取到AI分析、数据存储的全流程自动化实现方法,感兴趣的可以了解下... 目录一、核心流程:从上传到评估的完整链路二、第一步:解析 PDF,提取体检报告内容1. 引入依赖2. 封装

Java实现本地缓存的四种方法实现与对比

《Java实现本地缓存的四种方法实现与对比》本地缓存的优点就是速度非常快,没有网络消耗,本地缓存比如caffine,guavacache这些都是比较常用的,下面我们来看看这四种缓存的具体实现吧... 目录1、HashMap2、Guava Cache3、Caffeine4、Encache本地缓存比如 caff

MySQL中读写分离方案对比分析与选型建议

《MySQL中读写分离方案对比分析与选型建议》MySQL读写分离是提升数据库可用性和性能的常见手段,本文将围绕现实生产环境中常见的几种读写分离模式进行系统对比,希望对大家有所帮助... 目录一、问题背景介绍二、多种解决方案对比2.1 原生mysql主从复制2.2 Proxy层中间件:ProxySQL2.3

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

Spring AI使用tool Calling和MCP的示例详解

《SpringAI使用toolCalling和MCP的示例详解》SpringAI1.0.0.M6引入ToolCalling与MCP协议,提升AI与工具交互的扩展性与标准化,支持信息检索、行动执行等... 目录深入探索 Spring AI聊天接口示例Function CallingMCPSTDIOSSE结束语

详解MySQL中JSON数据类型用法及与传统JSON字符串对比

《详解MySQL中JSON数据类型用法及与传统JSON字符串对比》MySQL从5.7版本开始引入了JSON数据类型,专门用于存储JSON格式的数据,本文将为大家简单介绍一下MySQL中JSON数据类型... 目录前言基本用法jsON数据类型 vs 传统JSON字符串1. 存储方式2. 查询方式对比3. 索引

三频BE12000国补到手2549元! ROG 魔盒Pro WIFI7电竞AI路由器上架

《三频BE12000国补到手2549元!ROG魔盒ProWIFI7电竞AI路由器上架》近日,华硕带来了ROG魔盒ProWIFI7电竞AI路由器(ROGSTRIXGR7Pro),目前新... 华硕推出了ROG 魔盒Pro WIFI7电竞AI路由器(ROG STRIX GR7 Phttp://www.cppcn

SpringBoot中六种批量更新Mysql的方式效率对比分析

《SpringBoot中六种批量更新Mysql的方式效率对比分析》文章比较了MySQL大数据量批量更新的多种方法,指出REPLACEINTO和ONDUPLICATEKEY效率最高但存在数据风险,MyB... 目录效率比较测试结构数据库初始化测试数据批量修改方案第一种 for第二种 case when第三种

关于MyISAM和InnoDB对比分析

《关于MyISAM和InnoDB对比分析》:本文主要介绍关于MyISAM和InnoDB对比分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录开篇:从交通规则看存储引擎选择理解存储引擎的基本概念技术原理对比1. 事务支持:ACID的守护者2. 锁机制:并发控制的艺