石油地球物理勘探  2019, Vol. 54 Issue (6): 1357-1362  DOI: 10.13810/j.cnki.issn.1000-7210.2019.06.020
0
文章快速检索     高级检索

引用本文 

陈钢花, 梁莎莎, 王军, 祗淑华, 诸葛月英, 刘有基. 机器学习AdaBoost.M2算法在砂砾岩流体识别中的应用. 石油地球物理勘探, 2019, 54(6): 1357-1362. DOI: 10.13810/j.cnki.issn.1000-7210.2019.06.020.
CHEN Ganghua, LIANG Shasha, WANG Jun, DI Shuhua, ZHUGE Yueying, LIU Youji. Fluid identification in glutenites with the machine learning AdaBoost.M2 algorithm. Oil Geophysical Prospecting, 2019, 54(6): 1357-1362. DOI: 10.13810/j.cnki.issn.1000-7210.2019.06.020.

本项研究受国家科技重大专项"渤海湾盆地济阳坳陷致密油开发示范工程"(2017ZX05072)资助

作者简介

陈钢花  教授, 1963年生; 1985年获华东石油学院测井专业学士学位, 1988年获石油大学(北京)应用地球物理专业硕士学位; 现在中国石油大学(华东)从事测井资料数据处理与综合解释、非均质油气藏测井评价等教学与科研工作

梁莎莎, 山东省青岛市黄岛区长江西路66号中国石油大学(华东)地球科学与技术学院, 266580。Email:1150374142@qq.com

文章历史

本文于2019年2月12日收到,最终修改稿于同年8月22日收到
机器学习AdaBoost.M2算法在砂砾岩流体识别中的应用
陈钢花 , 梁莎莎①② , 王军 , 祗淑华 , 诸葛月英 , 刘有基     
① 中国石油大学(华东)地球科学与技术学院, 山东青岛 266580;
② 嘉兴市佳安燃气技术服务有限公司, 浙江嘉兴 314000;
③ 中国石化胜利油田分公司勘探开发研究院, 山东东营 257015;
④ 中国石油集团测井有限公司华北分公司, 河北任丘 062550
摘要:由于砾石成分复杂、孔隙结构多样、非均质性强,流体对测井响应的影响远小于岩石骨架,导致常规测井技术识别砂砾岩中的流体比较困难。为此,提出将机器学习AdaBoost.M2算法运用于砂砾岩流体识别中。应用该算法,结合试油、试采资料,将K类多流体类型拆解为K-1个二分类问题,通过多轮迭代得到样本分布,然后调用决策树算法作为弱学习算法自动得到分类器ht进行判别。将该方法应用于A研究区砂砾岩流体识别中,样本回判准确率为95%,测试准确率达91.5%,证明了该方法的适用性,为常规测井识别砂砾岩流体性质提供了新的方法,对油气开采具有一定的指导意义。
关键词机器学习    AdaBoost.M2算法    砂砾岩    流体识别    
Fluid identification in glutenites with the machine learning AdaBoost.M2 algorithm
CHEN Ganghua , LIANG Shasha①② , WANG Jun , DI Shuhua , ZHUGE Yueying , LIU Youji     
① School of Geosciences, China University of Petroleum(East China), Qingdao, Shandong 266580, China;
② Jiaxing Jia'an Gas Technology Service Limited, Jiaxing, Zhejiang 314000, China;
③ Research Institute of Exploration and Development, Shengli Oilfield Branch Co., SINOPEC, Dongying, Shandong 257015, China;
④ North China Branch, Logging Co., Ltd., CNPC, Renqiu, Hebei 062550, China
Abstract: Glutenites are usually characterized by complex compositions, various pore structures, and strong heterogeneity, and the logging response of fluid is much smaller than that of gravel skeleton.So fluids in glutenites cannot be identified with conventional logging methods.Therefore we propose the machine learning AdaBoost.M2 algorithm for glutenite fluid identification.First combined with oil test data, the AdaBoost.M2 algorithm disassembles the K-class multi-fluid type classification problem into a two-class problem, and the sample distribution is obtained through multi-iterations.Then the decision tree algorithm called a weak learning algorithm obtains automatically a classifier ht for the discrimination.The proposed algorithm is applied to the reservoir fluid identification in A area.The sample return accuracy is 95% and the test accuracy is 91.5%, which proves the validity and applicability of proposed algorithm.
Keywords: machine learning    AdaBoost.M2 algorithm    glutenite    fluid identification    
0 引言

