如何将全波形反演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使用Pandas对比两列数据取最大值的五种方法

《Python使用Pandas对比两列数据取最大值的五种方法》本文主要介绍使用Pandas对比两列数据取最大值的五种方法,包括使用max方法、apply方法结合lambda函数、函数、clip方法、w... 目录引言一、使用max方法二、使用apply方法结合lambda函数三、使用np.maximum函数

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

SpringBoot整合DeepSeek实现AI对话功能

《SpringBoot整合DeepSeek实现AI对话功能》本文介绍了如何在SpringBoot项目中整合DeepSeekAPI和本地私有化部署DeepSeekR1模型,通过SpringAI框架简化了... 目录Spring AI版本依赖整合DeepSeek API key整合本地化部署的DeepSeek

PyCharm接入DeepSeek实现AI编程的操作流程

《PyCharm接入DeepSeek实现AI编程的操作流程》DeepSeek是一家专注于人工智能技术研发的公司,致力于开发高性能、低成本的AI模型,接下来,我们把DeepSeek接入到PyCharm中... 目录引言效果演示创建API key在PyCharm中下载Continue插件配置Continue引言

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

锐捷和腾达哪个好? 两个品牌路由器对比分析

《锐捷和腾达哪个好?两个品牌路由器对比分析》在选择路由器时,Tenda和锐捷都是备受关注的品牌,各自有独特的产品特点和市场定位,选择哪个品牌的路由器更合适,实际上取决于你的具体需求和使用场景,我们从... 在选购路由器时,锐捷和腾达都是市场上备受关注的品牌,但它们的定位和特点却有所不同。锐捷更偏向企业级和专

什么是 Ubuntu LTS?Ubuntu LTS和普通版本区别对比

《什么是UbuntuLTS?UbuntuLTS和普通版本区别对比》UbuntuLTS是Ubuntu操作系统的一个特殊版本,旨在提供更长时间的支持和稳定性,与常规的Ubuntu版本相比,LTS版... 如果你正打算安装 Ubuntu 系统,可能会被「LTS 版本」和「普通版本」给搞得一头雾水吧?尤其是对于刚入

TP-LINK/水星和hasivo交换机怎么选? 三款网管交换机系统功能对比

《TP-LINK/水星和hasivo交换机怎么选?三款网管交换机系统功能对比》今天选了三款都是”8+1″的2.5G网管交换机,分别是TP-LINK水星和hasivo交换机,该怎么选呢?这些交换机功... TP-LINK、水星和hasivo这三台交换机都是”8+1″的2.5G网管交换机,我手里的China编程has