蓝茜茜, 张逸伦, 康志宏*, 徐嘉宏, 孟 顺
(1.中国地质大学(北京)能源学院,北京 100083;2.北京大学地球与空间科学学院,北京 100871)
随着中国海相碳酸盐岩储层油气田的勘探开发取得突破性进展,碳酸盐岩储层的表征技术和有效性评价显得愈加重要。碳酸盐储层具有非均质性强、储集空间多样复杂、储集体类型难以准确描述及储层参数无法定量计算的特点,常规的储层测井评价基于多种地球物理手段,结合油藏储层地质特征、开发动静态分析和人工经验,提出适合于不同碳酸盐岩油气藏的储集体划分标准[1-2]。
在碳酸盐岩储集体划分和储集空间识别中,常规测井方法有交会图法、地质因子公式法、综合概率指数法等,但均无法很好地建立表征参数与储集体类型间的非线性关系;成像测井方法的标定效果直观且准确,但应用成本较高[3-4]。近年来,不同学者提出了若干基于机器学习的数学改进方法。陈钢花等[5]利用BP神经网络对储层缝洞中的泥质、砂质和结晶质三种充填物进行识别;谢玮等[6]利用参数优化的最小二乘支持向量机法,划分缝洞充填物为无充填、泥质充填、硅质充填和结晶碳酸盐岩充填四种,识别效果好于BP神经网络法;于聪灵等[7]将暗河型碳酸盐岩地质因素作为神经网络输入,对暗河系统充填程度进行预测,为储集体划分提供了新思路。
前人基于机器学习的储集体类型识别均只采用了单个学习器,虽然取得了一定效果,但识别准确率有待提高:采用单个BP神经网络的特征提取能力弱,且若增加网络层数会导致网络结构复杂,样本量不足时容易产生过拟合问题;单一的支持向量基法在多分类问题中对少数类样本的识别效果较差,且对参数和核函数选择敏感;其他单学习器也存在识别率低、泛化能力差等问题。
针对上述问题,将集成学习(ensemble learning)技术应用于碳酸盐岩储集体类型划分中。集成学习本身不是一个单独的机器学习算法,它的基本思想是通过一定策略将多个单学习器作为基分类器集成为一个强学习器,从而达到博采众长的目的。在分类问题选取基分类器时,由于其对基分类器的要求较低(预测结果比随机猜想结果稍好即可)的特点,可将多种模式识别或机器学习算法作为基分类器与集成算法进行耦合,起到提高分类准确率的作用。对于碳酸盐储集体多分类问题,将集成学习家族中Boosting算法和Bagging算法有机结合,应用支持向量机、决策树和浅层神经网络作为基分类器,将AdaBoost.M2算法的强分类器预测结果继续作为Bagging算法的基分类器,得到最终的储集体识别结果。最后,将本文方法应用于塔河油田T615井组碳酸盐岩储集体类型划分中。
Boosting算法是集成学习的代表算法之一,它充分利用基分类器间的相互耦合关系提高预测效果,其代表性的实现算法——AdaBoost于1995年由Freund和Schapire提出[8]。AdaBoost算法的基本原理是:首先设定基分类器数(迭代次数),为所有训练样本赋予相同权值,该权值代表样本被选入训练子集的概率;在每次迭代过程中,依据当前基分类器对训练子集样本的分类结果更新权值,被正确分类的样本权值降低,错误分类的样本权值提高,使得AdaBoost算法更加聚焦于不易正确分类的样本;同时根据分类结果错误率对基分类器赋值,该值决定了当前基分类器在最终强分类器中所占的比重;不断迭代上述过程,直到达到设定迭代次数终止,最后将各分类器的加权结果作为最终的分类结果。利用该方法对真实分类结果未知的样本进行预测时,只需利用之前得到的加权因子,将各基分类器的分类结果加权即得预测分类结果[9]。
AdaBoost算法应用于二分类问题时,要求基分类器预测准确率大于1/2,即比随机猜测准确率略高。应用于多分类(K类)问题时,若仅要求基分类器预测准确率大于1/K,则条件太弱,很难集合成一个较强的分类器;而要求基分类器预测准确率大于1/2的条件在实际中也无法保证。AdaBoost.M2算法作为AdaBoost算法的扩充可用于储集体类型划分的多分类问题中,该方法将多分类问题分解为多个二分类问题,同时基于加权伪损失计算错误率,克服了分类器算法准确率的限制,使在进行分类学习过程中不仅关注难以分类的样本,也关注难以区分的错误类别[10]。AdaBoost.M2多分类算法的具体实现步骤如下。
1.1.1 样本初始化
设定基分类器个数为T,样本集为(x1,y1),(x2,y2),…,(xm,ym),yi={1,2,…,K},对于样本(xi,yi),y为除yi外的其他错误分类。错分样本集F={(xi,y)},i∈{1,2,…,m},错分样本集的初始权重为
D1(xi,y)=1/m(K-1),i=1,2,…,m
(1)
1.1.2 计算伪损失
在第t次迭代中,将错分样本集Dt的分布作为输入,得到的基分类器记为ht(x,y)∈[0,1]。对于第i个样本,若ht(xi,yi)=1且ht(xi,y)=0,则分类正确;若ht(xi,yi)=0且ht(xi,y)=1,则分类错误;若ht(xi,yi)=ht(xi,y),则取随机分类结果。综上,该样本被错分的概率为
(2)
ht在Dt分布的伪损失定义为
(3)
1.1.3 更新权重
(4)
式(4)中:Zt为归一化因子。
1.1.4 组合生成强分类器
经过T次迭代得到所有的基分类器分类结果,ht的权重定义为lg(1/βt),分类准确率越大的基分类器对应的权重越大。最终分类器h(x)依据包含权重的多数投票法确定,投票值最大的类别作为最终输出。
(5)
在基分类器选择中,常见的基分类器有支持向量机、决策树、浅层神经网络等,一般采用同质基分类器(所有基分类器均设置为同一种)得到强学习器,相较单分类器取得了一定效果,但同质基分类器也存在一定问题。通过前述多分类AdaBoost原理不难发现,算法通过加权的形式聚焦于那些不易分类样本,即下一次迭代重点关注上一次迭代中分类错误的样本,但由于基分类器算法本身存在缺陷,经过几次迭代后,难以被准确分类的样本可能始终被错分,导致最终生成的强分类器总有一部分样本无法正确分类。
不同基分类器的分类效果也存在差异,具体表现为某些分类器对样本集中某一类或几类样本的分类准确率较高,而对其他类样本的分类准确率较低。因此,将多个基于不同基分类器的强分类器进行耦合,耦合策略采用Bagging算法[11],有效避免同质基分类器始终错分特定样本的问题,算法具体实现步骤如下。
(1)首先利用上节AdaBoost.M2算法,将符合要求的L个分类器算法{h1,h2,…,hL}分别作为同质基分类器,利用式(1)~式(5)得到L个强学习器,每个样本均得到L个分类结果,并分别计算各强学习器对每类样本的分类正确率r,组合为分类正确率矩阵R:
(6)
(2)采用Bagging集成策略,将不同强学习器并行产生的分类结果作为新的基分类器,采用简单投票法得到所有样本的最终分类结果和最终强学习器。
(3)对于简单投票法无法确定的样本,则取分类正确率取最大值时对应的强分类器结果即可。
基于集成学习的改进方法流程如图1所示,流程主要包括数据预处理、预测模型建立和模型测试三部分,其中选取的基分类器为支持向量机、决策树和浅层神经网络共3 种。在碳酸盐岩储集体划分中,首先利用包含多种测井参数和储集体划分分类结果的训练样本集得到预测模型,然后将测试样本的测井参数作为输入,导入预测模型即可得到预测样本的最终分类结果。本文方法既利用AdaBoost.M2算法对难以分类样本重点关注,又根据Bagging算法将多种基分类器得到的强分类器进行耦合,Boosting和Bagging集成策略的有机结合使得分类算法得到了全面优化。
图1 基于集成学习的改进方法示意图Fig.1 Improved method based on ensemble learning
塔河油田T615井组T74构造面以下为典型的碳酸盐岩缝洞型储层,在划分前需要对井组内的储集体类型进行标定,而标定前首先需要建立储集体测井响应模式,然后基于常规测井响应特征和成像测井资料,结合岩心和生产动态数据等,对井组内所有井进行储集体划分。如图2所示,以T615井储集体类型的测井响应模式为例,其中测井曲线有自然伽马(GR)、自然电位(SP)、浅侧向电阻率(RS)、深侧向电阻率(RD)、声波时差(AC)和补偿中子(CNL)共6 条,共划分为未充填溶洞型、角砾充填型、砂泥质充填型和溶蚀孔缝型4类储层[12-16]。
图2 T615井典型储集体综合柱状图Fig.2 Comprehensive histogram of typical reservoirs in well T615
T615井5 622~5 627 m井段为未充填溶洞段。常规测井响应表现为:自然伽马变化幅度不明显,小于20 API;声波时差值显著增大,曲线呈“钟形”;钻井液侵入,导致深浅侧向电阻率曲线存在异常低值,且出现明显的正差异现象,深侧向电阻率小于50 Ω·m,浅侧向电阻率小于15 Ω·m;指示孔隙度变化的补偿中子和自然电位明显增大。未充填溶洞段被低阻钻井液充填,与高阻围岩的高亮形成鲜明对比,且仪器不贴壁导致成像测井图像异常,表现为暗色块状。
T615井5 561~5 574 m井段为角砾充填溶洞段,由于地层塌陷、溶洞坍塌等作用使得溶洞被碳酸盐岩角砾所充填。常规测井响应表现为:自然伽马增大,小于40 API,曲线呈“锯齿形”;声波时差无明显变化;深浅侧向电阻率曲线出现正差异现象,小于60 Ω·m;补偿中子和自然电位值与围岩相比略微增大。成像测井响应显示为磨圆较差的棱角状或椭圆状不规则亮块。
T615井5 534~5 554 m井段为砂泥质充填溶洞段,大部分充填物为河流搬运的砂泥质,具有良好的成层性和分选性。常规测井曲线整体上均呈“箱形”,具体的响应特征表现为:自然伽马异常增大,由8 API增大至57 API;岩性变化导致声波时差增大但增幅较小;深浅侧向电阻率呈异常低值,深侧向电阻率小于10 Ω·m,浅侧向电阻率小于3 Ω·m,曲线出现明显正差异;补偿中子和自然电位值显著增大。成像测井响应显示为暗色水平条带。
T615井5 669~5 675 m井段为溶蚀孔缝段,构造作用产生原生裂缝,后期经热液和酸性流体改造,裂缝逐渐延伸扩张,形成溶蚀孔和溶蚀缝,是油气运移的有效通道。常规测井响应表现为:自然伽马值接近围岩,小于15 API;声波时差值无明显变化;深浅侧向电阻率略小于基岩,曲线出现正差异现象;补偿中子和自然电位变化小,目标段曲线与围岩接近。由于发育大量的溶蚀缝,成像测井响应表现为多条暗色正弦波曲线;若存在溶蚀孔,则有黑色斑状出现。
对T615井组内的所有有效储集体段进行划分,每口井除基质外的典型储层段分别有5~15 段,在每段内分别取样,得到原始样本集共221个样本。最终选择井组内T615和T631井的共39个样本作为测试样本,其余井共182个样本均作为训练样本,训练样本和测试样本组成的样本集分布如图3所示。
图3 训练和测试样本集分布Fig.3 Distribution of training and testing sample set
经前述测井响应模式中各测井参数的相关性分析,模型输入参数为6个测井参数,模型输出参数为储集体类型,分别为未充填溶洞型、角砾充填型、砂泥质充填型和溶蚀孔缝型四种,三个基分类器的输入参数和输出参数设置一致。表1为四种储集体类型对应输入测井参数的统计情况。为了避免参数间量级差异带来的误差影响,需要将输入测井参数进行归一化。对于变化范围较小的GR、SP、AC和CNL参数采用如式(7)进行线性归一化,对变化范围较大的RS和RD参数采用式(8)进行对数归一化。
表1 四类储集体的测井参数统计Table 1 Statistics information of logging parameters for four types of reservoirs
(7)
(8)
对3种基分类器设置参数时,在保证运算效率的同时最大化模型准确率,结合前人研究和调参结果确定优化参数[17-18]。在基分类参数设置中,支持向量机采用“一对一”方式将多分类问题转化为多个二分类问题,选用高斯核函数将线性不可分样本映射到高维空间;决策树采用CART(classification and regression tree)回归树,采用最小基尼系数准则计算“不纯度”;浅层神经网络为“6-10-1”结构,激活函数采用Sigmoid函数。集成算法参数设置中,AdaBoost.M2算法性能和泛化效果随着迭代次数增加呈先增后减趋势,将3 种基分类器个数分别设置为18、8和10时效果最优,AdaBoost.M2和Bagging算法分别采用加权投票和简单投票集成。其他参数设置如表2所示。
表2 模型算法参数设置Table 2 Parameter setting of model algorithms
如表3所示,以T615井部分储集体段(编号①~⑦)为例说明本文方法,利用3.1节所设参数,首先采用AdaBoost.M2算法分别得到三个强学习器对所有样本的预测结果,第1~4类分别代表未充填溶洞型、角砾充填型、砂泥质充填型和溶蚀孔缝型。
表3 T615井部分储集体划分结果Table 3 Classification results of partial reservoirs in well T615
其中,三个强学习器对③、④、⑦号样本的预测类型一致,投票结果与真实结果相同;三个强学习器对②、⑤、⑥号样本的预测类型不相同,但通过Bagging投票后,选取投票数最大的类别作为最终预测类型,结果显示预测结果与真实结果一致,说明多基分类器的集成有效提高了识别准确率;三个强学习器对号样本的分类结果均不相同,分别预测为第4、2、1类,采用Bagging投票无法得到预测结果,需要根据训练模型中各强学习器的分类准确率确定最终分类结果,强学习器二对第2类的分类准确率大于强学习器一对第4类、强学习器三对第1类的分类准确率,因此将该样本归入第2类,结果显示与真实类别一致。体现了本文方法在碳酸盐岩储集体类型划分中的优越性。
如图4所示分别为利用本文方法得到的训练和测试样本集的混淆矩阵,分类正确数(矩阵对角位置)分别为171、36个,准确率分别为94.0%、92.3%,均达到90%以上,表明本文方法分类准确率较高,且在测试集中的应用效果与训练集接近,没有出现过拟合现象。图4(b)测试集中,错分样本(矩阵非对角位置)只有3个,其中1个是砂泥质充填型与角砾质充填型间互相误判,2个是溶蚀孔缝型与角砾充填型间互相误判,经分析知,角砾质充填型与其他两类的多个测井响应特征较为接近,三个强分类器对其均存在样本误判现象。
图4 训练与测试样本集的混淆矩阵Fig.4 Confusion matrix of training and testing sample sets
通过表1可知,同一类型储集体的不同测井响应特征差异较大,且同个测井响应特征的变化范围也较大,机器学习只关注参数值与储集体类型之间的非线性关系,但未综合考虑测井曲线变化趋势对结果的影响,导致部分储集体错误分类。但本文方法的整体识别率已经达到实际测井模型解释的精度要求,考虑到实际储层的复杂多变性,无法达到100%的整体准确率,因此机器学习中存在的少量错分储集体段可近似忽略。
为了进一步验证本文方法在碳酸盐岩储集体类型划分中的可行性与有效性,将3个单分类器和3个采用同质基分类器的强学习器共6 种方法的划分结果与本文方法进行对比。如图5所示,以分类正确率作为判断准则,得到了各方法对4类储集体的分类效果。总体来看,3个Boosting强分类器的分类结果整体优于3个单分类器,证明了AdaBoost.M2算法在集成多分类中的应用效果较好。对比3个Boosting强分类器可知,它们对不同类的识别效果存在差异,如采用支持向量机的强分类器对未充填溶洞型储集体的识别正确率达100%,采用决策树的强分类器对角砾充填型储集体的识别正确率达90.0%,但这些强学习器均对个别类的识别效果较差。本文方法对所有类别样本的综合分类正确率最高,且在每类的识别情况中,识别正确率与其他6 种方法对应类的极大值保持一致,甚至更高,均保持在90.0%左右。说明本文方法将Bagging策略引入,利用3个Boosting强分类器的优化组合模式具备可行性,有效提高了碳酸盐岩储集体类型的划分准确率。
图5 各方法的分类正确率对比Fig.5 Classification accuracy rate of different methods
针对常规测井解释和人工经验在碳酸盐岩储集体类型划分中存在工作烦琐、划分难度大且识别准确率低的问题,基于集成学习技术提出将多个单分类器以一定策略结合的改进方法,以塔河油田碳酸盐岩储层T615井组为例,综合利用多种资料得到4类储集体的测井响应模式,最终建立多种常规测井参数与储集体类型间的非线性映射关系,得到以下结论。
(1)针对储集体划分多分类问题提出的Boosting与Bagging集成策略的有机结合方法,使得算法得到全面优化,既利用了AdaBoost.M2算法对难以分类样本重点关注,又根据Bagging并行结合策略,将支持向量机、决策树、浅层神经网络共3 种同质基分类器得到的强学习器进行优化耦合。
(2)塔河油田T615井组的应用效果显示:本文方法的综合分类正确率达92.3%,对比其他单分类器和基于同质基分类器的强学习器,本文方法对各类型储集体均取得了较高的识别率,体现了集成学习技术在碳酸盐岩储集体类型划分中的优越性。