利用常规测井曲线难以准确识别复杂砂砾岩储层[1]中的流体类型,并且效率较低,主要是因为常规测井资料受岩性影响大,岩石骨架对测井响应特征的影响大于流体。另外,地层水矿化度低、岩石矿物成分多样等因素也会造成油、水层差异不明显,利用常规测井曲线判断流体时误差较大[2]。核磁共振测井技术的应用提高了复杂储层的识别精度,但是限于成本尚不能广泛应用于生产[3]。常规测井技术成本低、应用数据量大,利用机器学习研究常规测井资料在流体识别中的应用具有重要意义。

机器学习是利用计算机、概率论、统计学等通过数据输入,让计算机学会新知识,从而实现人工智能。机器学习的过程就是通过训练数据寻找目标函数,常用算法主要有决策树[4]、随机森林算法[5]、逻辑回归、支持向量机[6]、神经网络[7]、聚类分析[8]等。近年来,机器学习逐渐成为储层评价研究的热点[9],其以常规测井数据为基础,能大幅度提高流体识别精度。因此,机器学习技术的研究对于油气开发具有重要意义[10]。刘得芳等[11]应用决策树方法提高了利用单一信息判别的准确性。张银德等[12]结合测井资料和试采资料,利用支持向量机方法准确识别了油、气、水层。王少龙等[13]实现了BP神经网络在储层流体中的信息自动化识别。陈钢花等[14]构建声—电测井联合流体识别因子应用于川东碳酸盐岩气藏研究中,解释结果与试采结果吻合较好。但是,诸多算法中神经网络算法较为复杂,如果学习样本数量较少,容易出现过拟合问题,导致准确率下降。同时,神经网络“黑盒”过程导致无法观察中间结果,学习时间长,容易陷入局部极小值。在分类较多时,决策树法错误率较高。如果所用测井曲线数量以及标准样本数量不大时,应用聚类算法难以获得较为准确的结果。

针对以上问题,本文将AdaBoost(Adaptive Boosting,自适应增强)算法应用于砂砾岩储层流体识别中,以提高流体识别精度。

1 方法原理

Boosting算法也称为提升法或者增强学习,是一类常用的机器学习算法[15]。它是将弱学习器(Weak Learners)集成提升为一个预测(分类)精度高的强学习器(Strong Learner)。AdaBoost算法是Boosting算法族中最有影响的一种迭代算法[16],其预测精准、算法简单,在诸多领域都有着成功应用,尤其在处理分类问题和模式识别领域更为突出,例如人脸识别、语音识别、文本识别、遥感分类等[17]。AdaBoost算法迭代是通过改变训练集中样本数据各自的权重实现的,实现过程如图 1所示:

图 1 AdaBoost算法原理示意图 左为弱学习器训练过程,右为训练结果

(1) 对于二分类问题,在初始化时对训练集中的每一个样本数据赋予同样的权重,并训练出一个弱学习器1(图 1a左);

(2) 根据弱学习器1对样本数据的训练误差率更新样本数据的训练权重,使之前弱学习器1分类错误的训练样本点的权重增加,并使错误数据点被下一个弱学习器选中的概率增加(图 1a右);

(3) 基于调整权重后的训练样本训练弱学习器2(图 1b左);

(4) 重复上述(2)和(3)的步骤直至弱学习器数目达到事先指定的数目(图 1b右图 1c左);

(5) 将各个训练得到的弱学习器组合得到最终的强分类器(图 1c右)。

最初的AdaBoost算法只适用于二分类问题,而在实际中常常会遇到多分类问题。关于二分类问题,要求弱学习器的分类正确率比随机猜测略好,即正确率大于1/2。关于类别数目为K的多分类问题,弱学习器的分类正确率比随机猜测正确率1/K略大这一条件过弱,很难集成出一个精度高的强学习器。而弱学习器的分类正确率大于1/2这一条件又过强,可能导致在实际应用中难以找到足够多个正确率大于1/2的弱学习器[18]

