趙春蘭 屈 瑤 王 兵 范翔宇 趙鵬斐 李 屹 何 婷
1.西南石油大學(xué)理學(xué)院 2.西南石油大學(xué)計算機科學(xué)學(xué)院 3.“油氣藏地質(zhì)及開發(fā)工程”國家重點實驗室·西南石油大學(xué) 4.西南石油大學(xué)地球科學(xué)與技術(shù)學(xué)院
石油鉆井是石油、天然氣勘探開發(fā)的重要手段,隨著石油開采的不斷提速和鉆井新技術(shù)的迅速發(fā)展,各種鉆井事故在鉆井施工過程中出現(xiàn)的風(fēng)險也隨之增大,嚴(yán)重威脅著鉆井工作者的安全[1]。由于鉆井行業(yè)具有規(guī)模大和高風(fēng)險的特點[2],為了盡量避免人員傷亡、降低財產(chǎn)損失和保證鉆井作業(yè)的順利進(jìn)行[3],根據(jù)鉆井事故發(fā)生的原因,建立一種新的鉆井安全事故預(yù)測模型,成為了有效評價鉆井事故過程中亟須解決的重要問題。
對于石油鉆井安全事故的預(yù)警研究,按照鉆井事故的種類,可分為單一鉆井事故和多種鉆井事故[4]。單一鉆井事故主要為井涌、井漏以及卡鉆等某一種事故,而多種鉆井事故則是包含了多種單一鉆井事故的預(yù)警研究。目前,對于單一鉆井事故的研究方法較多,包括時間序列分析[5]、貝葉斯模型[6-7]、模糊專家系統(tǒng)[8]、支持向量機回歸[9]、BP神經(jīng)網(wǎng)絡(luò)[10-11]等。而關(guān)于多種鉆井事故的預(yù)警研究還較少,因此深入研究多種鉆井事故的預(yù)測對于油氣田開采行業(yè)具有重要的現(xiàn)實意義。
為了研究石油鉆井行業(yè)中多種鉆井事故的預(yù)測,可從其他行業(yè)的多種事故預(yù)測方向展開進(jìn)一步研究。隨著人工智能技術(shù)的日益發(fā)展,關(guān)于多種事故預(yù)測的研究方法主要分為機器學(xué)習(xí)和深度學(xué)習(xí)算法。機器學(xué)習(xí)是通過各種算法對大量的數(shù)據(jù)進(jìn)行訓(xùn)練,從而實現(xiàn)預(yù)測與分類;而深度學(xué)習(xí)屬于機器學(xué)習(xí)的分支,是利用更為深層的網(wǎng)絡(luò)結(jié)構(gòu)來解決特征表達(dá)的學(xué)習(xí)方法。傳統(tǒng)的鉆井事故預(yù)測大多采用機器學(xué)習(xí)算法,例如支持向量機[12](SVM)、隨機森林[13](RF)以及BP神經(jīng)網(wǎng)絡(luò)[14]等。雖然SVM和RF預(yù)測模型的準(zhǔn)確性較好,但是其訓(xùn)練樣本的數(shù)據(jù)維度較小,且難以解決多分類的預(yù)測問題。另外BP神經(jīng)網(wǎng)絡(luò)中網(wǎng)絡(luò)結(jié)構(gòu)的不確定性導(dǎo)致預(yù)測精度不佳,且容易陷入局部最小值,降低泛化能力。由于機器學(xué)習(xí)算法對于預(yù)測模型的訓(xùn)練已經(jīng)不能滿足預(yù)測精度的要求,而深度學(xué)習(xí)算法可以通過提高網(wǎng)絡(luò)結(jié)構(gòu)的計算深度來實現(xiàn)多分類鉆井事故的預(yù)測,因此考慮將深度學(xué)習(xí)算法應(yīng)用于鉆井事故預(yù)測問題中。
針對上述傳統(tǒng)機器學(xué)習(xí)方法在預(yù)測精度、處理多維數(shù)據(jù)以及多分類預(yù)測問題等方面存在的不足,國內(nèi)外的學(xué)者提出了基于深度學(xué)習(xí)方法的卷積神經(jīng)網(wǎng)絡(luò)模型來解決這些問題。譚媛元等[15]提出一種基于主成分分析(PCA)和一維卷積神經(jīng)網(wǎng)絡(luò)(1D-CNN)的融合模型,通過對財務(wù)指標(biāo)的反向?qū)W習(xí)訓(xùn)練,構(gòu)建三層卷積神經(jīng)網(wǎng)絡(luò)模型,實現(xiàn)財務(wù)危機預(yù)警的二分類問題,新模型的預(yù)測準(zhǔn)確率達(dá)到了81.65%;同時Ghulam等[16]利用二維卷積神經(jīng)網(wǎng)絡(luò)(2D-CNN)改進(jìn)抗癌肽的預(yù)測,構(gòu)建一種新的預(yù)測抗癌肽的二分類模型,最終實驗結(jié)果取得了較好的預(yù)測準(zhǔn)確性。相較于1D-CNN模型,2D-CNN模型具有較高的計算深度,有利于提高卷積神經(jīng)網(wǎng)絡(luò)分類預(yù)測的效果。鑒于之前2D-CNN模型在抗癌肽的二分類預(yù)測中得到了較好地應(yīng)用,故本文研究二維卷積神經(jīng)網(wǎng)絡(luò)模型在鉆井事故等級的多分類預(yù)測方面的應(yīng)用。
為了更好地解決多維鉆井?dāng)?shù)據(jù)的多分類問題,提高預(yù)測模型的準(zhǔn)確性,筆者提出了一種基于2D-CNN深度學(xué)習(xí)模型的鉆井事故等級預(yù)測的新方法。利用卷積層挖掘多維風(fēng)險指標(biāo)的事故特征,通過增加卷積神經(jīng)網(wǎng)絡(luò)的計算深度,來提高鉆井事故等級的預(yù)測精度,首次將二維卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于多分類的預(yù)測問題中,實現(xiàn)鉆井安全事故等級的識別,并對鉆井現(xiàn)場作業(yè)進(jìn)行有效的風(fēng)險評價。
信息增益(Information Gain,IG)是機器學(xué)習(xí)中常用的一種度量[17],常用于變量的特征選擇,當(dāng)變量的信息增益值越大時,表明變量對分類做出的貢獻(xiàn)越多[18],即變量的重要程度越高。通常,信息增益采用信息熵H(X)和條件熵H(XY)的差值表示,信息增益的表達(dá)式為:
式中m、n表示變量X和Y的維度,p(xi)表示變量X發(fā)生的可能性,表示給定變量X時變量Y發(fā)生的可能性。
引入模糊數(shù)學(xué)的思想,采用模糊C均值算法(FCM)對鉆井事故類型進(jìn)行分類。FCM聚類算法是一種無監(jiān)督的算法,核心思想就是通過不斷地更新聚類中心與隸屬度函數(shù),直到得到最佳聚類中心則終止[19]。假設(shè)樣本集為X={x1,x2,…,xn},將其劃分為c類,令第i類的聚類中心為ci,第j個樣本xj屬于第i個聚類中心的隸屬度為uij。則FCM算法的目標(biāo)函數(shù)如式(2)[20]:
式中c表示聚類數(shù)目,n表示樣本總數(shù),m表示模糊加權(quán)指數(shù),且表示樣本xj和聚類中心ci之間的歐幾里得距離。隸屬度uij滿足式(3)的約束條件:
利用拉格朗日乘子法,引入?yún)?shù)λ,則拉格朗日函數(shù)為:
對目標(biāo)函數(shù)中的未知變量ci和uij求偏導(dǎo)使其等于0,得到聚類中心ci和隸屬度函數(shù)uij的迭代表達(dá)式為:
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)是一種前饋式神經(jīng)網(wǎng)絡(luò),憑借強大的特征提取和識別能力,在時間序列數(shù)據(jù)和圖像數(shù)據(jù)的分類任務(wù)中得到了成功的應(yīng)用[21]。它不僅能夠降低網(wǎng)絡(luò)模型的復(fù)雜度,而且還能通過其特有的卷積、池化操作實現(xiàn)對數(shù)據(jù)特征的自動化提取,極大地提高了模型對于輸入數(shù)據(jù)的適應(yīng)能力[22]。由于鉆井現(xiàn)場作業(yè)的事故風(fēng)險指標(biāo)為時間序列數(shù)據(jù),因此可以采用一維卷積神經(jīng)網(wǎng)絡(luò)(1D-CNN)模型實現(xiàn)鉆井事故等級的多分類預(yù)測。
通過對BP神經(jīng)網(wǎng)絡(luò)中隱含層結(jié)構(gòu)的功能和形式進(jìn)行改進(jìn),將其轉(zhuǎn)化為一維卷積神經(jīng)網(wǎng)絡(luò)。BP神經(jīng)網(wǎng)絡(luò)與一維卷積神經(jīng)網(wǎng)絡(luò)一般都由輸入層、隱含層和輸出層三個部分組成,區(qū)別在于1D-CNN模型的隱含層還包含卷積層、池化層和全連接層。相較于BP神經(jīng)網(wǎng)絡(luò),一維卷積神經(jīng)網(wǎng)絡(luò)模型的優(yōu)勢在于:①從輸入?yún)?shù)的角度,由于神經(jīng)元之間的連接方式為局部區(qū)域連接,因此有效減少訓(xùn)練參數(shù)的數(shù)目,降低神經(jīng)網(wǎng)絡(luò)的復(fù)雜度,提高了模型的計算效率;②從權(quán)值異同的角度,1D-CNN模型采用權(quán)值共享的方式,使得算法具有較強魯棒性,且易于訓(xùn)練。BP神經(jīng)網(wǎng)絡(luò)和1D-CNN模型的網(wǎng)絡(luò)連接方式如圖1所示。
圖1 BP神經(jīng)網(wǎng)絡(luò)和1D-CNN模型的網(wǎng)絡(luò)連接方式圖
BP神經(jīng)網(wǎng)絡(luò)的神經(jīng)元之間采用全連接的方式,對應(yīng)的權(quán)值和偏置都不同,則隱含層第j個神經(jīng)元的輸出表示為:
由于1D-CNN模型引入了卷積核,因此神經(jīng)元之間的連接方式變?yōu)榫植窟B接,且具有共享權(quán)值的特點。再對式(7)的權(quán)值部分進(jìn)行改進(jìn),得到一維卷積神經(jīng)網(wǎng)絡(luò)中卷積層第j個神經(jīng)元的輸出:
式中wi表示神經(jīng)元之間卷積核的共享權(quán)重;k表示卷積核個數(shù);bk表示隱含層中第k個卷積核對應(yīng)的偏置。
根據(jù)卷積神經(jīng)網(wǎng)絡(luò)中卷積核移動方向的不同,分為一維卷積神經(jīng)網(wǎng)絡(luò)和二維卷積神經(jīng)網(wǎng)絡(luò)。相較于前者卷積核的單向移動方式,二維卷積神經(jīng)網(wǎng)絡(luò)卷積核的雙向移動方式能夠較好地提取影響事故等級的風(fēng)險特征,從而提高模型的預(yù)測準(zhǔn)確性。由此,對1D-CNN的輸入形式進(jìn)行改進(jìn),即將一維形式的時間序列數(shù)據(jù)轉(zhuǎn)化為二維形式的圖像數(shù)據(jù),則得到2D-CNN模型,其主要結(jié)構(gòu)為卷積層、池化層、輸出層3個部分。
通過卷積層提取矩陣特征,其輸出值由多個特征面構(gòu)成,特征面對應(yīng)的每一個取值都代表一個神經(jīng)元,特征面中每個神經(jīng)元上的取值都通過卷積核計算得到[21]。一維卷積神經(jīng)網(wǎng)絡(luò)中卷積核是沿x軸的單向移動,而二維卷積卷積神經(jīng)網(wǎng)絡(luò)的卷積核是先沿x軸,再沿y軸的雙向移動[23],其移動操作如圖2所示。
圖2 1D-CNN和2D-CNN的卷積層結(jié)構(gòu)圖
假設(shè)1D-CNN模型卷積核的維度M=4,2D-CNN模型卷積核的維度M×M=2×2。根據(jù)式(8)對1D-CNN模型的卷積核和輸入數(shù)據(jù)結(jié)構(gòu)進(jìn)行改進(jìn),得到2D-CNN模型卷積層的計算公式為:
式中yk,j表示第k個特征面的第j個神經(jīng)元的輸出值;wk,s,t表示第k個卷積核中第s行第t列對應(yīng)的權(quán)值;bk為卷積層中第k個卷積核對應(yīng)的偏置值。
為了提高CNN模型的非線性能力,激活函數(shù)選擇常用的Relu函數(shù),其具體的表達(dá)式為:
接下來采用池化層對提取的特征進(jìn)行篩選和過濾,通過對上層的數(shù)據(jù)進(jìn)行縮放映射來降維,保持?jǐn)?shù)據(jù)特征具有縮放不變性,同時防止數(shù)據(jù)出現(xiàn)過擬合的情況。
最后是輸出層,利用Softmax函數(shù)回歸之后的交叉熵?fù)p失函數(shù)得到最終分類結(jié)果,從而輸出預(yù)測值,即鉆井事故等級對應(yīng)的分類概率,范圍在0到1之間,將概率值最大的類別作為樣本所屬的鉆井事故等級。其中Softmax函數(shù)和交叉熵?fù)p失函數(shù)的表達(dá)式分別為:
式中J表示交叉熵?fù)p失函數(shù);xi表示全連接層的輸出值;yi表示4種鉆井事故的真實等級,分別表示特別重大事故、重大事故、較大事故、一般事故;h(xi)表示Softmax函數(shù)回歸后的值。
對于多種鉆井事故的預(yù)測研究,雖然傳統(tǒng)的機器學(xué)習(xí)算法基礎(chǔ)理論完善,方法簡單可行,但在多維數(shù)據(jù)提取事故特征方面存在一定的局限性。而深度學(xué)習(xí)算法中的卷積神經(jīng)網(wǎng)絡(luò)模型作為常用的處理多維數(shù)據(jù)的模型,為多維鉆井?dāng)?shù)據(jù)的事故等級預(yù)測提供了新的思路。由于一維卷積神經(jīng)網(wǎng)絡(luò)模型的計算深度較低,使得分類模型的預(yù)測效果有待提高。因此為了提高模型的預(yù)測精度,將二維卷積神經(jīng)網(wǎng)絡(luò)模型應(yīng)用于鉆井事故等級的預(yù)測中,以實現(xiàn)鉆井現(xiàn)場作業(yè)的風(fēng)險評價。
基于2D-CNN的鉆井事故等級預(yù)測模型的構(gòu)建思想如下:首先對原始鉆井?dāng)?shù)據(jù)的風(fēng)險指標(biāo)和事故類型進(jìn)行數(shù)據(jù)預(yù)處理,利用FCM聚類算法對事故類型進(jìn)行分類得到真實的鉆井事故等級,再利用信息增益值的大小排序?qū)︼L(fēng)險指標(biāo)進(jìn)行一次降維;然后將新的風(fēng)險指標(biāo)作為2D-CNN模型的輸入,通過卷積層的卷積操作以及池化層的二次降維操作,最終輸出預(yù)測的鉆井事故等級,從而解決鉆井事故等級的多分類預(yù)測問題。
為了解決多維鉆井?dāng)?shù)據(jù)的多分類預(yù)測問題,筆者提出了基于2D-CNN深度學(xué)習(xí)算法的新鉆井事故等級的預(yù)測模型。模型的構(gòu)建步驟主要分為3步,如圖3所示。
圖3 基于2D-CNN的鉆井事故預(yù)測模型結(jié)構(gòu)圖
2.2.1 原始數(shù)據(jù)完整化處理
通過收集鉆井現(xiàn)場作業(yè)數(shù)據(jù),確定原始三級風(fēng)險指標(biāo)和原始鉆井事故類型,利用K近鄰插值算法對缺失值進(jìn)行填充以及歸一化處理,實現(xiàn)數(shù)據(jù)完整化處理,以確保后續(xù)建模的有效性和準(zhǔn)確性。
2.2.2 鉆井事故等級劃分及特征選擇
采用FCM聚類算法對原始事故類型進(jìn)行分類,根據(jù)隸屬度矩陣確定鉆井事故等級,再利用原始風(fēng)險指標(biāo)和鉆井事故等級進(jìn)行特征選擇,保留信息增益值大于1的新的風(fēng)險指標(biāo)。
2.2.3 構(gòu)建2D-CNN模型預(yù)測鉆井事故等級
將新的風(fēng)險指標(biāo)進(jìn)行向量擴(kuò)充,對新的風(fēng)險指標(biāo)向量進(jìn)行矩陣化處理,在二維卷積神經(jīng)網(wǎng)絡(luò)模型中引入卷積核,將新的風(fēng)險指標(biāo)矩陣作為2D-CNN深度學(xué)習(xí)模型的輸入,通過卷積層提取風(fēng)險指標(biāo)的特征,再經(jīng)過池化層的二次降維,以及全連接層的計算,最終輸出鉆井事故分類的預(yù)測結(jié)果。
油氣鉆井現(xiàn)場的風(fēng)險指標(biāo)體系具有復(fù)雜性、多層次性的特點,導(dǎo)致影響鉆井現(xiàn)場作業(yè)事故等級的因素較多。通過石油鉆探行業(yè)工作人員的現(xiàn)場調(diào)研,鉆井事故數(shù)據(jù)的一級風(fēng)險指標(biāo)分別為人的因素、物的因素、環(huán)境因素以及管理因素,13種鉆井事故風(fēng)險類型[24]分別為交通事故、機械傷害事故、火災(zāi)、起重傷害事故、其他事故(除上述4類事故以外的事故)、交通事件等。其中,安全事故和安全事件的劃分標(biāo)準(zhǔn)為單位人員或非單位人員在現(xiàn)場作業(yè)時是否發(fā)生人身傷亡、急性中毒或者直接經(jīng)濟(jì)損失的事故。鉆井事故數(shù)據(jù)的二級和三級風(fēng)險指標(biāo)xi(i= 1,2,…,73)如表1所示,部分三級風(fēng)險指標(biāo)含義不作贅述,事故風(fēng)險類型yj(j= 1,2,…,13)如表2所示。
表1 鉆井事故風(fēng)險評估指標(biāo)表
表2 鉆井事故風(fēng)險類型表
由于各個鉆探公司收集到的原始鉆井現(xiàn)場作業(yè)數(shù)據(jù)中存在大量缺失數(shù)據(jù),故采用K近鄰插值算法進(jìn)行數(shù)據(jù)完整化處理。設(shè)置適當(dāng)?shù)腒值為3,即將最近鄰的3個樣本對應(yīng)維度數(shù)據(jù)點的均值作為該缺失數(shù)據(jù)點的估計值。將缺失值進(jìn)行數(shù)據(jù)清洗后,整理得到2015年1月至2019年12月內(nèi)59個鉆井現(xiàn)場作業(yè)的月度樣本數(shù)據(jù)。
由于鉆井風(fēng)險指標(biāo)的數(shù)據(jù)維度較大,因此原始數(shù)據(jù)在輸入2D-CNN模型進(jìn)行訓(xùn)練之前,需要對數(shù)據(jù)進(jìn)行歸一化處理,通過最大最小值歸一化將原始數(shù)據(jù)轉(zhuǎn)化為[0,1]之間的數(shù)據(jù),實現(xiàn)損失函數(shù)的較快收斂。
由于影響鉆井風(fēng)險指標(biāo)的因素較多,根據(jù)13種鉆井事故類型,對59個鉆井事故樣本數(shù)據(jù)進(jìn)行聚類。利用FCM聚類算法中聚類中心ci和隸屬度函數(shù)uij的更新迭代公式,得到4種鉆井事故等級的分類結(jié)果,分別為特別重大事故、重大事故、較大事故、一般事故。則FCM聚類算法的基本流程如下:①初始化參數(shù),設(shè)置聚類類別個數(shù)為c=4,迭代次數(shù)為50次,并指定模糊加權(quán)指數(shù)m=2;②在滿足隸屬度權(quán)重和為1的約束條件下,計算隸屬度矩陣U[式(6)];③根據(jù)隸屬度矩陣U計算聚類中心c[式(5)];④判斷是否達(dá)到預(yù)設(shè)的迭代次數(shù),若未達(dá)到,則返回步驟②,若已達(dá)到,則說明已達(dá)到最優(yōu)化的目標(biāo)函數(shù)J[式(2)];⑤根據(jù)最大隸屬度原則,確定各樣本所屬的4種類別標(biāo)簽。
利用Matlab軟件對59個鉆井事故樣本數(shù)據(jù)進(jìn)行模糊C均值聚類,當(dāng)?shù)螖?shù)達(dá)到50次時,目標(biāo)函數(shù)值趨于穩(wěn)定,如圖4-a所示,通過樣本的最大隸屬矩陣值確定各樣本對應(yīng)的鉆井事故等級。根據(jù)鉆井事故的嚴(yán)重程度得到分類結(jié)果:特別重大事故(16種)、重大事故(15種)、較大事故(15種)、一般事故(13種),則各樣本對應(yīng)的分類結(jié)果如圖4-b所示。
圖4 鉆井事故等級的分類結(jié)果圖
根據(jù)各個鉆探公司從鉆井現(xiàn)場收集到的風(fēng)險指標(biāo)和安全事故類型每月發(fā)生次數(shù)的歷史數(shù)據(jù),利用式(1)的信息增益值對三級事故風(fēng)險指標(biāo)進(jìn)行特征選擇,根據(jù)信息增益值的大小排序,保留增益值大于1的風(fēng)險指標(biāo),得到25個顯著影響鉆井事故等級預(yù)測的事故指標(biāo)。信息增益值的排序結(jié)果如表3所示。
表3 各風(fēng)險指標(biāo)的信息增益值表
2D-CNN模型采用監(jiān)督學(xué)習(xí)的訓(xùn)練方式,訓(xùn)練過程分為前向訓(xùn)練和反向訓(xùn)練兩個階段。首先確定二維卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),設(shè)置初始參數(shù)和迭代次數(shù),將結(jié)構(gòu)重組后二維形式的特征矩陣作為模型的輸入,并進(jìn)行前向訓(xùn)練,模型的訓(xùn)練樣本中鉆井事故預(yù)測等級與實際值進(jìn)行對比得到預(yù)測準(zhǔn)確率;然后進(jìn)行反向傳播,使用優(yōu)化算法不斷更新權(quán)重矩陣,從而提高模型的預(yù)測準(zhǔn)確率。
筆者基于2D-CNN網(wǎng)絡(luò)的鉆井事故預(yù)測模型由2層卷積層、2層池化層以及2層全連接層構(gòu)成。在第一層二維卷積層中,卷積核個數(shù)為1,窗口大小為4×4,步長為2,在卷積層后設(shè)置激活函數(shù)Relu,可以向深度網(wǎng)絡(luò)中加入非線性;為了防止模型訓(xùn)練過程中出現(xiàn)梯度消失的問題,在卷積層后面添加批量歸一化處理(即BN層);之后采用最大池化層,設(shè)置步長為1,池化尺寸為2×2,以上卷積層和池化層的填充方式均為不填充模式(Valid);接下來是第二層卷積層,將卷積核的大小設(shè)為2×2,步長為1;第二層池化層的參數(shù)與上述相同;為了防止模型過擬合問題,加入一個丟棄層(Dropout),設(shè)置概率(p)為0.5,即舍棄掉50%的信息;再通過扁平層(Flatten)操作,將三維向量特征壓縮成一維時序向量特征。最后接入2個全連接層,輸出4種鉆井事故等級的預(yù)測結(jié)果。
2D-CNN模型訓(xùn)練時,將59個鉆井樣本的數(shù)據(jù)集按照8∶2的比例劃分為訓(xùn)練集和測試集。訓(xùn)練過程中,設(shè)置迭代次數(shù)(Epoch)為100,訓(xùn)練批次大小為4,學(xué)習(xí)率為0.001,卷積層中激活函數(shù)采用激活函數(shù)(Relu),輸出層采用激活函數(shù)(Softmax)和交叉熵?fù)p失函數(shù),優(yōu)化算法為自適應(yīng)矩估計算法,通過梯度下降的方式不斷調(diào)整模型的參數(shù),得到最優(yōu)的2D-CNN預(yù)測模型,最終輸出分類結(jié)果。其中,2D-CNN預(yù)測模型的結(jié)構(gòu)和參數(shù)如表4所示。
表4 2D-CNN預(yù)測模型的結(jié)構(gòu)和參數(shù)表
利用2D-CNN模型對鉆井事故等級進(jìn)行預(yù)測,預(yù)測模型主要由輸入層、卷積層、池化層及全連接層構(gòu)成,其模型的預(yù)測流程如圖5所示。
圖5 基于2D-CNN模型的鉆井事故預(yù)測流程圖
基于2D-CNN的多維鉆井事故預(yù)測模型的具體流程如下:①采用信息增益值和FCM聚類算法實現(xiàn)數(shù)據(jù)預(yù)處理,確定25個風(fēng)險指標(biāo)和4種鉆井事故等級;再將輸入數(shù)據(jù)劃分為訓(xùn)練集和測試集,利用獨熱編碼對測試集的事故等級進(jìn)行數(shù)字化處理;②訓(xùn)練集對神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,通過2D-CNN模型的卷積層提取信息并學(xué)習(xí)事故特征,并采用BPTT算法將訓(xùn)練誤差反向傳播,不斷更新模型參數(shù);③利用Softmax函數(shù)得到事故等級的分類概率,為避免模型過擬合,通過梯度下降的方式不斷調(diào)整模型的參數(shù),得到預(yù)測模型的最優(yōu)參數(shù);④判斷網(wǎng)絡(luò)的迭代次數(shù)是否達(dá)到預(yù)先設(shè)定的100次,如果是,則運行下一步,否則重復(fù)第2步;⑤測試集驗證已訓(xùn)練好的模型性能,計算評價指標(biāo),輸出預(yù)測結(jié)果,則計算結(jié)束。
筆者采用準(zhǔn)確率(Accuracy)、靈敏度(Sensitivity)及特異性(Specificity)3種指標(biāo)來評價預(yù)測模型的性能,并且用混淆矩陣詳細(xì)地說明每種事故等級的分類結(jié)果。準(zhǔn)確率是分類正確的事故等級占總測試樣本的比例;靈敏性是正例中被分類正確的比例;特異性是負(fù)例中被分類正確的比例。其中,準(zhǔn)確率是評價模型性能中最直觀的指標(biāo),而靈敏度越高說明漏檢的概率越小,特異性越高說明誤診率越小。則準(zhǔn)確率、靈敏性及特異性的計算公式為:
式中F1、F2、F3分別表示評價預(yù)測模型的準(zhǔn)確率、靈敏度及特異性;TP、FN分別表示正樣本中被正確識別為正樣本的數(shù)量,被錯誤識別為負(fù)樣本的數(shù)量;TN、FP分別表示負(fù)樣本中被正確識別為負(fù)樣本的數(shù)量,被錯誤識別為正樣本的數(shù)量。
本文利用2D-CNN模型對鉆井現(xiàn)場作業(yè)事故進(jìn)行預(yù)測,將特征選擇后的風(fēng)險指標(biāo)輸入到模型中,經(jīng)過卷積神經(jīng)網(wǎng)絡(luò)卷積層、池化層以及全連接層的操作后,通過Softmax函數(shù)得到各個樣本的鉆井事故等級的概率值,將概率較大的類別作為樣本對應(yīng)的事故等級,最終輸出事故預(yù)測結(jié)果。采用訓(xùn)練集和測試集的損失和準(zhǔn)確率來衡量預(yù)測效果的好壞,損失和準(zhǔn)確率的變化曲線如圖6所示。
圖6 訓(xùn)練集和測試集的損失/準(zhǔn)確率的變化曲線圖
利用2D-CNN模型對鉆井事故等級進(jìn)行分類,當(dāng)?shù)螖?shù)達(dá)到60的時候,損失和準(zhǔn)確率的整體曲線趨于平穩(wěn),測試集的準(zhǔn)確率達(dá)到了91.67%,損失值為0.409,表明2D-CNN模型在鉆井事故預(yù)測方面表現(xiàn)出較高的準(zhǔn)確率。
表5為2D-CNN模型中分類結(jié)果的數(shù)量對應(yīng)的混淆矩陣以及鉆井事故等級的靈敏度、特異性以及總體的評判結(jié)果。結(jié)果表明2D-CNN模型的靈敏度為0.92,特異性為0.92。其中,一般事故、較大事故、特別重大事故的靈敏度和特異性均為1,因此不存在漏檢和誤診的情況。
表5 2D-CNN模型分類結(jié)果表
為了進(jìn)一步驗證基于2D-CNN鉆井事故預(yù)測模型的有效性,將其與BP神經(jīng)網(wǎng)絡(luò)模型和1D-CNN模型進(jìn)行對比分析。采用Python軟件的Keras模塊,在不改變模型整體結(jié)構(gòu)的同時,對模型的輸入層進(jìn)行修改,使其適用于鉆井事故預(yù)測的多分類問題。采用相同的數(shù)據(jù)集對鉆井事故等級進(jìn)行預(yù)測,選取準(zhǔn)確率、靈敏度以及特異性作為衡量預(yù)測效果的評價指標(biāo),不同預(yù)測模型的對比結(jié)果如表6所示。
表6 不同預(yù)測模型的評價指標(biāo)比較表
由于1D-CNN模型和2D-CNN模型的準(zhǔn)確率明顯高于BP神經(jīng)網(wǎng)絡(luò)模型,說明卷積神經(jīng)網(wǎng)絡(luò)的卷積核能夠較好地學(xué)習(xí)風(fēng)險指標(biāo)之間的特征,提取較為顯著的指標(biāo)進(jìn)行預(yù)測,從而提高了鉆井事故等級預(yù)測結(jié)果的準(zhǔn)確性。最終根據(jù)表6實驗結(jié)果可知,筆者建立的基于2D-CNN深度學(xué)習(xí)方法的鉆井事故預(yù)測模型的準(zhǔn)確率為0.917,靈敏度為0.918,特異性為0.915,均優(yōu)于BP神經(jīng)網(wǎng)絡(luò)模型和1D-CNN模型,并且在測試集上的損失值最小。
根據(jù)圖7不同模型鉆井事故等級的實際情況與預(yù)測情況的對比結(jié)果,相比于其他模型,2D-CNN模型測試集上鉆井事故等級的預(yù)測情況與實際事情整體變化趨勢更加符合,存在誤判的情況較少,說明該模型具有較好的預(yù)測能力,適用于鉆井事故等級的預(yù)測。
圖7 不同模型測試集上實際情況和預(yù)測情況對比圖
本文提出一種新的基于2D-CNN深度學(xué)習(xí)算法的預(yù)測模型,解決了鉆井安全事故等級預(yù)測的多分類問題,其預(yù)測結(jié)果對鉆井作業(yè)現(xiàn)場作業(yè)的事故風(fēng)險評價具有重要參考價值?;诒狙芯康慕Y(jié)果,得出以下結(jié)論并提出相關(guān)建議。
1)采用FCM聚類算法對多種鉆井事故類型進(jìn)行分類,得到4種鉆井事故等級,再通過信息增益值的大小排序?qū)Χ嗑S風(fēng)險指標(biāo)進(jìn)行特征選擇,確定了25個新的影響事故等級預(yù)測的風(fēng)險指標(biāo),合理選擇風(fēng)險指標(biāo)有利于提高鉆井事故多分類的預(yù)測精度。
2)將雙層2D-CNN深度學(xué)習(xí)方法應(yīng)用于鉆井事故等級預(yù)測,預(yù)測準(zhǔn)確率為0.917,靈敏度為0.918,特異性為0.915,優(yōu)于BP神經(jīng)網(wǎng)絡(luò)模型和1D-CNN模型,并且在測試集上損失值最小。由于2D-CNN模型具有較深的計算深度,提高了模型的預(yù)測精度,因此該模型適用于鉆井事故等級預(yù)測的研究。
3)針對多維鉆井?dāng)?shù)據(jù)的多分類問題,提出了基于2D-CNN的深度學(xué)習(xí)模型,在小樣本量的鉆井事故等級預(yù)測方面具有較好的準(zhǔn)確性和有效性,而在樣本量較大的預(yù)測問題中精度會得到明顯的提高,因此該方法為樣本量較大的多維鉆井?dāng)?shù)據(jù)的事故預(yù)測研究提供了一種新的思路。