基于门控循环单元神经网络的储层孔渗饱参数预测
2020-07-25曹俊兴尤加春
王 俊,曹俊兴,尤加春,刘 杰,周 欣
(成都理工大学地球物理学院,四川成都610059)
孔隙度、渗透率和饱和度(简称孔渗饱)参数作为评价储层质量的重要特征参数,其准确估计可为储层评价提供可靠的参考依据。目前,钻井取心后进行岩石物理分析所获得的物性参数最为准确[1],但这种方法的取样和测试成本高,故仅限于某些层段,难以获取整个工区的物性参数。根据地质信息和测井资料之间的关系确定储层岩性及孔渗饱等地层参数,是实现精确储层预测与评价的关键,也是油藏描述最基本的内容。前人提出并发展了许多储层孔渗饱参数的预测方法,如根据理论孔隙度模型定量计算孔隙度[2]、根据SDR模型[3]和TimCoates模型[4]计算储层渗透率、采用线性假设方式计算饱和度[5]等方法。虽然在一定条件下上述方法均取得了不错的预测结果,但它们是基于统计学的思想或通过简化地质条件建立理论模型来估算储层孔渗饱参数,未考虑这些参数与测井数据之间复杂的非线性关系及空间的连续性。由于地下地质情况复杂,不同类型的测井参数响应不同[6],以及地震信息与测井参数之间存在复杂的非线性关系[7],故难以建立岩心分析数据与测井响应之间的关系。此外,上述方法受主观因素的影响较大,故其预测结果的准确性较差。
近年来机器学习在科学和工程领域取得了突破性的进展,很多学者对此进行了深入研究,已将一些常规的浅层机器学习方法应用于储层孔渗饱参数预测,如人工神经网络(artificial neural network,ANN)[8-10]、支持向量机(support vector machine,SVM)[11-13]等,在一定条件下,这些方法取得了较传统方法更好的预测效果。但由于这些浅层机器学习方法网络结构简单,所以其解决复杂非线性问题的能力有限,泛化能力在一定程度上受到制约[14]。测井曲线与储层孔渗饱参数之间大都表现出极其复杂的非线性特征,难以明确其数学关系,因此将浅层机器学习方法应用于储层孔渗饱参数的预测亦具有一定的局限性。
由HINTON等[15]提出的深度学习方法,是当前机器学习领域发展最活跃的研究方向之一。其网络结构较浅层的机器学习方法更复杂,具有多个隐藏层,其核心思想就是利用各隐藏层之间的连接来挖掘样本数据间的本质关联与规律,使得计算机可以像人一样具有从大量的信息中不断地学习、挖掘数据间存在的本质联系和深层次特征,实现解决复杂非线性问题的能力。目前,常见的深度学习方法主要有卷积神经网络(convolutional neural network,CNN)[16]、循环神经网络(recurrent neural network,RNN)[17]、栈式自编码(stacked auto-encoder,SAE)[18]等,上述方法已成功应用于图像处理、语音识别等[19]领域。近年来,很多研究者将深度学习方法应用于油气地震储层预测[20-24]和储层物性参数预测[25-26],与浅层机器学习方法相比,深度学习方法的预测准确率更高。测井曲线和孔渗饱参数是不同深度地层特征的响应,整体而言具有一定的时序渐变性。采用深度学习方法进行物性参数预测容易忽略孔渗饱参数随储层深度变化的趋势及不同地层参数历史数据之间的关联性。
循环神经网络是一类用于处理序列数据的神经网络,其核心是内部设置的自循环结构。信息在循环神经网络中传递时,每一次循环都会重新判断,以在隐藏层细胞中保留部分有用信息,这些被保留的部分有用信息与新的输入信息一起传递到下一个细胞单元,与之后的输入信息共同决定输出结果[27]。相较传统层间全连接、层内无连接的神经网络,RNN隐藏层内的细胞单元之间是有连接的,即当前时刻的输入信息和之前的信息共同作用于下一时刻,这也符合地质学研究思想以及实际地质分析经验。长短期记忆(long short term memory,LSTM)[28]网络是对RNN的改进,可有效解决梯度消失及梯度爆炸等问题,使得网络具有更强的记忆功能,可记忆更长的历史数据信息,已有学者将其应用于储层物性参数预测[29]和测井曲线合成[30-31]等。LSTM网格存在结构复杂、训练参数多、且训练过程收敛速度较慢等问题。门控循环单元(gated recurrent unit,GRU)神经网络[32]是对LSTM网络的优化,与LSTM网络功能相当,但前者具有更快的收敛速度,该网络已在电力[33]、交通[34]和金融[35]等领域得到应用,但目前未见应用于储层孔渗饱参数预测的相关文献。
基于此,本文使用GRU神经网络对储层孔渗饱参数进行预测。首先通过基于Copula函数的相关性分析(correlation analysis,CA)定量计算各测井曲线与孔渗饱参数之间的非线性相关程度,筛选出与孔渗饱参数关联度较高的测井参数,然后利用GRU神经网络建立测井数据与孔渗饱参数之间的非线性映射关系(以下简称CA_GRU)模型,最后将上述流程应用于实际资料测试以证明预测结果的精度和鲁棒性。
1 相关性分析
测井曲线与孔渗饱参数均反映了不同深度地层的特征,在一定程度上,孔渗饱参数与测井曲线存在一定的相关性,但测试数据往往包含从不同角度反映地层不同信息的多种参数。实际应用中,如果直接利用所有样本数据建立测井曲线与孔渗饱参数之间的映射关系模型,不但增加了模型的复杂度,也可能丢失部分有用信息或加入无用的冗余信息,导致预测的准确性降低。对一些物性参数进行预测时需要考虑不同测井曲线对物性参数预测的影响,如通过线性相关性分析选择测井资料中一部分可靠的、有代表性且对预测参数敏感的曲线作为输入进行模型训练和预测,但目前多采用Pearson线性相关系数进行相关性计算[23]。Pearson相关系数只聚焦于线性相关,往往忽略了孔渗饱参数与测井曲线之间的非线性关系。当测井数据与预测参数之间为非线性相关关系时,仍采用线性相关系数度量其相关关系是不可靠的。而利用Copula函数来分析测井数据与预测参数之间的相关性可在一定程度上减弱这种影响。基于Copula函数及其推导出的相关性指标,可以准确度量测井曲线与预测物性参数之间存在的非线性、非对称性相关关系。因此本文利用基于Copula函数的Kendall秩相关系数τ和Spearman秩相关系数ρ来定量分析测井曲线与孔渗饱参数之间的相关关系,其中Kendall秩相关系数τ可用于度量测井参数与孔渗饱参数之间的一致性变化程度,Spearman秩相关系数ρ可用于度量测井曲线与孔渗饱参数之间的单调相关程度,并与Pearson线性相关系数的计算结果进行对比。
Copula函数理论准确描述了非线性和非对称变量之间的相关性。具体如下:假设1个n元随机变量分布函数H的边缘概率分布函数分别为F(x1),F(x2),…,F(xn),其中x1,x2,…,xn为n维随机变量,则存在一个Copula函数C满足如下条件:
H(x1,x2,…,xn)=C[F1(x1),F2(x2),…,Fn(xn)]
(1)
其中,N维t-Copula函数定义为[36]:
(2)
Kendall秩相关系数τ用于度量x与y的一致性变化程度,假设(x1,y1),(x2,y2)是独立同分布的向量,x1,x2∈x,y1,y2∈y,则:
τ=P[(x1-x2)(y1-y2)>0]-P[(x1-x2)(y1-y2)<0]
(3)
式中:P表示概率分布函数。对上式进行推导后可以得到:
τ=2P[(x1-x2)(y1-y2)>0]-1τ∈[-1,1]
(4)
假设(x1,y1)对应的Copula函数是C1(u,v),则可由相应的Copula函数得出Kendall秩相关系数τ:
(5)
对于Spearman秩相关系数ρ,假设(x,y)的联合分布函数为H(x,y),x和y对应的边缘分布函数分别是F(x)和G(y),若H(x,y)=F(x)G(y),则随机变量x,y相互独立。若x0∈x,y0∈y则x0,y0相互独立。若(x,y)与(x0,y0)也独立,则:
ρ=3{P[(x-x0)(y-y0)>0]-P[(x-x0)(y-y0)<0]}
(6)
假设(x,y)的Copula函数为C(u,v),其中u=F(x),v=G(y),则同样可由相应的Copula函数得出Spearman秩相关系数ρ:
(7)
2 方法概述
2.1 循环神经网络
RNN是一类专门用于处理序列数据的神经网络。在不同的时间步长上,RNN循环地共享权重,并进行跨越时间步长的连接。只含有一个隐藏层的RNN结构如图1所示,与多层感知器相比,RNN的隐藏层不仅与输出层连接,而且其隐藏层节点之间自连接,即隐藏层的输出不仅会传输给输出层,而且还会传输给隐藏层自身,这使得RNN不仅在很大程度上减少了参数量,而且也对不同时刻的序列数据建立了非线性关系。在处理非线性和时间序列问题上RNN具有独特的优势。
图1 只含有1个隐藏层的RNN结构
2.2 长短期记忆(LSTM)神经网络
LSTM网络是对RNN的重要改进,可有效解决RNN中易出现的梯度消失及梯度爆炸问题,使网络具有更强的记忆功能。此外,LSTM网络还可以记忆更长的历史数据信息。LSTM网络不但具有外部的RNN循环结构,而且还具有内部的“LSTM细胞”循环(自环),因此LSTM不是简单地向输入和循环单元的仿射变换之后施加一个逐元素的非线性。与普通的循环网络类似,每个单元不但有相同的输入和输出结构,而且有更多的参数和控制信息流动的门控单元系统,LSTM隐藏层结构如图2所示,图中ct-1为前一序列隐藏层节点状态;ht-1为前一序列隐藏层节点输出;xt为当前序列隐藏层节点输入;ct为当前序列隐藏层节点状态;ht为当前序列隐藏层节点输出;σ表示sigmoid非线性激活函数;tanh表示双曲正切函数。
图2 LSTM隐藏层结构
相较RNN,LSTM网络更擅长学习序列数据之间的长期依赖关系,但LSTM网络结构复杂、参数多、收敛速度慢。
2.3 门控循环单元(GRU)神经网络
图3 GRU神经网络的门控循环单元结构
重置门rt和更新门zt在t时刻的状态定义为:
rt=σ(Wrxt+Urht-1)
(8)
zt=σ(Wzxt+Uzht-1)
(9)
(10)
(11)
式中:*表示点乘。
(8)式和(11)式中两种不同的激活函数可分别定义为:
(12)
(13)
2.4 GRU神经网络预测模型结构
储层孔渗饱参数预测中,测井曲线由浅到深反映了不同地质时期的地层特征,其变化趋势包含了预测物性参数的重要信息。利用传统的统计分析和常规的机器学习方法预测孔渗饱参数,易破坏测井参数历史序列中潜在的内部联系,降低预测结果的精确度。GRU神经网络具有长期记忆功能,能处理序列数据间的长期依赖关系,可有效降低此类关系的影响,其内部的门控机制还可自动地学习序列特征。图4 为本文构建的3层GRU神经网络模型结构。
从图4可以看出,GRU神经网络模型结构包括输入层、隐藏层和输出层,其中隐藏层是网络结构的核心部分。训练过程中需要对GRU神经网络模型结构的超参数,包括隐藏层层数、隐藏层神经元个数等主要结构超参数进行优化调整,理论上隐藏层层数和神经元个数越多越好,网络越深越复杂获得的预测精度越高。但实际应用中,隐藏层层数和神经元个数选择过多会导致训练困难,易造成过拟合,进而降低预测精度;网络太浅太简单又易造成欠拟合,达不到预期要求。所以隐藏层层数和神经元个数的选取对网络预测性能至关重要,我们需要平衡网络的学习能力与训练的复杂程度以及对预测精度的要求,根据经验和多次实验结果确定二者的最佳值。此外,对于学习率、批量大小、最大迭代次数等训练超参数,选取合适的参数值可在一定程度上降低模型的复杂度,提高模型的收敛速度与预测精度。
图4 3层GRU神经网络模型结构
2.5 GRU神经网络的训练过程
GRU神经网络的训练过程大致分为如下3个步骤:1)将训练数据输入网络,沿着前向传播方向从浅层到深层顺序计算GRU神经网络单元的输出,得到当前时间点输入数据对应的预测输出值;2)沿着反向传播方向计算每个神经元细胞的误差,GRU神经网络误差的反向传播包括沿时间顺序传播和在网络层级之间逐层向上一级传播;3)根据反向传播计算得到的误差计算每个权重的梯度,采用学习率自适应优化算法(Adam算法)计算得到权重梯度调整网络参数。重复以上步骤进行循环迭代,不断优化网络。
3 基于CA_GRU的组合预测模型
基于CA_GRU的组合预测模型的建模流程如图5所示,主要包括以下6个步骤。
图5 基于CA_GRU的组合预测模型的建模流程
1) 根据已获得的测井曲线和孔渗饱参数,利用基于Copula函数的Kendall秩相关系数τ和Spearman秩相关系数ρ以及Pearson线性相关系数P定量计算并分析两两之间的相关程度,优选出对预测参数敏感的测井曲线,构成新样本数据。
2) 对新样本数据进行标准化处理,并且按照一定的比例划分训练集和测试集。
3) 分别对孔渗饱参数构建GRU神经网络模型,初始化网络参数,并根据试验确定网络层数、隐藏层神经元个数等超参数。
4) 利用划分出的训练集对已初始化且初步确定网络参数的GRU神经网络模型进行迭代训练,在训练过程中不断优化网络结构,直至模型训练误差达到事先设定的目标,然后保存模型。
5) 利用划分出的测试集对已训练好的GRU神经网络模型展开测试,将得到的模型预测值进行反标准化处理,得到与实际值相对应的物性参数预测值。
6) 对比分析预测值与实际值,开展误差分析,根据相应的评价指标评价模型预测性能优劣。
4 实验与分析
4.1 数据准备
本文实验数据来自于四川盆地某探区的实际测井数据,共8482组测井数据样本,包括自然伽马(GR)、补偿中子(CNL)、声波时差(AC)、密度(DEN)、井径(CAL)、井斜(DEV)、泥质含量(SH)、地层真电阻率(RT)、冲洗带地层电阻率(RXO)以及相对应的孔隙度(POR)、渗透率(PERM)、饱和度(SW)数据。本文选择测深为5230~5430m的1580组测井数据作为GRU神经网络模型的测试数据集,用以测试模型预测性能,剩下的数据作为训练数据集训练模型。
4.2 基于Copula函数的相关性分析
分别采用基于Copula函数的Kendall秩相关系数τ和Spearman秩相关系数ρ以及Pearson线性相关系数P定量计算测井数据与孔渗饱参数之间的相关关系,3种相关系数绝对值的变化趋势如图6所示。
图6 测井数据与孔渗饱参数之间的相关关系
从图6可以看出,Pearson相关性分析时常会忽略变量之间的非线性相关关系。如在测井数据与渗透率相关关系计算中,自然伽马、补偿中子和泥质含量与渗透率的线性相关系数较低,但采用基于Copula函数的相关性测度法得到的τ和ρ较高,这说明自然伽马、补偿中子与渗透率的线性相关程度较低,但非线性相关程度较高,两者之间存在非线性相关关系,这与实际地质分析经验相符。因此本文选择自然伽马、补偿中子、泥质含量3种测井参数预测渗透率。
在测井数据与孔隙度相关关系计算中,密度、泥质含量与孔隙度的相关系数均较高,说明密度、泥质含量与孔隙度之间存在强相关关系。自然伽马与孔隙度的P值较低,但采用基于Copula函数的相关性测度法得到τ和ρ则较高,这说明自然伽马与孔隙度的线性相关程度较低,但非线性相关程度较高,两者之间存在强非线性相关关系。因此本文选择密度、泥质含量和自然伽马3种测井参数预测孔隙度。
从饱和度与测井数据之间3种相关系数的对比可以看出,自然伽马、补偿中子、声波时差、泥质含量与饱和度之间的P、τ和ρ均较高,说明饱和度与自然伽马、补偿中子、声波时差、泥质含量之间存在强相关性。因此本文选择自然伽马、补偿中子、声波时差、泥质含量4种测井参数预测饱和度。
4.3 数据预处理
为减小因输入数据数量级差别较大引起的预测误差,本文采用z-score标准化方法对输入数据进行标准化处理,以确保输入数据处于合理的分布范围,标准化处理的表达式为:
(14)
4.4 模型参数选取
本文采用学习率自适应的优化算法Adam算法进行网络优化调整,Adam算法融合了RMSProp算法和AdaGrad算法的优势,可为不同参数设计独立的自适应学习率。GRU神经网络模型参数设置如下:首先根据经验进行多次试验,初步确定学习率(learning rate)=0.005,批量大小(batch size)=10,时间步长(time step)=50,参照以往经验,隐藏层神经元个数一般设置为2n,n的取值范围为[2,8]。本文以渗透率为预测对象进行对比试验以确定网络隐藏层层数和神经元个数,试验结果如图7所示。图中横坐标为网络隐藏层层数,纵坐标为渗透率的均方根误差,不同颜色的线表示不同的隐藏层神经元个数对应的渗透率均方根误差。从图7可以看出,网络隐藏层层数和神经元个数过多或过少均会导致预测结果的均方根误差剧烈变化,造成预测准确性降低,当网络隐藏层层数为3层,隐藏层神经元个数为16时,预测结果的均方根误差最小,预测精度最高,因此确定隐藏层为3层,神经元个数为16个。
图7 渗透率对比实验结果
4.5 预测结果评价
本文采用均方根误差(root mean squared error,RMSE)和Pearson相关系数(P)作为评价模型预测效果的指标。其中RMSE反映目标参数与预测参数之间存在的偏差,Pearson相关系数P用于衡量预测值与实际值之间的相关程度。RMSE与P的计算公式分别如下:
(15)
(16)
式中:Y表示预测值;Q表示实际值;N表示样本数量;D表示方差;Cov(Y,Q)为协方差函数,表示Y与Q相互关系的特征。RMSE值越小,表示模型对测井曲线的预测结果越精确;P值越大,表示预测值与实测值的相关性越强,更能体现实际参数的变化趋势。
4.6 结果分析
4.6.1 渗透率预测结果分析
根据相关性分析结果,综合考虑强相关因素对预测结果的影响,本文选取对渗透率敏感的自然伽马、补偿中子、泥质含量3种测井参数作为模型的输入,对渗透率进行训练预测。利用4种模型(包括多元线性回归(multiple linear regression,MLR)模型)预测的渗透率均方根误差和Pearson相关系数见表1。为了便于显示,选取测深5395~5425m的预测数据作为分析对象,4种模型对渗透率的预测结果如图8所示。
图8 利用4种模型预测的渗透率和渗透率真实值(1mD≈0.987×10-3μm2)
表1 4种模型的渗透率预测性能
由表1可以看出,相较于GRU、RNN和MLR模型,利用CA_GRU模型预测的渗透率均方根误差最低,为0.0826,Pearson相关系数最高,为0.9028,说明利用CA_GRU模型得到的渗透率准确度及模型性能均为最高。相较于GRU模型,利用CA_GRU模型展开训练和预测时,其运行时间更短。利用渗透率预测评价模型的优劣,需要同时考虑模型预测的准确度和模型预测的效率,利用CA_GRU模型得到的结果不仅预测准确度高,而且因输入冗余信息少故预测效率高。因此利用CA_GRU模型进行渗透率预测具有一定的优势。
从图8可以看出,利用CA_GRU、GRU、RNN模型得到的预测渗透率均优于MLR模型的预测结果,表明了利用循环神经网络进行渗透率预测的有效性和实用性,其中利用CA_GRU、GRU模型得到的预测结果又优于利用RNN模型得到的结果,说明具有长短期记忆功能的门控循环单元神经网络在处理非线性和时序性预测问题中具有独特的优势。CA_GRU模型的预测值与真实值一致性最好,整体趋势与真实值基本一致,利用MLR模型得到的预测结果最差,基本偏离了真实值。利用GRU和RNN模型均可对渗透率的变化趋势进行较准确的预测,但在预测渗透率发生突变的峰谷值时,GRU、RNN模型均不能准确预测渗透率的变化趋势,即未能准确分析渗透率的波动规律,导致模型预测的准确性下降。对比可知,CA_GRU模型能较好地学习测井数据和渗透率的变化趋势,面对渗透率变化不确定性较大的峰谷值时,该模型可准确地学习该层段输入特征对预测渗透率的影响,以保证预测的准确度。
4.6.2 孔隙度预测结果分析
根据相关性分析结果,本文选取与孔隙度相关性较强的密度、泥质含量和自然伽马3种测井参数作为孔隙度预测模型的输入。分别利用4种模型预测孔隙度的均方根误差和Pearson相关系数,结果如表2所示。选取测深为5395~5425m的预测数据作为分析对象,利用4种模型对孔隙度进行预测,结果如图9所示。由表2可知利用CA_GRU模型预测的孔隙度均方根误差最小,为0.6787,Pearson相关系数最高,为0.9126。相较于其它模型,利用CA_GRU模型得到的预测结果在均方根误差、Pearson相关系数两项指标上均出现了明显提升,预测的准确性更高,运行时间在一定程度上得到缩短,这也证明了利用CA_GRU模型预测孔隙度的鲁棒性和适应性。
表2 4种模型的孔隙度预测性能
由图9可看出,利用CA_GRU模型得到的预测孔隙度与真实值整体一致性最好,GRU模型的拟合效果次之,MLR模型的整体预测效果最不理想。对于预测孔隙度发生阶跃变化的波峰及波谷值,利用CA_GRU模型进行预测,不仅能够更准确捕捉孔隙度随测井数据变化的规律,而且也能较准确地预测孔隙度的整体变化趋势,提高模型的预测准确度。这也说明考虑强相关影响因素有助于提高孔隙度预测精度。
图9 利用4种模型预测的孔隙度和孔隙度真实值
4.6.3 饱和度预测结果分析
综合对比分析后,选择τ、ρ和P三者均较高的自然伽马、补偿中子、声波时差、泥质含量4种测井数据作为输入预测饱和度参数。4种模型预测的饱和度参数均方根误差和Pearson相关系数见表3。选取测深为5230~5260m的预测数据作为研究对象,分析比较4种预测模型的预测效果,结果如图10所示。
表3 4种模型的饱和度预测性能
由表3可看出,CA_GRU、GRU、RNN模型在预测值与实际值的偏差及相关性上表现均优于MLR模型,说明循环神经网络具有良好的测井数据特征参数提取能力。利用CA_GRU模型得到的均方根误差和Pearson相关系数均为最优,数值分别为5.2421和0.9206,并且其计算效率相较于其它模型有所提高。
从图10可以看出,在饱和度出现峰值的深度层段,4种模型对峰值段饱和度普遍存在预测缺失。对比几种模型的预测结果不难看出,CA_GRU模型的预测准确度更高,稳定性更强,在峰值处最为明显,说明为减少冗余信息进行相关性分析并对原始数据降维处理,对模型预测精度的提高有明显的作用。这表明利用基于Copula函数的相关性测度法定量计算预测参数与测井曲线之间的相关关系,可优选出对预测参数更关键、更有用的数据信息。
图10 利用4种模型预测的饱和度和饱和度真实值
5 结论
本文介绍了基于门控循环单元神经网络的储层孔渗饱参数预测方法。该方法采用基于Copula函数的相关性分析方法筛选出敏感的测井参数,而后利用GRU神经网络构建预测模型。该方法不仅考虑了强相关样本数据对物性参数预测的影响,还同时兼顾了物性参数与测井曲线之间的非线性映射关系以及测井信息随深度的变化趋势和前后关联。采用基于Copula函数的相关性测度法可优选出对物性参数敏感的测井曲线,实现模型输入的降维,消除变量之间的冗余性,有利于提升模型的整体预测性能。实验结果表明门控循环单元神经网络模型拥有较强的特征提取能力,可以从测井数据中提取有效反映物性参数的深层特征,相较多元线性回归分析等模型其能够对孔渗饱参数进行更为准确的预测,具有较高的精度和鲁棒性,并具有良好的抗干扰能力,为测井资料的精准解释提供了新的思路。
虽然利用本文方法预测储层孔渗饱参数取得了一定的效果,但预测的孔渗饱参数不可能完全符合地层的真实情况,预测值与真实值之间亦存在一定偏差。本文采用的深度学习模型较为单一,模型改进以及多模型混合运用能否进一步提升模型预测效果有待进一步研究。