AdaBoost.M2算法作为AdaBoost算法的推广,适用于解决多分类问题。对于K类多分类问题,AdaBoost.M2算法将其拆解为K-1个二分类问题加以解决。

AdaBoost.M2算法反复调用给定的弱学习器算法,主要是在训练集中维护一套权重分布。在第t轮迭代时,样本(xi, yi)(i为样本编号,xi为样本数据,yi为该样本的标签)的分布权值记为Dt(i)。初始所有样本权重相等,但进行迭代时,每一轮错误分类的样本权重都将会增加。弱学习器的任务就是根据分布Dt(i)找到合适的分类器。对于给定样本数据xi,有正确分类yi和非正确分类y(除yi之外的K-1类)[19]。调用弱学习算法自动得到分类器ht,并假设ht从[0, 1]取值。对于样本(xi, yi),ht会进行K-1次判别,每一次判别都有三种情况:当ht(xi, yi)=1、ht(xi, y)=0时,则分类正确,xi的类别是yi;当ht(xi, yi)=0、ht(xi, y)=1时,则分类错误,xi的类别是y;当ht(xi, yi)=ht(xi, y)时,则xi的类别随机从yiy中选取一个。

每一次判别错误分类为y的概率为

$ \frac{1}{2}\left[1-h_{t}\left(x_{i}, y_{i}\right)+h_{t}\left(x_{i}, y\right)\right] $ (1)

如果K-1次判别同等重要,即其权重都为$\frac{1}{K-1}$,则将假设的弱分类器ht的损失定义为

$ \frac{1}{K-1} \sum\limits_{y \neq y_{i}} \frac{1}{2}\left[1-h_{t}\left(x_{i}, y_{i}\right)+h_{t}\left(x_{i}, y\right)\right]\\ \;\;\;=\frac{1}{2}\left[1-h_{t}\left(x_{i}, y_{i}\right)+\frac{1}{K-1} \sum\limits_{y \neq y_{i}} h_{t}\left(x_{i}, y\right)\right] $ (2)

如果K-1次判别不同等重要,每次判别有不同的权重qt(i, y),且$\sum\limits_{y \neq y_{o}} q_{t}(i, y)=1$,则将假设的弱分类器ht的损失定义为

$ \frac{1}{2}\left[1-h_{t}\left(x_{i}, y_{i}\right)+\sum\limits_{y \neq y_{i}} q_{t}(i, y) h_{t}\left(x_{i}, y\right)\right] $ (3)

从而可以得到评估弱学习器好坏的伪损失

$ \begin{aligned} \varepsilon_{t}=& \frac{1}{2} \sum\limits_{i=1}^{N} D_{t(i)}\left[1-h_{t}\left(x_{i}, y_{i}\right)+\right.\\ &\left.\sum\limits_{y \neq y_{i}} q_{t}(i, y) h_{t}\left(x_{i}, y\right)\right] \end{aligned} $ (4)

伪损失εt对判别正确率低的弱分类器ht进行惩罚,减少其投票权重。同时,在下一轮迭代中增加错误分类的标签权重,加大对错分样本的训练机会。

AdaBoost.M2算法的实现步骤如下。

(1) 输入样本总数为N的训练集S={(x1, y1), …, (xi, yi), …, (xN, yN)},标签yiY={1, 2, K},其中i为样本编号,K是类别数。

(2) 初始化。样本数据初始分布$D_{1}(i)=\frac{1}{N}$,首次迭代中样本i的某个错误标签y的权重

$ \omega_{i, y}^{i}=\frac{D_{1}(i)}{K-1} \quad i=1, \cdots, N, y \in \boldsymbol{Y}=\left|\left\{y_{i}\right\}\right| $ (5)

(3) 循环迭代t=1, …, T

① 第t次迭代中样本i的的错误标签的权重之和$W_{i}^{t}=\sum\limits_{y \neq y_{i}} \omega_{i, y}^{t}$。对yyi$q_{t}(i, y)=\frac{\omega_{i, y}^{t}}{W_{i}^{t}}$,样本分布$D_{i}^{t}=\frac{W_{i}^{t}}{\sum\limits_{i=1}^{N} W_{i}^{t}}$

② 调用弱学习算法,传递Ditqt(i, y)给它,返回假设ht:X×Y→[0, 1]。X×Y为类别权重函数。

③ 计算ht的伪损失。

④ 置权重更新系数$\beta_{t}=\frac{\varepsilon_{t}}{1-\varepsilon_{t}}$

⑤ 计算新的权重

$ \omega_{i, y}^{i+1}=\omega_{i, y}^{i} \cdot \beta_{t}^{\frac{1}{2}\left[1+h_{t}\left(x_{i}, y_{i}\right)-h_{t}\left(x_{i}, y\right)\right]} $ (6)

式中:i=1, 2, …, N; yY-(yi)。

(4) 输出T次循环后得到的最终组合分类器

$ h_{f(x)}=\arg \max \limits_{y \in {\boldsymbol{Y}}} \sum\limits_{t=1}^{T} \lg \frac{1}{\beta_{t}} h_{t}(x, y) $ (7)
2 应用实例

A研究区砂砾岩具有近物源、快速堆积、纵向厚度变化大、相变快等特点。砾石成分复杂、孔隙结构多样、非均质性强,存在多油水系统,油水层测井响应特征差异不明显[20]。通常自然电位(SP)异常幅度可以反映储层渗透性、地层水矿化度,电阻率(RT)大小取决于孔隙结构以及孔隙所含流体。但在复杂砂砾岩储层中,地层水矿化度差异大,砂砾岩体岩石骨架对电阻率的的影响远远大于流体,利用常规测井资料难以准确评价油、水层。

图 2可知,利用密度与电阻率难以识别流体。因而,选取反映储层岩性、物性、流体性质的SP、GR(伽马)、RT、AC(声波时差)、CNL(补偿中子)、DEN(密度)等六种测井资料,运用机器学习算法,提取反映流体的信息,多参数结合实现砂砾岩中的流体识别。

图 2 研究区电阻率—密度交会图

首先在关键井中,根据核磁共振、录井油气显示、试油等结果选取多个井段的储层样本,综合考虑岩性、孔隙结构、地层水矿化度等因素,选取上述六种测井资料作为输入,建立研究区干层、水层、油水同层、油层识别模型。

建模前,对输入参数做归一化处理,消除量纲的影响。图 3为不同流体类型测井数据归一化后的平行坐标系,从左到右分别为DEN、CNL、GR、AC、SP、RT测井类型。每一个样本为一条曲线,不同颜色的曲线代表不同类型的流体。从图中可以看出,不同类型流体测井响应特征不同,同一种流体各测井响应特征也不完全一致。因此,采用单一测井曲线无法对复杂储层流体类型进行划分,需要多个测井参数进行学习分类,获得学习模型,识别油水层。

图 3 归一化后的参数平行坐标系

在AdaBoost.M2算法中,要求弱学习器的输出为一个在[0, 1]内的值。因此,本文采用决策树法作为弱分类器。在建模过程中,将归一化后的数据作为输入,输出为流体类型(判断为该类型响应为1,否则响应为0)。本文以研究区9口井为样本井,将试油、试采资料的层段作为样本层,共选择了反映流体性质的353个样本数据进行训练并建立砂砾岩流体识别模型。其中80%的样本(282个)作为训练数据,20%的样本(71个)作为测试数据,并将测试结果与试油、试采结果做对比分析。

表 1为测试结果与试油、试采资料的对比,可以看出代表判别错误的层共有6个,解释符合率为91.5%,证明了该模型的适用性,可用于研究区流体识别。

表 1 测试结果与试油、试采结果对照表

研究区X井流体识别测井解释成果如图 4所示。1437~1462m井段储层特征明显,SP值负异常,GR值低,DEN值偏低,AC值和CNL值均较低,RT值高,具有典型的含油气特征。本方法判定该储层为油层,试油结果日产油68.9×104m3。1611~1614m井段和1635~1640m井段的45、49号层SP值负异常,GR值低,DEN值中等,AC值和CNL值均中等,RT值较高,录井含油性为荧光,解释为差油层。本方法判定为干层。试油结果为干层,2个层段无产量。上述结果表明了本文方法的准确性和适用性。

图 4 X井试油段解释成果图 Rxo为冲洗带电阻率
3 结束语

