第一作者简介:NEGASH Berihun Mamo(1982-),男,埃塞俄比亚人,博士,马来西亚石油大学石油工程系高级讲师,主要从事系统模拟与仿真、机器学习、油气藏开发等方面的研究。地址: University Teknologi PETRONAS, Petroleum Engineering Department, 32610 Seri Iskandar, Perak Darul Ridzuan, Malaysia。E-mail: bmamo.negash@utp.edu.my
针对传统注水开发油藏产量预测方法存在的问题,提出了基于人工神经网络的预测模型,阐述了模拟工作流程,并进行了算例分析。提出了基于流体物理学和测量数据随机组合的特征提取方法,以提高模型的预测效果。优选贝叶斯正则化算法作为模型的训练算法,该算法一般耗时较长,但能对产油量、产气量、产水量等嘈杂数据集进行良好泛化。通过计算均方误差及决定系数、绘制误差分布直方图及模拟数据-验证数据交会图等方式进行模型评价。用90%的历史数据训练、验证、测试目标模型结构,然后用其余10%数据进行盲测。研究表明,提出的流体产量预测模型决定系数超过0.9,模拟结果与实际数据吻合程度高,输入信息少,计算成本低。
As the conventional prediction methods for production of waterflooding reservoirs have some drawbacks, a production forecasting model based on artificial neural network was proposed, the simulation process by this method was presented, and some examples were illustrated. A workflow that involves a physics-based extraction of features was proposed for fluid production forecasting to improve the prediction effect. The Bayesian regularization algorithm was selected as the training algorithm of the model. This algorithm, although taking longer time, can better generalize oil, gas and water production data sets. The model was evaluated by calculating mean square error and determination coefficient, drawing error distribution histogram and the cross-plot between simulation data and verification data etc. The model structure was trained, validated and tested with 90% of the historical data, and blindly evaluated using the remaining. The predictive model consumes minimal information and computational cost and is capable of predicting fluid production rate with a coefficient of determination of more than 0.9, which has the simulation results consistent with the practical data.
现有的大部分油气产量预测方法都要求对油气田的储集层和流体性质进行综合描述, 需要花费大量时间、精力去分析所研究的油气田[1], 预测结果准确性主要取决于模型输入数据, 包括地质资料、岩石物理数据和储集层特征参数等[2]。但是, 鉴于储集层的各向异性和非均质性, 数据采集和岩石、流体性质表征难度很大[3]。此外, 油气藏模拟的每一步都有诸多不确定性, 既有储集层输入数据的不确定性, 也有实验研究的不确定性, 会极大地影响油气藏生产动态的预测。油藏工程师一般采用历史拟合方法, 运用物质平衡概念, 使用硬数据来验证模型, 但不确定程度依然很高, 有可能影响流体产量预测[4, 5]。因此, 机器学习方法受到油气行业的关注, 尤其是在快速评估和预测产量方面[6]。近年来, 有学者将注入量作为输入数据、产出量作为输出数据, 利用机器学习方法来推断注水开发油藏的注采关系[7, 8]。
油气行业的主要挑战之一是数据和信息的管理。面对大量数据, 工程技术人员有时难免会忽略有用信息[9]。因此, PDA(油气数据分析)技术受到广泛关注, 该技术利用在油气行业中收集的数据来分析、模拟、优化生产运营[10]。大数据分析是数据科学的一个分支, 涵盖人工智能、数据挖掘、机器学习和模式识别[11]。机器学习研究的是计算机基于数据进行学习的能力[12], 用于从数据中提取预测模型。机器学习有两种主要类型, 分别是监督学习和非监督学习。监督学习通过对数据进行分类或标记开展学习, 该算法通过分析训练过的数据得到能够根据同种特征向量预测新算例的模型[13]。非监督学习不标注所有输入数据, 而监督学习不但标注数据而且对输入、输出数据绘图[14]。人工神经网络是油气行业中应用最广泛的机器学习方法之一, 它是由生物神经网络启发的一种数学结构形式, 用于依赖大量输入数据的函数的近似[15]。人工神经网络的名称源自其骨架结构, 在其骨架结构中, 通过选择输入属性来优化具有多个隐藏层的目标函数。近年来, 有研究者应用人工神经网络根据孔隙度、渗透率、饱和度等地质参数预测原油产量, 但由于各参数之间关系复杂, 预测过程耗时长、费用高[16]。人工神经网络也在油气行业的其他领域得到应用[17, 18, 19, 20, 21]。然而, 应用人工神经网络并不是为了取代常规模拟手段及工作流程, 而是将其作为一种辅助工具, 以根据油气田数据得到更多信息[22]。
本文提出模拟油、气、水产量与测试压力、注采数据间关系的人工神经网络, 使用特别设计的特征来训练人工神经网络, 建立注水开发油藏产量预测模型。进行特征提取时, 首先利用实测数据建立能提供信息而不冗余的派生值(特征), 以促进后续的学习和泛化步骤。采用的特征提取方法以流体物理学和测量数据随机组合为基础。设计了几个特征, 并采用“ 蛮力” 手段在最终的模型中去掉了对模型预测效果没有太大影响的特征。本文将对提出的预测模型进行详细阐述并进行算例分析。
在人工神经网络中, 神经信息以权重和偏差的形式储存, 权重高的输入项在模型中的作用大[23]。经典机器学习方法中将1个数据集分为3个数据子集, 即训练数据子集、验证数据子集和测试数据子集[24]。训练数据子集用于计算梯度、更新网络权重和偏差。训练过程中要监测验证数据子集的误差。和训练数据子集的误差一样, 验证数据子集的误差一般会在训练的初始阶段减小。当网络开始过拟合数据时, 验证数据子集的误差通常又开始增大。网络权重和偏差在验证数据子集误差最小时被保存。测试数据子集用于评价经过训练和验证的模型。在训练过程中不使用测试数据子集误差, 但是要用它对不同模型进行比较。可以在整个训练过程中绘制测试数据子集误差图, 如果测试数据子集误差达到最小时的迭代次数与验证数据子集误差达到最小时的迭代次数相差很大, 那么对数据集的划分可能不合理。本文使用马来盆地1个真实油藏14年的生产数据训练、验证、测试人工神经网络。将数据分成4部分:80%的数据用于训练, 5%的数据用于验证, 5%的数据用于测试, 其余10%的数据用于盲测模型。图1给出了使用人工神经网络模拟注水开发油藏流体产量的工作流程。
探索性分析即对数据进行收集和分析。数据的主要来源是Pi-ProcessBook软件, 该软件可获得安装在生产井和注入井处的发送器发送的实时数据。利用Pi-ProcessBook软件对这些数据进行分析, 并提取某些特征的正态分布直方图。可从分布图中识别可能的离群值, 还可识别测量误差。在统计学中, 离群值是指不属于某一数据群的数据点, 是远离其他值的异常观测值, 是分散于其他正常数据之外的观测值。如果数据分布为近似正态分布, 那么约68%的数据值与均值的偏差在1个标准差范围内, 约95%的数据值与均值的偏差在2个标准差范围内, 约99.7%的数据值与均值的偏差在3个标准差范围内。因此, 用3σ 规则来检测离群值, 根据该规则, 任何与均值的偏差达到或超过3个标准差的数据值都被视作离群值。
数据清理即发现数据集中的错误以及剔除或修改数据集中的噪声数据。进行数据清理时, 首先要了解数据集, 例如了解注入井的注入压力与流量之间的关系, 然后利用所了解的关系来计算流量计关闭时的注入量, 并剔除不准确的数据。又比如, 研究海上油田生产日报, 确定重大事件和生产设施的关停时间等。本文中, 通过使用不同来源的数据进行交叉校验, 重新分配、微调日产出量和日注入量数据。另外, 用基于窗口的检测方法剔除、替换离群数据, 即先将数据划分到固定大小的窗口中, 再检测、替换离群数据。
特征提取与扩展即使用现有数据集来创建新的输入特征, 使机器学习起作用并提高其性能。Ló pez-Iñ esta E等[25]提出并实施了将特征提取与扩展结合起来提高机器学习效果的想法。特征提取是指将输入数据转换或组合成特征, 通过应用该方法可以提高机器学习的效果。本文利用基于流体物理学及测量数据的随机组合提取的特征来改进模型, 例如利用注水管汇压力与注水井注入压力之间的关系以及采油井油管头压力、温度与气举量之间的关系。特征中的每项都可以具有物理意义, 即描述上述关系。与单独使用某种数据(例如流量、时间)相比, 使用根据流体物理学提取的几种数据的组合, 有时甚至是随机的组合, 也能使模型具有更好的预测效果。随机组合得到的特征中的项不必具有物理意义。此外, 可以通过与现有特征相乘或相除得到新的特征。
本文在训练阶段测试了Levenberg-Marquardt、比例共轭梯度、贝叶斯正则化等3种算法。Levenberg- Marquardt算法用于求解非线性最小二乘问题, 特别是最小二乘曲线的拟合。前人开展了许多用Levenberg- Marquardt算法训练神经网络的研究[26, 27, 28]。SHI Xiancheng等[26]研究发现, Levenberg-Marquardt算法的主要局限是它只能通过在高斯-牛顿算法和梯度下降法之间进行插值来求局部最小值, 当存在大量训练样品和节点权重时模型的准确性会受影响。比例共轭梯度算法对内存的要求低, 所用的计算时间短。但它在线性方程系统中表现较好, 在具有许多输入特征的系统中可能导致过拟合[29]。因此, 它不适用于注水开发油藏数据集的训练。贝叶斯正则化算法适用于本文所开展的研究, 因为这种算法应用了能够避免过拟合的正则化方法。虽然这种方法耗时较长, 但是能对嘈杂数据集进行很好的泛化[14]。贝叶斯正则化算法通过使均方误差与权重的组合达到最小值来更新神经网络的权重和偏差。一旦完成最小化就可以确定正确的组合, 得到泛化良好的网络。
本文中, 90%的数据用于训练、验证和测试模型, 其余10%的数据用于盲测模型。也就是说, 90%的数据用于训练模型体系结构、监测训练过程, 确定何时停止训练模型, 其余数据用于盲测训练后的模型。在机器学习中, 用于训练的数据不能再用于测试[30]。
前人采用过几种模型评价指标[24, 31, 32]。本文用均方误差(MSE)、R2(决定系数)和白度测试对模型进行评价[33]。均方误差是输出值与目标值之间的平均平方差。R2值用于衡量输出值与目标值之间的相关性。认为在测试阶段均方误差低、R2值接近1的模型是合适的模型。这两个指标能够显示模型是否提取了全部信息或者是否需要进一步调整。白度测试即通过绘制直方图来确定误差分布。对于一个好模型, 误差直方图应显示零均值和一定方差。此外, 也可以通过绘制交会图来对比模拟数据和验证数据, 示例如图2所示。如果模拟数据与验证数据交会图位于45° 线上方, 说明模型低估了验证数据, 反之则说明模型高估了验证数据。理想情况下, 模拟数据与验证数据交会图与45° 线重合。
采用马来盆地1个油藏的数据, 鉴于保密原因, 只保留了最小限度的细节。该油藏为饱和油藏, 具有小型至中等气顶, 中等至强水体, 并在一次采油7年后通过注水补充能量开发。图3所示的PVT物性参数表明, 油藏流体的泡点压力约为20.68 MPa。
该油藏从1997年7月至2004年7月利用气顶+水体自然能量驱动开采。图4给出了这一阶段的流体产量剖面。从2004年至2014年, 采用注水开发方式。图5、图6和图7分别给出了这一阶段的产油量、产气量、产水量与注水量对比曲线, 可以看出数据非常嘈杂, 导致系统无法正确理解和解释。噪声是不可避免的问题, 它会影响机器学习应用中的数据收集和数据准备过程。数据噪声由测量工具引起。
为了获得更多有关注水井与采油井间关系的信息, 本文开发了一种基于流体物理学的特征提取技术。换言之, 使用了更多特征来改善模型预测效果。将这些特征与多孔介质中流体流动的物理原理结合起来, 并对各项进行简单试错, 直到在验证数据和模拟数据之间得到理想的拟合优度为止。表1给出了本文模型的输入项和输出项。表2给出了基于物理原理及现有输入项的随机组合提取的7个特征(编号1— 7)。根据模型的验证结果对这些特征进行测试后, 只将特征1、特征2和特征5用于油、气、水产量模拟。表2还给出了表征延时产量的特征(编号8— 13)。
![]() | 表1 模拟油、气、水产量模型的输入项和输出项 |
![]() | 表2 根据现有输入、输出项提取的特征 |
图8给出了由1个隐藏层、1个输入层和1个输出层组成的神经网络的简单结构。人工神经网络模型中输入参数个数和隐藏神经元个数对模型的最终预测效果有重要影响。然而, 最优人工神经网络结构方面的研究非常少。本文设置了不同的隐藏神经元个数, 并根据训练和验证结果确定了模型的最优结构。在确定隐藏神经元个数时, 为了避免过拟合, 很重要的一点是不要有太多参数。模型的过拟合会导致预测失败, 这是因为过拟合的模型提取了一些残差。因此, 要保持尽可能少的隐藏层数, 以避免过拟合。为了确定模型的最优结构, 开展了一系列数据集训练与验证工作。
在数据不稳定且需要更高级神经网络的情况下, 可以考虑使用更复杂的结构, 图9、图10、图11所示为常用复杂结构示例。
本文使用贝叶斯正则化算法训练模型。根据验证过程中显示的R2值进行比较, 当6次迭代的验证误差增加时, 训练步骤停止。贝叶斯正则化算法可以泛化嘈杂数据集, 同时也可以防止过拟合[14]。当训练数据集的R2值高于测试数据集的R2值时, 可以判定为过拟合。贝叶斯正则化算法的工作流程参见文献[34]。
比较了模型预测数据与油田实际数据, 计算了模型预测数据的均方误差、R2值, 绘制了误差分布直方图。当均方误差和误差分布直方图的均值趋近于零且R2值趋近于1时, 认为模型的准确性得到了验证。Ramirez A M[18]认为, 应通过开展误差分析来确定新模型的准确性。因此, 将本文模型与几种已知的产量预测公式进行了对比, 发现与Standing、Vazquez-Beggs等经验公式相比, 本文模型相对误差绝对值的平均值最低, 为14.732%。对模型进行验证后, 将其用于产量预测。
选择带有外部输入的非线性自回归网络(NARX)作为产油量预测模型结构, 其中外部输入有d个时间步的延迟。该类型网络可在给定d个时间步前的输出值以及其他一系列输入值时预测输出值。NARX网络的结构如下。
NARX网络以开环形式建立和训练。开环(单步)训练比闭环(多步)训练更有效。开环训练时可以使用正确的过去输出值, 进而得到正确的当前输出值。在训练过程中将训练数据子集提交给网络, 并根据训练数据子集的误差调整网络。用验证数据子集测量网络泛化程度, 当泛化不再改善时停止训练。测试数据子集对训练过程没有影响, 因此可以在训练过程中及训练之后独立测试模型预测效果。表3和表4分别给出了不同隐藏神经元个数条件下有特征提取和无特征提取的模型的预测效果。可以看出, 与无特征提取情况下训练的模型相比, 有特征提取情况下训练后模型的预测效果更好。在选择训练算法时, 由表5可知, 贝叶斯正则化算法比Levenberg-Marquardt算法和比例共轭梯度算法更好。尽管贝叶斯正则化算法需要的训练时间更长, 但是它能很好地泛化难度大、噪声多的数据集, 更适宜于处理本文实例中的产油量数据。
![]() | 表3 在无特征提取情况下训练后模型的预测效果 |
![]() | 表4 在有特征提取情况下训练后模型的预测效果 |
![]() | 表5 不同训练算法的评价 |
表6给出了在有特征提取情况下利用贝叶斯正则化算法训练的产油量模型的最优结构相关信息。
![]() | 表6 预测产油量的人工神经网络模型的最优结构相关信息 |
在模型评价过程中, 利用占全部数据10%的盲测数据(训练过程中未用的数据)模拟产油量。由图12所示的交会图可知, 有特征提取和无特征提取时模型的R2值分别是0.947和0.463, 且有特征提取时的模拟产油量与验证产油量交会图与45° 线更接近。这说明本文使用的特征提取方法显著改善了模型的预测效果。由图13可知, 有特征提取时模型的模拟结果与验证数据非常接近, 而无特征提取时则不然。此外, 图14所示的误差分布直方图呈现正态分布趋势, 表明模型的平均误差接近于零, 且该误差主要为测量误差。
使用与建立产油量模型相同的方法建立产气量预测模型, 并使用前文提取得到的相同特征改善模型预测效果。用训练过程中未使用的数据进行模型测试或验证。表7给出了在有特征提取情况下产气量模型的最优结构相关信息。
![]() | 表7 预测产气量的人工神经网络模型的最优结构相关信息 |
由图15所示的交会图可知, 有特征提取和无特征提取时模型的R2值分别是0.971和0.812; 无特征提取时大部分模型预测结果高于实际数据, 而有特征提取时多数模型预测结果与实际数据持平。这再次说明本文采取的特征提取方法提高了模型的预测效果。由图16可知, 与无特征提取时的模型相比, 有特征提取时模型的模拟结果与验证数据更接近。此外, 图17所示的误差分布直方图呈现正态分布趋势, 表明模型的平均误差接近于零, 且该误差主要为测量误差。
使用与建立产油量模型相同的方法建立产水量预测模型。表8给出了在有特征提取情况下产水量模型的最优结构相关信息。
![]() | 表8 预测产水量的人工神经网络模型的最优结构相关信息 |
由图18所示的交会图可知, 有特征提取和无特征提取时模型的R2值分别是0.987和0.891。由图19可知, 与无特征提取时的模型相比, 有特征提取时模型的模拟结果与验证数据更接近。此外, 图20所示的误差分布直方图呈现正态分布趋势, 表明误差主要为测量误差。
开发了人工神经网络模型来预测注水开发油藏的产油量、产气量和产水量。与传统预测模型不同, 人工神经网络模型在训练所选结构时只需少量容易获得的信息。用基于油藏流体物理学以及变量的随机组合的特征提取方法来改善模型预测效果。研究发现, 用贝叶斯正则化算法训练的神经网络结构能在训练和验证所选神经网络结构的过程中得到最小的均方误差和最高的决定系数。这种算法一般需要较长时间, 但是能对产油量、产气量、产水量等嘈杂数据集进行良好泛化。用误差分布直方图来分析模拟数据与验证数据之间的差异, 发现每种流体产量预测模型误差均主要为测量误差。
在本文提取的所有特征中, 时间步长延迟项可以提高模型的预测效果。这一结论具有重要意义, 因为包括油藏数值模拟在内的许多二次采油产量预测方法并没有将过去的注入量作为影响当前产量的因素。
符号注释:
b— — 偏差; d— — 延迟时间步数; f— — NARX网络结构; m, n— — 时间步个数; t— — 时间步序号; u(t+1), u(t), …, u(t-m)— — 外部输入数据; W— — 权重; y(t), y(t-1), …, y(t-n)— — 观测数据; y(t+1)— — 模型预测值; σ — — 标准差。
[1] |
|
[2] |
|
[3] |
|
[4] |
|
[5] |
|
[6] |
|
[7] |
|
[8] |
|
[9] |
|
[10] |
|
[11] |
|
[12] |
|
[13] |
|
[14] |
|
[15] |
|
[16] |
|
[17] |
|
[18] |
|
[19] |
|
[20] |
|
[21] |
|
[22] |
|
[23] |
|
[24] |
|
[25] |
|
[26] |
|
[27] |
|
[28] |
|
[29] |
|
[30] |
|
[31] |
|
[32] |
|
[33] |
|
[34] |
|