如何将全波形反演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

相关文章

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. 锁机制:并发控制的艺

CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比

《CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比》CSS中的position属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布... css 中的 position 属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布局和层叠关

Linux中的more 和 less区别对比分析

《Linux中的more和less区别对比分析》在Linux/Unix系统中,more和less都是用于分页查看文本文件的命令,但less是more的增强版,功能更强大,:本文主要介绍Linu... 目录1. 基础功能对比2. 常用操作对比less 的操作3. 实际使用示例4. 为什么推荐 less?5.

Spring AI 实现 STDIO和SSE MCP Server的过程详解

《SpringAI实现STDIO和SSEMCPServer的过程详解》STDIO方式是基于进程间通信,MCPClient和MCPServer运行在同一主机,主要用于本地集成、命令行工具等场景... 目录Spring AI 实现 STDIO和SSE MCP Server1.新建Spring Boot项目2.a

基于Go语言实现Base62编码的三种方式以及对比分析

《基于Go语言实现Base62编码的三种方式以及对比分析》Base62编码是一种在字符编码中使用62个字符的编码方式,在计算机科学中,,Go语言是一种静态类型、编译型语言,它由Google开发并开源,... 目录一、标准库现状与解决方案1. 标准库对比表2. 解决方案完整实现代码(含边界处理)二、关键实现细