AdaBoost.M2算法很好地利用了弱分类器进行联级,提高了分类准确度。本文将决策树法作为弱分类器用于砂砾岩流体识别,样本回判准确率为95%,测试准确率达91.5%,精度高且效果好。随着油气藏勘探难度的增加,测井数据复杂程度与人工对比识别难度也在增加,机器学习是解决该问题的有利途径,根据不同地区的特点选取测井数据和弱分类器类型、数目,即可提高流体识别精度,指导油气藏生产与开发。

参考文献
[1]
昝灵, 王顺华, 张枝焕, 等. 砂砾岩储层研究现状[J]. 长江大学学报(自然科学版), 2011, 8(3): 63-66.
ZAN Ling, WANG Shunhua, ZHANG Zhihuan, et al. Research status of glutenite reservoirs[J]. Journal of Yangtze University(Nature Science Edition), 2011, 8(3): 63-66.
[2]
赵军龙, 李新胜, 张彬. 基于测井曲线小波分析与希尔伯特变换的流体识别新方法[J]. 石油地球物理勘探, 2010, 45(2): 290-294, 305.
ZHAO Junlong, LI Xinsheng, ZHANG Bin. New fluid detection method based on well logging curve wavelet analysis and Hilbert transform[J]. Oil Geophysical Prospecting, 2010, 45(2): 290-294, 305.
[3]
孙焕泉, 运华云, 侯庆功, 等. 胜利油区油气层测井响应特征[M]. 北京: 石油工业出版社, 2008.
SUN Huanquan, YUN Huayun, HOU Qinggong, et al. Logging Response Characteristics of Oil and Gas Reservoirs in Shengli Oilfield[M]. Beijing: Petroleum Industry Press, 2008.
[4]
谭锋奇, 李洪奇, 孟照旭, 等. 数据挖掘方法在石油勘探开发中的应用研究[J]. 石油地球物理勘探, 2010, 45(1): 85-91.
TAN Fengqi, LI Hongqi, MENG Zhaoxu, et al. Stu-dies on application of data mining method in oil exploration and development[J]. Oil Geophysical Prospecting, 2010, 45(1): 85-91.
[5]
宋建国, 杨璐, 高强山, 等. 强容噪性随机森林算法在地震储层预测中的应用[J]. 石油地球物理勘探, 2018, 53(5): 954-960.
SONG Jianguo, YANG Lu, GAO Qiangshan, et al. Strong tolerance random forest algorithm in seismic reservoir prediction[J]. Oil Geophysical Prospecting, 2018, 53(5): 954-960.
[6]
殷文, 李援, 郭加树, 等. 基于改进蚁群追踪策略的地震层位自动识别方法[J]. 石油地球物理勘探, 2017, 52(3): 553-561.
YIN Wen, LI Yuan, GUO Jiashu, et al. Seismic horizon automatic identification based on ant colony tra-cking strategy[J]. Oil Geophysical Prospecting, 2017, 52(3): 553-561.
[7]
刘全稳. 测井神经网络技术综述[J]. 石油地球物理勘探, 1996, 31(增刊1): 64-69.
LIU Quanwen. A summary of logging neural network technology[J]. Oil Geophysical Prospecting, 1996, 31(S1): 64-69.
[8]
陈雷, 肖创柏, 禹晶, 等. 基于相似性传播聚类与主成分分析的断层识别方法[J]. 石油地球物理勘探, 2017, 52(4): 826-833.
CHEN Lei, XIAO Chuangbai, YU Jing, et al. Fault recognition based on affinity propagation clustering and principal component analysis[J]. Oil Geophysical Prospecting, 2017, 52(4): 826-833.
[9]
李舟波. 利用测井方法识别复杂油气储层的流体性质[J]. 石油与天然气地质, 2004, 25(4): 356-362.
LI Zhoubo. Problem and advance on the fluild typing for complex reservoirs using well log[J]. Oil & Gas Geology, 2004, 25(4): 356-362. DOI:10.3321/j.issn:0253-9985.2004.04.002
[10]
石宁, 李洪奇, 罗伟平. 数据挖掘与测井解释:应用于砾岩储层[J]. 应用地球物理, 2015, 12(2): 263-272.
SHI Ning, LI Hongqi, LUO Weiping. Data mining and well logging interpretation:application to a conglo-merate reservoir[J]. Applied Geophysics, 2015, 12(2): 263-272.
[11]
刘得芳, 林发武, 梁忠奎, 等. 碳酸盐岩储层流体性质综合判别方法[J]. 特种油气藏, 2015, 22(4): 104-107.
LIU Defang, LIN Fawu, LIANG Zhongkui, et al. An integrated method to determine fluid properties in carbonate reservoirs[J]. Special Oil & Gas Reservoirs, 2015, 22(4): 104-107. DOI:10.3969/j.issn.1006-6535.2015.04.027
[12]
张银德, 童凯军, 郑军, 等. 支持向量机方法在低阻油层流体识别中的应用[J]. 石油物探, 2008, 47(3): 306-310.
ZHANG Yinde, TONG Kaijun, ZHENG Jun, et al. Application of support vector machine method for identifying fluid in low-resistivity oil layers[J]. Geophysical Prospecting for Petroleum, 2008, 47(3): 306-310. DOI:10.3969/j.issn.1000-1441.2008.03.017
[13]
王少龙, 杨斌, 赵倩, 等. BP神经网络在复杂储层流体识别中的应用[J]. 石油化工应用, 2018, 37(7): 45-48.
WANG Shaolong, YANG Bin, ZHAO Qian, et al. Application of BP neural network in complex reservoir fluid identification[J]. Petrochemical Application, 2018, 37(7): 45-48. DOI:10.3969/j.issn.1673-5285.2018.07.011
[14]
陈钢花, 张艳, 毛克宇, 等. 声-电测井联合流体识别因子构建方法及其应用——以川东北碳酸盐岩气藏为例[J]. 石油物探, 2017, 56(2): 295-301.
CHEN Ganghua, ZHANG Yan, MAO Keyu, et al. Establishment of fluid identification factor by joint acoustic and resistivity logging and its application:a case study of carbonate gas reservoir in the Northeast Sichuan[J]. Geophysical Prospecting for Petroleum, 2017, 56(2): 295-301. DOI:10.3969/j.issn.1000-1441.2017.02.017
[15]
曹莹, 苗启广, 刘家辰, 等. AdaBoost算法研究进展与展望[J]. 自动化学报, 2013, 39(6): 745-758.
CAO Ying, MIAO Qiguang, LIU Jiachen, et al. Advance and prospects of AdaBoost algorithm[J]. Acta Automatica Sinica, 2013, 39(6): 745-758.
[16]
Schaping R E, Singer Y. Improved boosting algorithms using confidence rated prediction[J]. Machine Lear-ning, 1999, 37(3): 297-336. DOI:10.1023/A:1007614523901
[17]
吴信东. 数据挖掘十大算法[M]. 北京: 清华大学出版社, 2013.
WU Xindong. Ten Algorithms for Data Mining[M]. Beijing: Tsinghua University Press, 2013.
[18]
杨新武, 马壮, 袁顺. 基于弱分类器调整的多分类AdaBoost算法[J]. 电子与信息学报, 2016, 38(2): 373-380.
YANG Xinwu, MA Zhuang, YUAN Shun. Multi-class AdaBoost algorithm based on the adjusted weak classifier[J]. Journal of Electronics & Information Technology, 2016, 38(2): 373-380.
[19]
涂承胜, 刁力力, 鲁明羽, 等. Boosting家族AdaBoost系列代表算法[J]. 计算机科学, 2003, 30(3): 30-34.
TU Chengsheng, DIAO Lili, LU Mingyu, et al. The typical algorithm of AdaBoost series in Boosting family[J]. Computer Science, 2003, 30(3): 30-34. DOI:10.3969/j.issn.1002-137X.2003.03.008
[20]
袁红旗, 刘长利, 肖阳, 等. 二连盆地乌兰花凹陷沉积特征研究[J]. 地球物理学进展, 2016, 31(5): 2239-2245.
YUAN Hongqi, LIU Changli, XIAO Yang, et al. Sedimentary characteristics of Wulanhua Sag in Erlian Basin[J]. Progress in Geophysics, 2016, 31(5): 2239-2245.