CN112733449A - 一种cnn井震联合反演方法、系统、存储介质、设备及应用 - Google Patents
一种cnn井震联合反演方法、系统、存储介质、设备及应用 Download PDFInfo
- Publication number
- CN112733449A CN112733449A CN202110033985.8A CN202110033985A CN112733449A CN 112733449 A CN112733449 A CN 112733449A CN 202110033985 A CN202110033985 A CN 202110033985A CN 112733449 A CN112733449 A CN 112733449A
- Authority
- CN
- China
- Prior art keywords
- layer
- well
- cnn
- joint inversion
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/27—Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Computer Hardware Design (AREA)
- Geometry (AREA)
- Geophysics And Detection Of Objects (AREA)
Abstract
本发明属于地震与测井联合反演技术领域,公开了一种CNN井震联合反演方法、系统、存储介质、设备及应用,以地震数据y为输入,以测井数据x为输出,寻找从地震数据y到测井数据x的反演映射算子f‑1:y→x,即x=f‑1(y);正向重建测井曲线;反向更新权值和偏置。含有2层隐藏层的4层网络结构,包括输入层、第一卷积层、第二卷积层和输出层,2层隐藏层都是卷积层。本发明利用Kriging插值技术插出一些虚拟测井曲线,并将虚拟测井数据与真实测井数据一并作为训练数据供卷积神经网络学习。在不额外添加真实井的情况下,虚测井可以增加学习样本数量,从更广范围寻找反演映射算子,防止过度拟合局部训练数据。
Description
技术领域
本发明属于地震与测井联合反演技术领域,尤其涉及一种CNN井震联合反演方法、系统、存储介质、设备及应用。
背景技术
目前,最接近的现有技术:当代油气藏精细描述对地球物理学提出了更高的要求,地质、测井、地震、油藏工程等多学科之间的相互渗透和有机融合已经成为必然。地球物理参数(如速度和密度)是研究油气藏内部结构和储层流体特征的重要信息,这些信息既可以通过测井直接测量获得,也可以通过地震反演间接得到。测井数据的特点是纵向分辨率高、横向稀疏;地震数据的特点是纵向分辨率低、横向密集。地震与测井联合反演就是将两者的优势结合起,取长补短。然而,传统的地震与测井联合反演方法是模型驱动的,都假设地球物理参数与地球物理响应之间具有先验的确定性映射算子(如褶积算子和波动方程算子)。这些只有在理想条件下才成立的映射算子往往难于满足实际情况,特别是像薄互层、各向异性、多相介质这样的复杂地质情况,而且有些地球物理参数(如孔隙度、渗透率和饱和度)却很难用数学建模的方法建立起地球物理参数与地球物理响应之间的映射关系。
近年,随着深度神经网络(Deep Neural Networks,DNN)的复兴,在很多科学领域利用数据驱动的方法解反问题已经成为一种趋势。根据通用近似定理,当隐藏层有足够多的神经元时,DNN理论上可以逼近任何连续函数。基于DNN的机器学习通常称为深度学习。由定义可知,卷积神经网络(Convolutional Neural Networks,CNN)是一种特殊的DNN,具有局部连接和权值共享两大特点。由于在图像处理和语音识别中的重大突破,CNN被广泛关注并成功应用于农业、医学、交通等领域。
在地球物理领域,CNN普遍应用于分类,如断层解释、初至拾取、地震相识别、地震道编辑等。CNN通过深度学习可以自动搜索并逐渐逼近从地球物理响应到地球物理参数的映射算子,不需要任何先验的确定性映射算子。也就是说,CNN是纯数据驱动的,而不是模型驱动的。此外,CNN还是完全非线性的。虽然训练时间较长,但是一旦完成学习任务,CNN便可快速输出预测结果,大幅度降低计算成本。于是,有些学者将CNN应用于反演。反演属于监督学习的另一种应用类型,即回归。基于CNN的地震反演通常是以地震数据为输入、待反演参数为输出。例如:将法线入射的合成地震记录作为输入、声阻抗作为输出;把合成的叠前多炮地震道映射为速度模型;先将二维多炮合成地震记录编码成一个特征向量,再把这个特征向量解码成二维速度模型。
上述反演方法基本上是以一维或二维的合成地震记录为输入,以对应的一维或二维的地球物理模型为输出。为了获得大量的学习样本,建立了许多地球物理模型以生成地震记录。这些方法存在如下缺点:①学习样本全部都是模拟数据;②需要先验的确定性正演映射算子合成地震记录;③在训练数据较少的情况下难以获得理想的反演结果。
解决上述技术问题的难度:过高的打井成本使得可输入的测井数据十分有限,现有的井震联合反演的学习样本全部都是模拟数据,缺少足量实际数据支撑,且先验合成地震记录所需的确定性正演映射算子寻找存在困难,而在训练数据较少的情况下又很难获得理想的反演结果。
解决上述技术问题的意义:虚测井可在不额外添加真实井的情况下,有效增加样本数量,降低过拟合风险,提高模型泛化能力和反演精度,实现测井资料与地震资料的优势互补,满足社会生产对高精度储层勘探的需求,进一步强化产学研深度融合的技术创新体系建设。
发明内容
针对现有技术存在的问题,本发明提供了一种CNN井震联合反演方法、系统、存储介质、设备及应用。
本发明是这样实现的,一种CNN井震联合反演方法,所述CNN井震联合反演方法以地震数据y为输入,以测井数据x为输出,寻找从地震数据y到测井数据x的反演映射算子f-1:y→x,x=f-1(y);
映射反演的学习规则由代价函数推导:
式中,J(w,b;x[k],y[k])为第k个训练数据的代价函数;w和b分别表示权值和偏置;x[k]为第k个训练数据的输入;y[k]为第k个训练数据的正确输出;hw,b(x[k])为第k个训练数据的模型输出;x和y的上标[k]表示第k个训练数据;符号“.^”表示对数组进行幂运算。
进一步,所述CNN井震联合反演方法还包括:正向重建测井曲线,当前需要计算的卷积层或池化层为第l层,那么当前层的前一层为第l-1层,当前层的后一层为第l+1层;
1)卷积层
根据卷积层在卷积神经网络模型中位置的不同,对卷积层的正向计算分为以下2种情况;
(1)第l-1层为输入层;
当第l-1层为输入层时,卷积层的计算公式为:
(2)第l-1层为池化层;
当第l-1层为池化层时,卷积层的计算公式为:
2)池化层
当第l-1层为卷积层时,池化层的计算公式为
进一步,所述CNN井震联合反演方法还包括:反向更新权值和偏置,当前需要求导的卷积层或池化层为第l层,那么当前层的前一层为第l-1层,当前层的后一层为第l+1层;
1)卷积层
根据卷积层在卷积神经网络模型中位置的不同,对卷积层的反向求导分为以下2种情况;
(1)第l-1层为池化层,第l+1层为全连接层;
卷积层神经元的误差e(l)为:
e(l)=(w(l+1))T*δ(l+1);
卷积层神经元的增量δ(l)为:
δ(l)=f′(z(l)).*e(l);
J对wij (l)的偏导数和J对bi (l)的偏导数分别为:
和
(2)第l-1层为池化层(或输入层),第l+1层也为池化层;
卷积层神经元的误差ei (l)为:
卷积层神经元的增量δi (l)为:
2)池化层,根据池化层在卷积神经网络模型中位置的不同,对池化层的反向求导分为以下2种情况;
(1)第l-1层为卷积层,第l+1层为全连接层;
该情况下池化层神经元的误差e(l)和增量δ(l)亦可根据式e(l)=(w(l+1))T*δ(l+1)和式δ(l)=f′(z(l)).*e(l)进行计算;
J对wi (l)的偏导数和J对bi (l)的偏导数分别为:
和
(2)第l-1层为卷积层,第l+1层也为卷积层;
池化层神经元的误差ei (l)为:
池化层神经元的增量δi (l)为:
进一步,所述CNN井震联合反演方法的数据预处理包括深时转换和数据标准化;
所述深时转换根据下深时转换公式将测井数据转换到时间域:
式中,d是深度;v是层速度;t0是到d1的双程垂直时间;tn是对应于dn的双程垂直时间;t0=0,以d1为基准;vk是dk与dk+1之间的速度,最后一个v用于无限半空间;
所述数据标准化的输入数据与输出数据分别通过下面两式归一化:
式中,abs(x)表示对输入x中的元素取绝对值;max(y)和min(y)分别表示期望输出y中的最大元素和最小元素;期望输出在训练前进行的是归一化,所以反演后的模型输出还要进行反归一化,得归一化反变换的公式为:
进一步,所述CNN井震联合反演方法的SLU激活函数定义为:
对SLU函数求导,得:
SLU函数关于f(zi)轴对称,当神经元的输入为非负数时,输出为该非负数;当神经元的输入为负数时,输出为该负数的相反数。
进一步,所述CNN井震联合反演方法的利用Kriging插值技术插出虚拟测井曲线,虚拟测井曲线为虚测井;在对空间数据进行结构分析、确定估值邻域内样品点权重的基础上,通过加权计算来确定待估点的取值;Z(x)是定义在点支撑上的区域化变量,且满足二阶平稳和内蕴,数学期望为m,协方差函数C(h)及变异函数γ(h)存在:
E[Z(x)]=m
C(h)=E[Z(x+h)Z(x)]-m2
γ(h)=E{[Z(x+h)-Z(x)]2}/2;
现要求对中心位于x0的块段V的平均值:
进行估计;
在待估块段V的邻域内,有n个已知样本v(xi)(i=1,2,…,n),其实测值为Z(xi);Kriging方法的目标就是求一组权重系数λi(i=1,2,…,n),使得加权平均值:
成为待估块段V的平均值ZV(x0)的线性、无偏最优估计量,Kriging估计量,估值过程及结果需要满足以下两个条件;
(1)无偏条件,在二阶平稳条件下,E[ZV *(x)]=m;
使ZV *(x)成为ZV(x)的无偏估计量,E[ZV *(x)]=E[ZV(x)],则必有;
显然;
式是所谓的无偏条件,权系数之和为1,而满足此条件的估值结果ZV *(x)就是ZV(x)的无偏估计量;
(2)最优性,使估计值ZV *(x)与实际值ZV(x)之差的平方和达到最小化,在满足无偏性的条件下,估计方差δE 2为;
由方差估计可知;
使δE 2在无偏条件下达到极小的问题实际上是一个求条件极值的问题,求E{[ZV *(x)-ZV(x)]2}的极小值问题转化为无约束的拉格朗日乘数法求极值的问题,将约束条件∑λα=1也引入目标函数之中,构造一个新的函数;
式中,μ为拉格朗日算子;F为构造的关于λi(i=1,2,…,n)和μ的n+1元函数;求F的极小值,求F关于n个λi(i=1,2,…,n)和μ的偏导数并令其为0,得Kriging方程组;
整理后得;
是一个n+1个未知数(n个λi和一个μ),n+1个方程构成的方程组,解此方程组,求出权重系数λi(i=1,2,…,n)和拉格朗日算子μ;
在内蕴下,用γ(h)表示如下;
得;
代入估计方差公式,则有;
用计算的估计方差δE 2为最小估计方差,亦称Kriging方差,记为δK 2;
若用γ(h)表示,则式改写为;
用矩阵形式表示,令;
或;
则Kriging方程组表示为;
Kλ=D;
解此矩阵方程,可得;
λ=K-1D;
其估计方差为;
或
进一步,所述CNN井震联合反演方法将基于L2范数的更新规则推广到基于Lp范数的更新规则,在Lp范数情况下,在时间步t时的步长α与vt 1/p成反比例,vt为:
当p趋向于∞时,vt 1/p的极限ut为:
AdaMax算法更新权值和偏置的公式为:
t=t+1;
gt=▽θft(θt-1);
mt=β1mt-1+(1-β1)gt;
ut=max(β2ut-1,|gt|);
式中,ut为更新指数加权的无穷范数
进一步,所述CNN井震联合反演方法的均方根误差RMSE和皮尔逊相关系数PCC评价反演结果优劣的两个重要指标;
RMSE被用来评价两个数据集的接近程度,定义如下:
式中,e是均方根误差;yk和dk分别为模型输出和期望输出;N是数据点的个数;
PCC用于衡量两个数据集是否在一条线上面,定义如下:
本发明的另一目的在于提供一种实施所述CNN井震联合反演方法的CNN井震联合反演系统,所述CNN井震联合反演系统包括:含有2层隐藏层的4层网络结构,包括输入层、第一卷积层、第二卷积层和输出层,2层隐藏层都是卷积层;卷积核的规模分别为5×1、15×1和25×1;
第一卷积层与输入层之间的连接为局部连接,第二卷积层与第一卷积层之间的连接也为局部连接,输出层与第二卷积层之间的连接为全部连接;卷积层之间的局部连接采用Toeplitz连接;
本发明的另一目的在于提供一种应用所述CNN井震联合反演方法的地震与测井联合反演中的应用。
综上所述,本发明的优点及积极效果为:CNN是在大数据背景下发展起来的,在少样本情况下训练的网络模型容易过度拟合局部训练数据,使得验证数据难以获得训练数据那样的效果。基于此,本发明利用Kriging插值技术插出一些虚拟测井曲线,并将虚拟测井数据与真实测井数据一并作为训练数据供卷积神经网络学习。在不额外添加真实井的情况下,虚测井可以增加学习样本数量,从更广范围寻找反演映射算子,防止过度拟合局部训练数据。
深度神经网络特别容易出现过拟合现象。当网络模型过度偏向于训练数据时会产生过拟合,这时网络模型对实际输入的验证数据的结果表现不佳,而对训练数据的性能表现得却非常好。过拟合是降低泛化性能的主要因素之一。为了多面解决少样本情况下的过拟合问题,本发明设计了仅含两层隐藏层的网络结构,而且两层隐藏层都是卷积层。因为池化层会忽略地震波形的形变,所以去掉了池化层。
ReLU函数虽然能够防止梯度消失,但是当输入给ReLU函数的数值为非正数时,就会暂停这些神经元的活动,而且停止哪些神经元的活动都是不固定的,这说明不同的数据使用的是非统一的网络结构。此外,ReLU函数有时还会因某一层或某几层神经元的输入全部是负值而导致网络处于瘫痪状态。针对此问题,本发明提出了一种新的激活函数,即对称线性单元(Symmetric Linear Unit,SLU)函数。SLU函数既继承了ReLU函数防止梯度消失的优点,又克服了ReLU函数本身所固有的缺点。
Kriging插值后学习样本增多,随着学习样本的增加,训练的难度也跟着加大,为此本发明比较了SGD、批量和小批量3种优化算法。批量算法的稳定性能最好,但收敛速度最慢;SGD算法的收敛速度最快,但稳定性能最差;小批量算法的收敛速度既快,稳定性能又好。当小批量算法确定出合适的分组时,小批量算法可以兼得SGD算法的高效性和批量算法的稳定性。将小批量算法与Adam算法相结合,既可提高学习速度和稳定性,又能避免陷入局部极小值,从而获得全局最优解。
附图说明
图1是本发明实施例提供的CNN井震联合反演方法流程图。
图2是本发明实施例提供的CNN井震联合反演系统的结构示意图。
图3是本发明实施例提供的井的相关信息示意图。
图4是本发明实施例提供的CNN井震联合反演方法实现流程图。
图5是本发明实施例提供的神经元丢弃算法流程图;
图中:a.某一次训练;b.下一次训练。
图6是本发明实施例提供的平均池化示意图。
图7是本发明实施例提供的最大池化示意图。
图8是本发明实施例提供的Toeplitz连接方式示意图。
图9是本发明实施例提供的卷积神经网络架构(以m=5为例)示意图。
图10是本发明实施例提供的第一卷积层卷积核规模分别为5×1×3、5×1×4和5×1×5时误差随轮数的变化趋势示意图。
图11是本发明实施例提供的第一卷积层卷积核规模分别为15×1×3、15×1×4和15×1×5时误差随轮数的变化趋势示意图。
图12是本发明实施例提供的第一卷积层卷积核规模分别为25×1×3、25×1×4和25×1×5时误差随轮数的变化趋势示意图。
图13是本发明实施例提供的第一卷积层卷积核规模分别为5×1×5、15×1×5和25×1×5时误差随轮数的变化趋势示意图。
图14是本发明实施例提供的深度神经网络中的梯度消失现象示意图。
图15是本发明实施例提供的ReLU函数及其图像示意图。
图16是本发明实施例提供的SLU函数及其图像示意图。
图17是本发明实施例提供的Kriging插值的虚拟井示意图。
图18是本发明实施例提供的SGD算法、批量算法和小批量算法误差随轮数的变化趋势示意图。
图19是本发明实施例提供的映射反演误差随轮数的变化趋势示意图。
图20是本发明实施例提供的映射反演11-08井的训练结果示意图;
图中:a.地震记录;b.测井曲线;实线为期望输出,虚线为模型输出。
图21是本发明实施例提供的映射反演01-08井的验证结果示意图;
图中:a.地震记录;b.测井曲线;实线为期望输出,虚线为模型输出。
图22是本发明实施例提供的过井地震剖面示意图。
图23是本发明实施例提供的卷积神经网络映射反演的速度剖面示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种CNN井震联合反演方法、系统、存储介质、设备及应用,下面结合附图对本发明作详细的描述。
如图1所示,本发明实施例提供的CNN井震联合反演方法包括以下步骤:
S101:以地震数据y为输入,以测井数据x为输出,寻找从地震数据y到测井数据x的反演映射算子f-1:y→x,即x=f-1(y);
S102:正向重建测井曲线;
S103:反向更新权值和偏置。
如图2所示,本发明实施例提供的CNN井震联合反演系统包括含有2层隐藏层的4层网络结构,包括输入层、第一卷积层、第二卷积层和输出层,2层隐藏层都是卷积层。设计了3种卷积核,卷积核的规模分别为5×1、15×1和25×1。第一卷积层与输入层之间的连接为局部连接、第二卷积层与第一卷积层之间的连接也为局部连接、输出层与第二卷积层之间的连接为全部连接。卷积层之间的局部连接采用Toeplitz连接。
因为目标层所在时间范围内地震数据和测井数据都是50个采样点,所以输入的原始图像规模为50×1,输出的图像规模也为50×1,输出层的偏置规模亦为50×1。设第一卷积层卷积核的页规模为m,则第一卷积层的偏置规模为m×1,第一卷积层的特征图幅数为m。因为卷积层之间的连接为Toeplitz连接,所以第二卷积层卷积核的页规模为m(m+1),第二卷积层的偏置规模为2m×1,第二卷积层的特征图幅数为2m。第一卷积层特征图的行规模和列规模与第二卷积层特征图的行规模和列规模分别由各自层上的卷积核与上一层的图像进行卷积运算而确定。输出层权值的列规模为第二卷积层神经元的总个数。
下面结合附图对本发明的技术方案作进一步的描述。
本发明的学习样本来自于实际数据,包括地震数据和测井数据。目标区域内有12口井可供CNN学习,井的相关信息如图3所示。CNN是在大数据背景下发展起来的,在少样本情况下训练的网络模型容易过度拟合局部训练数据,以致于验证数据难以获得训练数据那样的效果。本发明提出了CNN井震联合反演。利用Kriging插值技术插出一些虚拟测井曲线,并将这些虚拟测井数据与真实测井数据一并作为训练数据供CNN学习。在不额外添加真实井的情况下,虚测井可以增加学习样本数量,从更广范围寻找反演映射算子,防止过度拟合局部训练数据。
为了多面解决少样本情况下的过拟合问题,本发明设计了仅含两层隐藏层的网络结构,而且两层隐藏层都是卷积层。因为池化层会忽略地震波形的形变,所以去掉了池化层。
ReLU函数虽然可以防止梯度消失,但是也会造成网络结构不统一,而且有时还会导致网络瘫痪。于是,本发明提出了一种新的激活函数,即对称线性单元(SymmetricLinear Unit,SLU)函数。SLU函数既继承了ReLU函数的优点,又克服了ReLU函数的缺点。
Kriging插值后学习样本增多,随着学习样本的增加,训练的难度也跟着加大。为此,本发明比较了SGD、批量和小批量3种优化算法,并将优选出的小批量算法与Adam算法相结合,既提高了学习速度和稳定性,又避免了陷入局部极小值,从而获得全局最优解。
实例应用表明,虚测井可以有效防止少样本情况下网络模型过度拟合局部训练数据,从而使训练的网络模型在某种程度上具有一定的泛化能力。
1方法原理
本发明是以地震数据y为输入,以测井数据x为输出,寻找从地震数据y到测井数据x的反演映射算子f-1:y→x,即x=f-1(y),本发明将其称为映射反演。
映射反演的学习规则由下面的代价函数推导:
式中,J(w,b;x[k],y[k])为第k个训练数据的代价函数;w和b分别表示权值和偏置;x[k]为第k个训练数据的输入;y[k]为第k个训练数据的正确输出;hw,b(x[k])为第k个训练数据的模型输出;x和y的上标[k]表示第k个训练数据;符号“.^”表示对数组进行幂运算。
1.1正向重建测井曲线
假设当前需要计算的卷积层(或池化层)为第l层,那么当前层的前一层为第l-1层,当前层的后一层为第l+1层。
1)卷积层
根据卷积层在卷积神经网络模型中位置的不同,对卷积层的正向计算基本上可分为以下2种情况。
(1)第l-1层为输入层;
当第l-1层为输入层时,卷积层的计算公式为:
(2)第l-1层为池化层。
当第l-1层为池化层时,卷积层的计算公式为:
2)池化层
当第l-1层为卷积层时,池化层的计算公式为:
1.2反向更新权值和偏置
假设当前需要求导的卷积层(或池化层)为第l层,那么当前层的前一层为第l-1层,当前层的后一层为第l+1层。
1)卷积层
根据卷积层在卷积神经网络模型中位置的不同,对卷积层的反向求导基本上可分为以下2种情况。
(1)第l-1层为池化层,第l+1层为全连接层;
卷积层神经元的误差e(l)为:
e(l)=(w(l+1))T*δ(l+1) (8)
卷积层神经元的增量δ(l)为:
δ(l)=f′(z(l)).*e(l) (9)
J对wij (l)的偏导数和J对bi (l)的偏导数分别为:
和
(2)第l-1层为池化层(或输入层),第l+1层也为池化层。
卷积层神经元的误差ei (l)为:
卷积层神经元的增量δi (l)为:
第2种情况计算J对wij (l)的偏导数和J对bi (l)的偏导数公式与第1种情况是一样的,可根据式(10)和式(11)进行计算。
2)池化层
根据池化层在卷积神经网络模型中位置的不同,对池化层的反向求导基本上可分为以下2种情况。
(1)第l-1层为卷积层,第l+1层为全连接层;
该情况下池化层神经元的误差e(l)和增量δ(l)亦可根据式(8)和式(9)进行计算。
J对wi (l)的偏导数和J对bi (l)的偏导数分别为:
和
(2)第l-1层为卷积层,第l+1层也为卷积层。
池化层神经元的误差ei (l)为:
池化层神经元的增量δi (l)为:
第2种情况计算J对wi (l)的偏导数和J对bi (l)的偏导数公式与第1种情况是一样的,可根据式(14)和式(15)进行计算。
CNN井震联合反演流程如图4所示。
2预处理
数据预处理既可以提高收敛速度,又有助于更好地寻找反演映射算子。数据预处理主要包括深时转换和数据标准化。
2.1深时转换
由于地震数据与测井数据分别位于时间域和深度域,在不同域很难找到两种数据之间的对应关系,因此应该将它们转换到同一域。不管是将地震数据转换到深度域,还是把测井数据转换到时间域,都必须得知道层速度。然而,本发明只知道井旁地震道的层速度,它可以通过测井获得。也就是说,只有井旁地震道能转换到深度域。换句话说,用于外推的远离井的地震道与用于训练的靠近井的地震道不一致。虽然可以通过其他方法间接求得层速度,但是本发明认为直接测量得到的层速度相对来说是比较准确的,本发明决定根据下面的深时转换公式将测井数据转换到时间域:
式中,d是深度;v是层速度;t0是到d1的双程垂直时间;tn是对应于dn的双程垂直时间。设t0=0,以d1为基准。注意:vk是dk与dk+1之间的速度,最后一个v用于无限半空间。
测井数据转换到时间域后采样间隔不再相等,而且测井数据的采样间隔小于地震数据的采样间隔,所以地震数据和测井数据应该根据具体反演方法的需要进行插值。可以归纳为:①地震数据的采样间隔保持不变,测井数据在保持自身采样点数不变的情况下等间隔插值;②地震数据的采样间隔仍保持不变,但测井数据根据地震数据的采样间隔进行插值;③地震数据和测井数据都根据测井数据的采样点数等间隔插值。这里为了节省计算时间,测井数据按照地震数据的采样间隔进行插值。
目标层位于0.574s与0.672s之间,时间采样间隔为2ms,在这段时间内地震数据和测井数据都是50个采样点。
2.2数据标准化
训练数据包括输入数据和输出数据。输入数据是地震记录;输出数据是测井参数,如速度和密度。因为输入数据与输出数据的单位、量纲以及数值大小、变化范围是不同的,如果把它们直接用于训练将很难收敛。数据标准化有助于提高收敛速度,输入数据与输出数据分别通过式(19)和式(20)进行归一化:
式中,abs(x)表示对输入x中的元素取绝对值;max(y)和min(y)分别表示期望输出y中的最大元素和最小元素。注意:期望输出的最大值和最小值通常根据以往采集的数据由经验来确定。最大值和最小值一旦被确定后,反演结果也会被限制在此范围内。最大值最好适当大于目标区域采集数据的最大值,最小值最好适当小于目标区域采集数据的最小值。
由于期望输出做了归一化处理,因此将Sigmoid函数作为输出层神经元的激活函数。虽然由交叉熵函数驱动的学习规则训练效果更佳,但由于交叉熵函数要求训练数据的期望输出必须是0或1,而作为期望输出的测井数据并非都是0或1,因此采用误差平方函数推导的学习规则。
因为期望输出在训练前进行的是归一化,所以反演后的模型输出还要进行反归一化,由式(20)可得归一化反变换的公式为:
说明:最大值和最小值反归一化后会将误差放大,若待反演参数的数量级越大,则归一化反变换后的误差也就显得越大。
3网络结构设计
本发明将简要介绍深度神经网络性能低下的原因,以及本发明是如何通过网络结构设计来克服这个困难的。
由定义可知,深度神经网络隐藏层的层数较多。然而,随着隐藏层的层数增多,深度神经网络的性能也会变得越来越差。原因是增加隐藏层的层数使得深度神经网络无法得到恰当的训练。在深度神经网络训练算法中,BP算法面临的难题有:过拟合(overfitting)和梯度消失(vanishing gradient)。
深度神经网络特别容易导致过拟合的原因是它含有更多的隐藏层及更多的权值和偏置,从而使问题变得更复杂,而复杂模型更容易导致过拟合。但是,为了获得更高的性能而增加隐藏层的层数,从而使得深度神经网络不得不去面对机器学习领域的挑战性问题。
在介绍防止过拟合的方法之前,先引见判断过拟合的方法。验证和交叉验证是判断过拟合的两种常用方法。
如果训练数据很简单,并且模型也很容易可视化,那么可以直接判断说这个模型过拟合了。但是,很多情况下又是无法判断的,因为数据的维度可能更高,对于这类数据则无法画出模型去直观地评价其过拟合的影响,因此需要用另一种方法来确定模型是否过拟合了,这种方法就是验证(validation)。
验证是一种方法,它保留一部分训练数据用于观察模型的性能。验证集不用于训练过程,因为训练数据的模型误差不能表明过拟合程度,而需要用那部分保留的训练数据去检查模型是否过拟合。当训练好的模型在那些保留的训练数据(即验证集)上表现很差时,就可以说这个模型过拟合了。在这种情形下,就要修改模型以防止过拟合。
当涉及验证时,机器学习的训练步骤如下:
步骤一:将训练数据划分为两部分:一部分用于训练,另一部分用于验证。根据经验,训练集和验证集的比例为8:2;
步骤二:用训练集训练模型;
步骤三:用验证集评估模型的性能:
a.如果模型得到了令人满意的性能,则会结束训练;
b.如果没有产生足够好的结果,则修改模型,并重复执行步骤二。
交叉验证(cross validation)是这个验证方法的一种微小的变化形式。它仍然将训练数据划分为训练集和验证集,但是会持续改变这些数据集。交叉验证并不是保留最初划分的数据集,而是反复对数据集进行划分。这样做的原因是模型可能会因为固定的验证集而过拟合。由于交叉验证保持了验证集的随机性,所以可以更好地探测模型的过拟合水平。
如果通过以上方法判断模型过拟合了,那么就要想方设法防止模型过拟合,下面将介绍防止模型过拟合的方法。
防止过拟合最具代表性的解决方案是神经元丢弃(dropout)算法,意思就是只训练那些随机挑选的神经元,而不是全部神经元。这种方法非常有效,并且实现过程也不是太复杂。图5解释了神经元丢弃算法。该算法以某一概率随机选择神经元,当将其输出设置为零时,就可以暂停这些神经元的活动。
因为在训练过程中,神经元丢弃算法在持续地转换神经元及权值和偏置,所以它能有效地防止过拟合。对于隐藏层和输入层来说,较为合适的神经元丢弃百分比分别约为50%和25%。
另一种防止过拟合的常用方法是正则化(regularization),即给代价函数添加能够提供权值和偏置大小的正则项。这个方法也有效,因为它会尽可能地简化深度神经网络的结构,进而降低过拟合的可能性。
添加正则项的代价函数为:
式中,θ表示权值或偏置;λ为权重系数。
此外,使用大量的训练数据也非常有帮助,因为这样可以降低特定数据的潜在偏差。
对于井震联合反演来说,增加训练数据意味着要打更多的井,这会使得本发明进行的这项工作变得毫无意义。因为本发明要做的工作就是在测井数据尽量少的情况下找到地震数据与测井数据之间的内在联系,然后利用已知的地震数据去外推未知的测井数据。神经元丢弃算法与代价函数添加正则项都是通过简化深度神经网络结构来防止过拟合的。考虑到井震联合反演通常使用的测井数据较少,因此本发明计划设计稍微简单的网络结构从源头上防止过度拟合学习样本。
在分类中,池化层的作用除了降低维度之外,在某种程度上还具有对图像畸变的容忍能力。如数字识别,当输入一张变形了的数字图片时,本发明希望卷积神经网络能够对其正确识别,而恰恰池化层就具有这种功能。而在反演中,本发明则不希望卷积神经网络对地震数据的微弱变化进行模糊处理,因为忽略地震波形的形变会增加多解性,故而去掉了池化层。图6和图7分别是对2幅输入图像的平均池化与最大池化。不管是平均池化,还是最大池化,虽然输入的2幅图像是不同的,但是池化结果却是一样的,这是在反演中所不期望的。
网络结构没有统一的标准,必须根据具体数据和学习样本的多少进行特别设计,最终由实验结果确定。影响网络性能的主要因素有:隐藏层的层数、卷积核的规模以及层与层之间的连接方式。
本发明针对学习样本的数量设计了含有2层隐藏层的4层网络结构,包括输入层、第一卷积层、第二卷积层和输出层,2层隐藏层都是卷积层。设计了3种卷积核,卷积核的规模分别为5×1、15×1和25×1。第一卷积层与输入层之间的连接为局部连接、第二卷积层与第一卷积层之间的连接也为局部连接、输出层与第二卷积层之间的连接为全部连接。卷积层之间的局部连接采用Toeplitz连接,Toeplitz连接方式如图8所示。
因为目标层所在时间范围内地震数据和测井数据都是50个采样点,所以输入的原始图像规模为50×1,输出的图像规模也为50×1,输出层的偏置规模亦为50×1。设第一卷积层卷积核的页规模为m,则第一卷积层的偏置规模为m×1,第一卷积层的特征图幅数为m。因为卷积层之间的连接为Toeplitz连接,所以第二卷积层卷积核的页规模为m(m+1),第二卷积层的偏置规模为2m×1,第二卷积层的特征图幅数为2m。第一卷积层特征图的行规模和列规模与第二卷积层特征图的行规模和列规模分别由各自层上的卷积核与上一层的图像进行卷积运算而确定。输出层权值的列规模为第二卷积层神经元的总个数。
图9是专门为此设计的卷积神经网络架构(以m=5为例),卷积核的规模分别为5×1、15×1和25×1的网络模型参数如表1至表3所示。当m分别为3、4和5时,卷积层之间的连接关系如表4至表6所示。第一卷积层卷积核的3种行规模和列规模与第一卷积层卷积核的3种页规模组成了9种网络结构。
表1卷积核规模为5×1的卷积神经网络模型参数
I1 | C2 | C3 | O4 | |
图像规模 | 50×1 | 46×1×m | 42×1×2m | 50×1 |
权值规模 | 5×1×m | 5×1×m(m+1) | 50×84m | |
偏置规模 | m×1 | 2m×1 | 50×1 |
表2卷积核规模为15×1的卷积神经网络模型参数
I1 | C2 | C3 | O4 | |
图像规模 | 50×1 | 36×1×m | 22×1×2m | 50×1 |
权值规模 | 15×1×m | 15×1×m(m+1) | 50×44m | |
偏置规模 | m×1 | 2m×1 | 50×1 |
表3卷积核规模为25×1的卷积神经网络模型参数
I1 | C2 | C3 | O4 | |
图像规模 | 50×1 | 26×1×m | 2×1×2m | 50×1 |
权值规模 | 25×1×m | 25×1×m(m+1) | 50×4m | |
偏置规模 | m×1 | 2m×1 | 50×1 |
表4卷积神经网络C3层与C2层之间的连接关系(m=3)
a<sub>1</sub><sup>(2)</sup> | a<sub>2</sub><sup>(2)</sup> | a<sub>3</sub><sup>(2)</sup> | |
z<sub>1</sub><sup>(3)</sup> | w<sub>11</sub><sup>(3)</sup> | ||
z<sub>2</sub><sup>(3)</sup> | w<sub>21</sub><sup>(3)</sup> | w<sub>22</sub><sup>(3)</sup> | |
z<sub>3</sub><sup>(3)</sup> | w<sub>31</sub><sup>(3)</sup> | w<sub>32</sub><sup>(3)</sup> | w<sub>33</sub><sup>(3)</sup> |
z<sub>4</sub><sup>(3)</sup> | w<sub>41</sub><sup>(3)</sup> | w<sub>42</sub><sup>(3)</sup> | w<sub>43</sub><sup>(3)</sup> |
z<sub>5</sub><sup>(3)</sup> | w<sub>52</sub><sup>(3)</sup> | w<sub>53</sub><sup>(3)</sup> | |
z<sub>6</sub><sup>(3)</sup> | w<sub>63</sub><sup>(3)</sup> |
表5卷积神经网络C3层与C2层之间的连接关系(m=4)
a<sub>1</sub><sup>(2)</sup> | a<sub>2</sub><sup>(2)</sup> | a<sub>3</sub><sup>(2)</sup> | a<sub>4</sub><sup>(2)</sup> | |
z<sub>1</sub><sup>(3)</sup> | w<sub>11</sub><sup>(3)</sup> | |||
z<sub>2</sub><sup>(3)</sup> | w<sub>21</sub><sup>(3)</sup> | w<sub>22</sub><sup>(3)</sup> | ||
z<sub>3</sub><sup>(3)</sup> | w<sub>31</sub><sup>(3)</sup> | w<sub>32</sub><sup>(3)</sup> | w<sub>33</sub><sup>(3)</sup> | |
z<sub>4</sub><sup>(3)</sup> | w<sub>41</sub><sup>(3)</sup> | w<sub>42</sub><sup>(3)</sup> | w<sub>43</sub><sup>(3)</sup> | w<sub>44</sub><sup>(3)</sup> |
z<sub>5</sub><sup>(3)</sup> | w<sub>51</sub><sup>(3)</sup> | w<sub>52</sub><sup>(3)</sup> | w<sub>53</sub><sup>(3)</sup> | w<sub>54</sub><sup>(3)</sup> |
z<sub>6</sub><sup>(3)</sup> | w<sub>62</sub><sup>(3)</sup> | w<sub>63</sub><sup>(3)</sup> | w<sub>64</sub><sup>(3)</sup> | |
z<sub>7</sub><sup>(3)</sup> | w<sub>73</sub><sup>(3)</sup> | w<sub>74</sub>(3) | ||
z<sub>8</sub><sup>(3)</sup> | w<sub>84</sub><sup>(3)</sup> |
表6卷积神经网络C3层与C2层之间的连接关系(m=5)
a<sub>1</sub><sup>(2)</sup> | a<sub>2</sub><sup>(2)</sup> | a<sub>3</sub><sup>(2)</sup> | a<sub>4</sub><sup>(2)</sup> | a<sub>5</sub><sup>(2)</sup> | |
z<sub>1</sub><sup>(3)</sup> | w<sub>11</sub><sup>(3)</sup> | ||||
z<sub>2</sub><sup>(3)</sup> | w<sub>21</sub><sup>(3)</sup> | w<sub>22</sub><sup>(3)</sup> | |||
z<sub>3</sub><sup>(3)</sup> | w<sub>31</sub><sup>(3)</sup> | w<sub>32</sub><sup>(3)</sup> | w<sub>33</sub><sup>(3)</sup> | ||
z<sub>4</sub><sup>(3)</sup> | w<sub>41</sub><sup>(3)</sup> | w<sub>42</sub><sup>(3)</sup> | w<sub>43</sub><sup>(3)</sup> | w<sub>44</sub><sup>(3)</sup> | |
z<sub>5</sub><sup>(3)</sup> | w<sub>51</sub><sup>(3)</sup> | w<sub>52</sub><sup>(3)</sup> | w<sub>53</sub><sup>(3)</sup> | w<sub>54</sub><sup>(3)</sup> | w<sub>55</sub><sup>(3)</sup> |
z<sub>6</sub><sup>(3)</sup> | w<sub>61</sub><sup>(3)</sup> | w<sub>62</sub><sup>(3)</sup> | w<sub>63</sub><sup>(3)</sup> | w<sub>64</sub><sup>(3)</sup> | w<sub>65</sub><sup>(3)</sup> |
z<sub>7</sub><sup>(3)</sup> | w<sub>72</sub><sup>(3)</sup> | w<sub>73</sub><sup>(3)</sup> | w<sub>74</sub><sup>(3)</sup> | w<sub>75</sub><sup>(3)</sup> | |
z<sub>8</sub><sup>(3)</sup> | w<sub>83</sub><sup>(3)</sup> | w<sub>84</sub><sup>(3)</sup> | w<sub>85</sub><sup>(3)</sup> | ||
z<sub>9</sub><sup>(3)</sup> | w<sub>94</sub><sup>(3)</sup> | w<sub>95</sub><sup>(3)</sup> | |||
z<sub>10</sub><sup>(3)</sup> | w<sub>105</sub><sup>(3)</sup> |
将训练数据分别输入设计的9种网络结构,每种网络结构都被训练100轮,误差随轮数的变化趋势如图10至图12所示。由图10可见,当第一卷积层卷积核的规模为5×1×5时收敛速度最快。由图10可见,当第一卷积层卷积核的规模为15×1×5时收敛速度最快。由图12可见,当第一卷积层卷积核的规模为25×1×5时收敛速度最快。然后再对优选出的3种网络结构进行比较,如图11所示。从图11中可以看出,当第一卷积层卷积核的规模为5×1×5时收敛速度最快。
4.SLU激活函数
4.1ReLU函数
当输出误差在反向传播过程中几乎无法到达更远的神经元时,就会出现梯度消失现象。BP算法是将输出误差反向传播至隐藏层来训练神经网络的一种方法。当输出误差几乎无法到达第一层隐藏层时,权值和偏置就得不到调整。输入层附近的隐藏层就得不到恰当的训练,增加的隐藏层也就变得毫无意义,如图13所示。
解决梯度消失问题的典型方法是将整流线性单元(Rectified Linear Unit,ReLU)函数作为激活函数。ReLU函数的定义为:
图14展示了ReLU函数的图像。当神经元的输入为非正数时,输出为0;当神经元的输入为正数时,输出为该正数。
现在需要提供给BP算法的另一个元素是ReLU函数的导数。根据ReLU函数的定义,ReLU函数的导数为:
ReLU函数比Sigmoid函数能更好地传递误差。Sigmoid函数限制神经元的输出为单位1,而ReLU函数并没有施加这个限制。然而,ReLU函数对初始权值和偏置比较敏感,偶尔会因得不到恰当的训练而产生错误的输出,Sigmoid函数是绝对不会发生这种事情的。
4.2SLU函数
ReLU函数虽然能够防止梯度消失,但是当输入给ReLU函数的数值为非正数时,就会暂停这些神经元的活动,而且停止哪些神经元的活动都是不固定的,这说明不同的数据使用的是非统一的网络结构。此外,ReLU函数有时还会因某一层或某几层神经元的输入全部是负值而导致网络处于瘫痪状态。针对该问题,本发明提出了一种新的激活函数,即对称线性单元(Symmetric Linear Unit,SLU)函数。SLU函数既继承了ReLU函数防止梯度消失的优点,又克服了ReLU函数的上述缺点。
SLU函数的定义为:
对SLU函数求导,得:
图15描绘了SLU函数的图像。SLU函数关于f(zi)轴对称。当神经元的输入为非负数时,输出为该非负数;当神经元的输入为负数时,输出为该负数的相反数。
5虚测井构建
CNN是在大数据背景下发展起来的,在少样本情况下训练的网络模型容易过度拟合局部训练数据,以致于验证数据难以获得训练数据那样的效果。基于此,本发明提出利用Kriging插值技术插出一些虚拟测井曲线,称为虚测井。这些虚拟测井数据与真实测井数据一起作为训练数据供卷积神经网络学习。在不额外添加真实井的情况下,虚测井可以增加学习样本数量,从更广范围寻找反演映射算子,防止过度拟合局部训练数据。
Kriging是对区域化变量进行线性、无偏最优估计的方法,它假设数据变化呈正态分布,认为区域化变量的期望值是未知的。该估值过程类似于加权滑动平均的方法,即在对空间数据进行结构分析、确定估值邻域内样品点权重的基础上,通过加权计算来确定待估点的取值。
设Z(x)是定义在点支撑上的区域化变量,且满足二阶平稳和内蕴假设,其数学期望为m,协方差函数C(h)及变异函数γ(h)存在。即:
E[Z(x)]=m
C(h)=E[Z(x+h)Z(x)]-m2
γ(h)=E{[Z(x+h)-Z(x)]2}/2
现要求对中心位于x0的块段V的平均值:
进行估计。
假设在待估块段V的邻域内,有n个已知样本v(xi)(i=1,2,…,n),其实测值为Z(xi)。Kriging方法的目标就是求一组权重系数λi(i=1,2,…,n),使得加权平均值:
成为待估块段V的平均值ZV(x0)的线性、无偏最优估计量,即Kriging估计量。为此,估值过程及结果需要满足以下两个条件。
(1)无偏条件
在二阶平稳条件下,E[ZV *(x)]=m,而;
要使ZV *(x)成为ZV(x)的无偏估计量,即E[ZV *(x)]=E[ZV(x)],则必有;
显然;
式(29)是所谓的无偏条件,即权系数之和为1,而满足此条件的估值结果ZV *(x)就是ZV(x)的无偏估计量。
(2)最优性
所谓最优性就是指使估计值ZV *(x)与实际值ZV(x)之差的平方和达到最小化。在满足无偏性的条件下,估计方差δE 2为;
由方差估计可知;
可以看出,使δE 2在无偏条件下达到极小的问题实际上是一个求条件极值的问题,即可把最优估值问题理解为:无偏条件约束下,求目标为估计方差最小的权重系数估值问题。而这个问题的解决可以通过对Kriging方程组的求解来实现。
为了便于求解,可将求E{[ZV *(x)-ZV(x)]2}的极小值问题转化为无约束的拉格朗日乘数法求极值的问题,即将约束条件∑λα=1也引入目标函数之中,构造一个新的函数;
式中,μ为拉格朗日算子;F为构造的关于λi(i=1,2,…,n)和μ的n+1元函数。
为求F的极小值,求F关于n个λi(i=1,2,…,n)和μ的偏导数并令其为0,即得Kriging方程组;
整理后得;
这是一个n+1个未知数(n个λi和一个μ),n+1个方程构成的方程组。解此方程组,即可求出权重系数λi(i=1,2,…,n)和拉格朗日算子μ。
在内蕴假设下,式(34)也可用γ(h)表示如下;
由式(34),得;
将式(36)代入估计方差公式,则有;
用式(37)计算的估计方差δE 2为最小估计方差,亦称Kriging方差,记为δK 2;
若用γ(h)表示,则式(38)可改写为;
上述过程也可用矩阵形式表示,令;
或;
则Kriging方程组可表示为;
Kλ=D (40)
解此矩阵方程,可得;
λ=K-1D (41)
其估计方差为;
或
图16为利用Kriging插值方法插出的虚拟井,真实井加虚拟井共181口井(181个样本)。其中,180口井(180个样本)作为训练集,1口井(1个样本)作为验证集。
6优化算法
Kriging插值后学习样本增多,随着学习样本的增加,训练的难度也跟着加大,因此需要对算法进行优化。可用于卷积神经网络监督学习过程的三种典型优化算法有:随机梯度下降算法、批量算法和小批量算法。
6.1随机梯度下降算法
随机梯度下降(Stochastic Gradient Descent,SGD)算法每训练一个数据分别计算一次权值和偏置的更新量,并调整一次权值和偏置,且将更新的权值和偏置用于训练下一个数据。若有N个训练数据,则SGD算法在每轮训练中需要对权值和偏置进行N次调整。
SGD算法分别计算权值和偏置更新量的公式为:
Δwij=-αδixj (44)
和
Δbi=-αδi (45)
式中,α为学习率(learning rate);δi为增量;Δwij和Δbi分别是权值和偏置的更新量。α决定了每次权值和偏置的更新量。若α太大,则输出就会在真解的周围徘徊;若α太小,则趋近真解的计算时间就会比较长。
6.2批量算法
批量(batch)算法也是每训练一个数据分别计算一次权值和偏置的更新量,但此时并不对权值和偏置进行调整,而是当所有数据都完成一轮训练后才调整一次权值和偏置,更新的权值和偏置用于训练下一轮数据。批量算法分别用每轮权值和偏置更新量的平均值来调整权值和偏置。
批量算法分别计算权值和偏置更新量的公式为:
和
式中,Δwij [k]和Δbi [k]分别是通过训练第k个数据而得到的权值和偏置的更新量;上标[k]表示第k个训练数据;N是训练数据的个数。
由于批量算法是分别计算权值和偏置更新量的平均值,因此批量算法需要消耗较长的训练时间。
6.3小批量算法
小批量(mini-batch)算法是SGD算法与批量算法的混合形式。小批量算法首先将训练数据平均分成若干组,每组内的训练数据按批量算法分别计算权值和偏置的更新量,每训练完一组数据调整一次权值和偏置,更新的权值和偏置用于下一组数据的训练。若总共有N个训练数据,将这N个训练数据平均分成M组(假设N能被M整除),每组内有N/M个训练数据,则小批量算法在每轮训练中需要对权值和偏置进行M次调整。当M=1时,小批量算法就成了批量算法;当M=N时,小批量算法就成了SGD算法。
SGD算法和批量算法是特殊情况下的小批量算法。当每组内被分到1个训练数据时,小批量算法就相当于SGD算法;当训练数据被分成1组时,小批量算法就相当于批量算法。
此外,还相继提出了动量算法、AdaGrad算法、RMSProp算法、Adam算法等。这些算法不仅加快了求解速度,同时还降低了超参数对求解过程的影响。
6.3.1动量算法
动量(momentum)算法是一种调整权值和偏置的方法,该方法能够改善神经网络的学习速度和稳定性,因而特别适用于深度学习。
动量法更新权值和偏置的公式为:
式中,m为动量;β为动量系数,β的取值范围为(0,1);Δθ代表权值或偏置的更新量;θ代表权值或偏置。下面以权值w为例来展示动量随时间的变化过程,即:
m(0)=0
m(1)=Δw(1)+βm(0)
=Δw(1)
m(2)=Δw(2)+βm(1)
=Δw(2)+βΔw(1)
m(3)=Δw(3)+βm(2)
=Δw(3)+β[Δw(2)+βΔw(1)]
=Δw(3)+βΔw(2)+β2Δw(1)
从上面的公式可以看出,每个时刻的动量等于当前时刻的权值更新量与前面所有时刻的权值更新量各自乘以一个相应系数之后的和。由于β的值介于0和1之间,因此越早出现的权值更新量对动量的影响就越小,这种影响随着时间的推移会变得越来越小。因为权值并不只是受到某一个权值更新量的影响,所以学习的稳定性就得到了提升。此外,随着不断循环迭代,作为权值更新量的动量就会变得越来越大,故而学习的速度也得到了提高。
SGD算法既简单又省时,但由于网络模型参数使用相同的学习率对梯度进行更新,而且学习率完全凭人工经验手动输入,因此也容易陷入局部极小值而难以获得全局最优解。对此,AdaGrad算法、RMSProp算法、Adam算法等分别对其做了相应的改进。
6.3.2Adam算法
Adam算法是一种基于一阶梯度的随机目标函数优化算法,通过对梯度的一阶矩估计和二阶原始矩估计为不同的参数单独计算自适应学习率。Adam这个名字来源于自适应矩估计(adaptive moment estimation)。
Adam算法更新权值和偏置的公式为:
t=t+1 (49)
gt=▽θft(θt-1) (50)
mt=β1mt-1+(1-β1)gt (51)
式中,α是步长,即学习率;β1、β2分别为一阶矩估计和二阶原始矩估计的指数衰减率,β1、β2∈[0,1);ε是一个数值非常小的参数,目的是为了避免分母为零;θ代表权值或偏置;f(θ)表示带有参数θ且对参数θ可微的含噪声的随机标量目标函数;t是时间步;gt代表梯度,即ft(θt-1)对θt-1的偏导数;mt、vt分别为更新偏差的一阶矩估计和二阶原始矩估计;mt′、vt′分别为计算偏差修正的一阶矩估计和二阶原始矩估计。
通过改变计算顺序可以提高Adam算法的效率,故将式(53)和式(54)代入式(55),得:
其中;
Adam算法需要预先初始化的参数有θ0、m0、v0和t,其中θ0的初值是介于-1和1之间的随机数,m0、v0和t的初值都是零。经过实验确定的超参数最佳默认设置为α=0.001,β1=0.9,β2=0.999,ε=1e-8。
下面以更新偏差的一阶矩估计mt为例来展示其随时间的变化过程,即:
m0=0
m1=β1m0+(1-β1)g1
=(1-β1)g1
m2=β1m1+(1-β1)g2
=β1(1-β1)g1+(1-β1)g2
m3=β1m2+(1-β1)g3
=β1[β1(1-β1)g1+(1-β1)g2]+(1-β1)g3
=β1 2(1-β1)g1+β1(1-β1)g2+(1-β1)g3
更新偏差的二阶原始矩估计vt随时间的变化过程与此类似。
Adam算法结合了AdaGrad算法和RMSProp算法的优点,因而不仅适用于非稳态目标,而且还适用于解决强噪声和稀疏梯度问题。除此之外,Adam算法还具有以下优点:①参数更新的大小对于梯度的缩放是不变的;②具有很高的计算效率和较低的内存需求;③适合于解决数据大且参数多的问题;④只需要一阶梯度;⑤易于实现。
在Adam算法中,权值和偏置的更新规则是将其梯度与其现在和过去梯度的L2范数成反比例缩放。本发明可以将基于L2范数的更新规则推广到基于Lp范数的更新规则。对于较大的p值,这种变体在数值上会变得不稳定。然而,在特殊情况下,也就是当p趋向于∞时,会得到一种极其简单且稳定的算法,即AdaMax算法。
AdaMax算法在Lp范数情况下,在时间步t时的步长α与vt 1/p成反比例,其中vt为:
当p趋向于∞时,vt 1/p的极限ut为:
AdaMax算法更新权值和偏置的公式为:
t=t+1 (59)
gt=▽θft(θt-1) (60)
mt=β1mt-1+(1-β1)gt (61)
ut=max(β2ut-1,|gt|) (62)
式中,ut为更新指数加权的无穷范数。注意到,在这种情况下,本发明不需要对初始化偏差进行修正。
AdaMax算法需要预先初始化的参数有θ0、m0、u0和t,其中θ0的初值是介于-1和1之间的随机数,m0、u0和t的初值都是零。经过实验确定的超参数最佳默认设置为α=0.002,β1=0.9,β2=0.999。
SGD算法和批量算法都是特殊情况下的小批量算法,由于小批量算法使用相同的学习率对梯度进行更新,而且学习率完全凭人工经验手动输入,为此本发明将小批量算法与Adam算法相结合,以避免陷入局部极小值,获得全局最优解。
图17是分别将训练集分为1、3、5、10和180批时误差随轮数的变化趋势。由图17可见,当训练集被分为1批时(批量算法),稳定性能最好,但收敛速度最慢,如图中蓝实线所示;当训练集被分为180批时(SGD算法),收敛速度最快,但稳定性能最差,如图中紫实线所示;当训练集被分为10批时(小批量算法),收敛速度既快,稳定性能又好,如图中青实线所示。由此可见,当小批量算法确定出合适的分组时,小批量算法可以兼得SGD算法与批量算法的优势:SGD算法的高效性和批量算法的稳定性。
7映射反演
均方根误差(Root Mean Square Error,RMSE)和皮尔逊相关系数(PearsonCorrelation Coefficient,PCC)是评价反演结果优劣的两个重要指标。
RMSE被用来评价两个数据集的接近程度,其定义如下:
式中,e是均方根误差;yk和dk分别为模型输出和期望输出;N是数据点的个数。
PCC被用于衡量两个数据集是否在一条线上面,其定义如下:
将01-08井作为验证井,其余井作为训练井。映射反演误差随轮数的变化趋势如图18所示,当误差降到容忍范围后即可停止训练,第200轮的整体训练误差是0.019 6。
图19是映射反演11-08井的训练结果,训练误差是0.013 5,相关系数是0.948 3。图20是映射反演01-08井的验证结果,验证误差是0.022 5,相关系数是0.878 4。由图19和图20可见,训练误差较小,验证误差也较小,说明虚测井有效地防止了少样本情况下的过拟合。
下面结合具体应用实施例对本发明的技术效果作详细的描述。
图21是一幅过井地震剖面。将这幅地震剖面逐道输入已经训练好的网络模型,输出的速度剖面如图22所示。
对比图21和图22可以看出,反演剖面的纵向分辨率显著提高,地震剖面分辨不出的薄层,在反演剖面上清晰可见,层位与实际测井曲线相吻合。
特别地,反演剖面第70道的0.626s处出现了一块低速异常区域,具有明显的油气指示。钻井证实该区域的确是一处油气富集地带,而且测井曲线上的速度在此处也是明显偏低。
实例应用表明,虚测井可以有效防止少样本情况下网络模型过度拟合局部训练数据,从而使训练的网络模型在某种程度上具有一定的泛化能力。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
3.如权利要求1所述的CNN井震联合反演方法,其特征在于,所述CNN井震联合反演方法还包括:反向更新权值和偏置,当前需要求导的卷积层或池化层为第l层,那么当前层的前一层为第l-1层,当前层的后一层为第l+1层;
1)卷积层
根据卷积层在卷积神经网络模型中位置的不同,对卷积层的反向求导分为以下2种情况;
(1)第l-1层为池化层,第l+1层为全连接层;
卷积层神经元的误差e(l)为:
e(l)=(w(l+1))T*δ(l+1);
卷积层神经元的增量δ(l)为:
δ(l)=f′(z(l)).*e(l);
J对wij (l)的偏导数和J对bi (l)的偏导数分别为:
和
(2)第l-1层为池化层(或输入层),第l+1层也为池化层;
卷积层神经元的误差ei (l)为:
卷积层神经元的增量δi (l)为:
2)池化层,根据池化层在卷积神经网络模型中位置的不同,对池化层的反向求导分为以下2种情况;
(1)第l-1层为卷积层,第l+1层为全连接层;
该情况下池化层神经元的误差e(l)和增量δ(l)亦可根据式e(l)=(w(l+1))T*δ(l+1)和式δ(l)=f′(z(l)).*e(l)进行计算;
J对wi (l)的偏导数和J对bi (l)的偏导数分别为:
和
(2)第l-1层为卷积层,第l+1层也为卷积层;
池化层神经元的误差ei (l)为:
池化层神经元的增量δi (l)为:
4.如权利要求1所述的CNN井震联合反演方法,其特征在于,所述CNN井震联合反演方法的数据预处理包括深时转换和数据标准化;
所述深时转换根据下深时转换公式将测井数据转换到时间域:
式中,d是深度;v是层速度;t0是到d1的双程垂直时间;tn是对应于dn的双程垂直时间;t0=0,以d1为基准;vk是dk与dk+1之间的速度,最后一个v用于无限半空间;
所述数据标准化的输入数据与输出数据分别通过下面两式归一化:
式中,abs(x)表示对输入x中的元素取绝对值;max(y)和min(y)分别表示期望输出y中的最大元素和最小元素;期望输出在训练前进行的是归一化,所以反演后的模型输出还要进行反归一化,得归一化反变换的公式为:
6.如权利要求1所述的CNN井震联合反演方法,其特征在于,所述CNN井震联合反演方法的利用Kriging插值技术插出虚拟测井曲线,虚拟测井曲线为虚测井;在对空间数据进行结构分析、确定估值邻域内样品点权重的基础上,通过加权计算来确定待估点的取值;Z(x)是定义在点支撑上的区域化变量,且满足二阶平稳和内蕴,数学期望为m,协方差函数C(h)及变异函数γ(h)存在:
E[Z(x)]=m
C(h)=E[Z(x+h)Z(x)]-m2
γ(h)=E{[Z(x+h)-Z(x)]2}/2;
现要求对中心位于x0的块段V的平均值:
进行估计;
在待估块段V的邻域内,有n个已知样本v(xi)(i=1,2,…,n),其实测值为Z(xi);Kriging方法的目标就是求一组权重系数λi(i=1,2,…,n),使得加权平均值:
成为待估块段V的平均值ZV(x0)的线性、无偏最优估计量,Kriging估计量,估值过程及结果需要满足以下两个条件;
(1)无偏条件,在二阶平稳条件下,E[ZV *(x)]=m;
使ZV *(x)成为ZV(x)的无偏估计量,E[ZV *(x)]=E[ZV(x)],则必有;
显然;
式是所谓的无偏条件,权系数之和为1,而满足此条件的估值结果ZV *(x)就是ZV(x)的无偏估计量;
(2)最优性,使估计值ZV *(x)与实际值ZV(x)之差的平方和达到最小化,在满足无偏性的条件下,估计方差δE 2为;
由方差估计可知;
使δE 2在无偏条件下达到极小的问题实际上是一个求条件极值的问题,求E{[ZV *(x)-ZV(x)]2}的极小值问题转化为无约束的拉格朗日乘数法求极值的问题,将约束条件∑λα=1也引入目标函数之中,构造一个新的函数;
式中,μ为拉格朗日算子;F为构造的关于λi(i=1,2,…,n)和μ的n+1元函数;求F的极小值,求F关于n个λi(i=1,2,…,n)和μ的偏导数并令其为0,得Kriging方程组;
整理后得;
是一个n+1个未知数(n个λi和一个μ),n+1个方程构成的方程组,解此方程组,求出权重系数λi(i=1,2,…,n)和拉格朗日算子μ;
在内蕴下,用γ(h)表示如下;
得;
代入估计方差公式,则有;
用计算的估计方差δE 2为最小估计方差,亦称Kriging方差,记为δK 2;
若用γ(h)表示,则式改写为;
用矩阵形式表示,令;
或;
则Kriging方程组表示为;
Kλ=D;
解此矩阵方程,可得;
λ=K-1D;
其估计方差为;
或
9.一种实施权利要求1所述CNN井震联合反演方法的CNN井震联合反演系统,其特征在于,所述CNN井震联合反演系统包括:含有2层隐藏层的4层网络结构,包括输入层、第一卷积层、第二卷积层和输出层,2层隐藏层都是卷积层;卷积核的规模分别为5×1、15×1和25×1;
第一卷积层与输入层之间的连接为局部连接,第二卷积层与第一卷积层之间的连接也为局部连接,输出层与第二卷积层之间的连接为全部连接;卷积层之间的局部连接采用Toeplitz连接。
10.一种应用权利要求1~8任意一项所述CNN井震联合反演方法的地震与测井联合反演中的应用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110033985.8A CN112733449B (zh) | 2021-01-11 | 2021-01-11 | 一种cnn井震联合反演方法、系统、存储介质、设备及应用 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110033985.8A CN112733449B (zh) | 2021-01-11 | 2021-01-11 | 一种cnn井震联合反演方法、系统、存储介质、设备及应用 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112733449A true CN112733449A (zh) | 2021-04-30 |
CN112733449B CN112733449B (zh) | 2022-12-02 |
Family
ID=75590535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110033985.8A Active CN112733449B (zh) | 2021-01-11 | 2021-01-11 | 一种cnn井震联合反演方法、系统、存储介质、设备及应用 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112733449B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113296150A (zh) * | 2021-07-02 | 2021-08-24 | 清华大学 | 一种测井约束下的高维闭环网络地震反演方法 |
CN113468466A (zh) * | 2021-07-23 | 2021-10-01 | 哈尔滨工业大学 | 基于神经网络的多工况一维波动方程求解方法 |
CN113608264A (zh) * | 2021-07-30 | 2021-11-05 | 成都理工大学 | 联合叠前弹性反演参数及深度网络目标反演技术 |
CN113935258A (zh) * | 2021-10-15 | 2022-01-14 | 北京百度网讯科技有限公司 | 计算流体动力学加速方法、装置、设备以及存储介质 |
CN114994759A (zh) * | 2022-08-02 | 2022-09-02 | 中国科学院地质与地球物理研究所 | 基于gan网络的碳封存箱智能识别方法和系统 |
CN115049173A (zh) * | 2022-08-17 | 2022-09-13 | 中国石油大学(华东) | 深度学习和Eaton法耦合驱动地层孔隙压力预测方法 |
US11860325B2 (en) | 2021-11-30 | 2024-01-02 | Saudi Arabian Oil Company | Deep learning architecture for seismic post-stack inversion |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106529667A (zh) * | 2016-09-23 | 2017-03-22 | 中国石油大学(华东) | 一种大数据环境下基于模糊深度学习的测井相识别与分析方法 |
CN109087259A (zh) * | 2018-08-01 | 2018-12-25 | 中国石油大学(北京) | 基于卷积自编码器的叠前数据去噪方法及系统 |
CN109670533A (zh) * | 2018-11-23 | 2019-04-23 | 何旭 | 一种基于卷积神经网络的多尺度测井相识别方法 |
CN110515123A (zh) * | 2019-08-22 | 2019-11-29 | 中国海洋大学 | 基于小样本学习的卷积神经网络地震测井联合反演方法 |
CN111239802A (zh) * | 2020-01-19 | 2020-06-05 | 中国海洋大学 | 基于地震反射波形和速度谱的深度学习速度建模方法 |
CN111638249A (zh) * | 2020-05-31 | 2020-09-08 | 天津大学 | 基于深度学习的含水率测量方法及其在油井开采中的应用 |
CN111856596A (zh) * | 2020-08-05 | 2020-10-30 | 中国海洋大学 | 层状介质电阻率各向异性海洋可控源电磁快速反演方法 |
CN112017289A (zh) * | 2020-08-31 | 2020-12-01 | 电子科技大学 | 一种基于深度学习的井震联合初始岩性模型构建方法 |
-
2021
- 2021-01-11 CN CN202110033985.8A patent/CN112733449B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106529667A (zh) * | 2016-09-23 | 2017-03-22 | 中国石油大学(华东) | 一种大数据环境下基于模糊深度学习的测井相识别与分析方法 |
CN109087259A (zh) * | 2018-08-01 | 2018-12-25 | 中国石油大学(北京) | 基于卷积自编码器的叠前数据去噪方法及系统 |
CN109670533A (zh) * | 2018-11-23 | 2019-04-23 | 何旭 | 一种基于卷积神经网络的多尺度测井相识别方法 |
CN110515123A (zh) * | 2019-08-22 | 2019-11-29 | 中国海洋大学 | 基于小样本学习的卷积神经网络地震测井联合反演方法 |
CN111239802A (zh) * | 2020-01-19 | 2020-06-05 | 中国海洋大学 | 基于地震反射波形和速度谱的深度学习速度建模方法 |
CN111638249A (zh) * | 2020-05-31 | 2020-09-08 | 天津大学 | 基于深度学习的含水率测量方法及其在油井开采中的应用 |
CN111856596A (zh) * | 2020-08-05 | 2020-10-30 | 中国海洋大学 | 层状介质电阻率各向异性海洋可控源电磁快速反演方法 |
CN112017289A (zh) * | 2020-08-31 | 2020-12-01 | 电子科技大学 | 一种基于深度学习的井震联合初始岩性模型构建方法 |
Non-Patent Citations (3)
Title |
---|
AN ZHENFANG等: "Inversion of Oceanic Parameters Represented by CTD Utilizing Seismic Multi-Attributes Based on Convolutional Neural Network", 《J. OCEAN UNIV. CHINA (OCEANIC AND COASTAL SEA RESEARCH)》 * |
安振芳等: "小样本卷积神经网络井震映射反演", 《西安石油大学学报( 自然科学版)》 * |
杨柳青等: "基于深度神经网络的砂岩储层孔隙度预测方法", 《中国科技论文》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113296150A (zh) * | 2021-07-02 | 2021-08-24 | 清华大学 | 一种测井约束下的高维闭环网络地震反演方法 |
CN113296150B (zh) * | 2021-07-02 | 2022-06-10 | 清华大学 | 一种测井约束下的高维闭环网络地震反演方法 |
CN113468466A (zh) * | 2021-07-23 | 2021-10-01 | 哈尔滨工业大学 | 基于神经网络的多工况一维波动方程求解方法 |
CN113608264A (zh) * | 2021-07-30 | 2021-11-05 | 成都理工大学 | 联合叠前弹性反演参数及深度网络目标反演技术 |
CN113935258A (zh) * | 2021-10-15 | 2022-01-14 | 北京百度网讯科技有限公司 | 计算流体动力学加速方法、装置、设备以及存储介质 |
CN113935258B (zh) * | 2021-10-15 | 2022-05-20 | 北京百度网讯科技有限公司 | 计算流体动力学加速方法、装置、设备以及存储介质 |
US11860325B2 (en) | 2021-11-30 | 2024-01-02 | Saudi Arabian Oil Company | Deep learning architecture for seismic post-stack inversion |
CN114994759A (zh) * | 2022-08-02 | 2022-09-02 | 中国科学院地质与地球物理研究所 | 基于gan网络的碳封存箱智能识别方法和系统 |
CN114994759B (zh) * | 2022-08-02 | 2022-12-02 | 中国科学院地质与地球物理研究所 | 基于gan网络的碳封存箱智能识别方法和系统 |
CN115049173A (zh) * | 2022-08-17 | 2022-09-13 | 中国石油大学(华东) | 深度学习和Eaton法耦合驱动地层孔隙压力预测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112733449B (zh) | 2022-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112733449B (zh) | 一种cnn井震联合反演方法、系统、存储介质、设备及应用 | |
CN107688201B (zh) | 基于rbm地震叠前信号聚类方法 | |
CN112083498B (zh) | 一种基于深度神经网络的多波地震油气储层预测方法 | |
CN113297787B (zh) | 一种基于迁移学习的航空发动机剩余寿命预测方法 | |
CN111324990A (zh) | 基于多层长短期记忆神经网络模型的孔隙度预测方法 | |
CN106022954B (zh) | 基于灰色关联度的多重bp神经网络负荷预测方法 | |
CN108897042B (zh) | 有机质含量地震预测方法及装置 | |
Howard et al. | Multifidelity deep operator networks | |
CN110515123B (zh) | 基于小样本学习的卷积神经网络地震测井联合反演方法 | |
CN112836802A (zh) | 一种半监督学习方法、岩性预测方法及存储介质 | |
CN114723095A (zh) | 缺失测井曲线预测方法及装置 | |
Chen et al. | Integration of principal-component-analysis and streamline information for the history matching of channelized reservoirs | |
CN110895348A (zh) | 一种地震弹性阻抗低频信息提取方法、系统及存储介质 | |
CN111058840A (zh) | 一种基于高阶神经网络的有机碳含量(toc)评价方法 | |
CN112796738A (zh) | 一种阵列声波测井和常规测井结合的地层渗透率计算方法 | |
CN114114414A (zh) | 一种页岩储层“甜点”信息人工智能预测方法 | |
CN114091333A (zh) | 一种基于机器学习的页岩含气量人工智能预测方法 | |
CN112882123B (zh) | 一种基于两步法的cnn井震联合反演方法、系统及应用 | |
CN113486591A (zh) | 一种卷积神经网络结果的重力多参量数据密度加权反演方法 | |
CN113625336A (zh) | 一种基于全卷积神经网络的地震波阻抗薄层反演方法 | |
Koochak et al. | A variability aware GAN for improving spatial representativeness of discrete geobodies | |
CN113419278B (zh) | 一种基于状态空间模型与支持向量回归的井震联合多目标同时反演方法 | |
CN114861364A (zh) | 一种吸气式发动机进气道流场智能感知和抽吸调控方法 | |
Zhang | Ensemble methods of data assimilation in porous media flow for non-Gaussian prior probability density | |
CN112749807A (zh) | 一种基于生成模型的量子态层析方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |