鄭鵬飛,楊洋,石鑫,聞小虎
(1.西南石油大學地球科學與技術學院,四川成都,610500;2.中國石油化工集團公司碳酸鹽巖縫洞型油藏提高采收率重點實驗室,新疆烏魯木齊,830011;3.中國石油化工股份有限公司西北油田分公司工程技術研究院,新疆烏魯木齊,830011)
在石油和天然氣行業中,油氣管道因其經濟性和安全性,成為了目前最主要的油氣輸送方式之一,而碳鋼材料是使用較廣泛的材料之一。因油氣管道中存在CO2以及H2S等氣體,所以在油氣管道內會形成酸性的環境,隨著投產年限的增加,這種腐蝕環境對碳鋼管道的腐蝕作用會逐漸累積。為了更好的研究油氣管道腐蝕,目前有大量的學者通過建立傳統物理模型、使用人工智能等方法建立了多種腐蝕預測模型,但由于管道檢測數據的數量及維度并不總是能滿足模型的要求,以及各模型的適用性的限制,這些模型并不能廣泛的應用于實際的生產,所以利用實驗室條件,深入研究金屬腐蝕則顯得尤為重要。
我們首先利用動態反應裝置獲取了99條實驗室條件下的金屬腐蝕數據,然后使用PCA降維、箱線圖去離散值、標準化等預處理步驟之后,選擇了bagging[1]和boosting[2]集成方式中的共計11種模型,并在通過10折交叉驗證的方法獲得最佳超參數后,將其組合的方式,對各種組合的預測性能進行對比和研究。我們的實驗發現在本實驗的數據集上,stacking的預測表現并不是很好,甚至大多數情況不如基礎的集成學習算法;性能最好的基礎模型的組合數量為5個;當Extratrees模型參與stacking集成時,更容易提高預測性能。
該實驗數據的獲取方法為:以四個L360N金屬掛片(50×10×3mm)為一組,置入動態反應裝置內,通過人為控制壓力、溫度、CO2分壓等參數,設置實驗周期為7天,通過稱量金屬掛片在反應前后的質量差,并與反應時間相除的方式,就可以得到每組實驗環境條件下的平均腐蝕速率。本實驗共采集到99組數據,其中原始參數包括液體流速,溫度,傾角,CO2分壓,H2S分壓,然后使用多相流模擬軟件:OLGA,對流型,流量,剪切應力等在內的其他18個維度的參數進行了擴充,以探究更多因素對腐蝕速率的影響。

表1 實驗數據參數表
集成學習是一種優雅的數據挖掘技術,它利用將多種算法組合起來的策略,以達到提高整體預測性能的目的,而根據集成方式,又可以將集成學習分為基于集中不同學習算法的分類和基于一種算法的分類。在基于同一種算法的分類模式中,bagging和boosting是該模式的兩種代表算法,bagging采用并行結構進行集成,而boosting采用線性結構進行集成。
本實驗首先進行數據的預處理:對收集到的99條實驗室金屬掛片腐蝕數據,基于標簽值,利用箱線圖對整體數據進行離散值剔除處理,然后設置隨機種子(222,444,666)用來打亂順序(隨機種子是隨機取的,即使它們看起來有規律,但是能很好的實現亂序處理),可以獲得三組排序不同的數據集。對數據以9:1的比例分割為訓練集和測試集,在進行標準化處理后,以PCA分析中保留90%為標準,選擇數據的維度。為了對stacking的預測效果進行驗證,本研究以10倍交叉驗證與網格搜索相結合的方式,找到了每個集成模型的最佳預測超參數,該步驟的目的主要是通過設置相同超參數,從而減小超參數對各個模型預測的影響。當集成模型的參數設置完成以后,利用循環遍歷的方式,將所有模型的組合方式分別利用stacking的組合模式進行預測誤差計算,然后將該結果與各個基礎的集成模型進行對比,就能分析出stacking模式是否適用于該數據集,以及哪種組合在stacking模式下有最好的預測效果。
當數據集的分割情況不同時,對模型的預測影響較大,比如當隨機分割因子取666時,其預測誤差明顯高于其他兩組,而從整體來看各集成模型之間并無明顯差異。為了更加科學的對各個模型的預測誤差進行排序,本研究采用了Friedman排序的思想,首先對不同分割情況下的預測結果進行排序,再基于排序結果求均值的方式,確立最終的模型排序,其結果顯示,Bagging+KNN、Extra trees、Bagging +CART的集成方式分別占前三的排名??傮w來說,使用bagging的方式進行集成,在該數據集上具有最小的預測誤差。當隨機因子為222和444時,預測誤差最小的模型為bagging+KNN,MSE誤差值為0.000909;當隨機因子為666時,預測誤差最小的模型為bagging+CART模型,其MSE誤差值為0.000934。
Stacking集成方式不限制子模型的數量以及類別,所以當有11個集成模型被用來進行組合時,其能夠建立非常多的組合方式,本實驗為了控制組合的數量,每一種模型在一次組合中只被使用一次。為了簡化模型展示效果,本研究采用散點圖的方式,對不同組合數量的預測誤差進行了分區展示,如Figure 1所示。從該圖中能夠看出,隨著組合數量的增加,其預測的誤差值變得更加集中,而幾乎在每一個分段區間內都有一部分相似的誤差變化規律。Table2展示了不同集成模型參與組合后提升預測性能的比例,該結果表明當隨機分割因子為222和444,且組合數量為5個時,均存在預測誤差最小的組合,其中隨機分割因子為222時,最佳組 合 方 式 為 :Random Forest、Extra trees、LightGBM、Bagging+SVR、Bagging+CART;隨機分割因子為444時,最佳組合方式為:Extra trees、Bagging+KNN、Bagging+SVR、Bagging+CART、Adaboosting+CART。而在這些模型中,Adaboosting+SVR、Extra trees、LightGBM參與 stacking組合后,提升模型預測性能的能力更強。即使stacking中存在預測效果變好的組合情況,但無論從單個集成模型的預測性能,還是預測性能提升的占比來看,Stacking集成模式,都不是很適用于該數據下的小樣本預測。

圖1 Stacking模式各組合方式預測誤差圖(橫坐標表示基礎集成模型的類型)

表2 不同集成模型參與stacking組合后提升整體性能的對比表

Adaboosting+SVR 211/312 150/288 0/18 Adaboosting+CART 162/312 160/288 0/18總計 312/2024 288/2024 18/2024
在本研究中,雖然以箱線圖的方式進行了離散值的剔除,但是該方式只以腐蝕速率列為基準,而沒有考慮其他維度的數據項,之所以采取這種剔除方式,是因為在人工智能的預測場景下,數據的數量會很大程度影響到預測的精度,如果過多的剔除數據,會導致整體的預測性能下降。在該實驗中,當隨機因子為666時,預測的整體精度出現了明顯的下降,這也是因為該實驗中,并未完全剔除離散值,而當離散值被隨機分配到測試集中時,模型的預測值無法在離散數據上進行很好的泛化。
Stacking集成方式雖然在某些組合的情況下會提升預測性能,但是仍然有很多的組合方式的預測能力減弱了,比如當子模型本就是一個預測性能非常好的模型時,如果搭配其他類型的模型進行組合,其組合后的預測性能也不能超越這個子模型。而且無論是哪一種組合方式,以及無論是哪一種分割情況,幾乎所有的stacking組合模式的預測性能都沒有超越單個集成模型中的最好的那一個預測效果,雖然在分割因子為444時,存在個別組合方式略好于單個模型的預測精度,這主要是因為在單個模型的預測性能中,并未有預測性能極好的模型出現。所以在小樣本的條件下,如果選擇的基礎模型的預測性能已經極好了,那么沒有必要再考慮使用stacking方式將其與其他基模型進行集成,因為這很大程度上并不能增加模型的預測性能,反之,如果在基模型上的預測性能是中等的,那么嘗試使用stacking模式進行集成,將有可能提升模型的預測精度,這與其他學者[3]的研究基本一致。而通過Table2 的結果能夠看出,當基礎集成模型的數量為5個時,出現預測效果最好的組合的概率是最大的,而在本次實驗中,Adaboosting+SVR、Extra trees、LightGBM參與的組合,其預測性能提升的概率更大,其中Adaboosting+SVR與LightGBM單獨預測的表現就不是很好,但是這些模型更容易在其他更好的模型參與下進行優化,而Extratrees模型其本身的預測性能就較好,在其參與組合后還有很大的概率增加其預測性能,所有當考慮使用stacking模型進行集成時,Extratrees模型是一個較為理想的基礎模型。
根據本實驗所獲得的結果,能夠得到以下結論:(1)Stacking算法并不適用于解決當前數據集條件下的小樣本預測問題;(2)當小樣本數據集中存在離散值時,Bagging算法的預測誤差小于Boosting算法;(3)在小樣本條件下,當以每種基礎模型只參與一次集成的原則進行stacking集成時,如果其中一種基礎模型的預測效果明顯好于其他的,那么其集成后的預測結果很有可能都不會好于僅單獨使用該基礎模型預測的結果;而當各基礎模型的預測性能相近,且其預測表現不是很糟時,采用stacking方式進行集成,可能存在提升預測效果的組合,但是比例并不是很多;(4)在小樣本條件下,并不是集成模型的數量越多,stacking組合他們之后的預測效果就越好,而是隨著集成模型增多,各種組合的預測結果的波動范圍越小,這是平均化后導致的結果;(5)在本實驗的數據條件下,當集成模型為5個的方式,進行stacking集成,獲得預測效果更好的組合的概率更大。(6)extratress模型在本實驗的數據條件下,不僅單獨預測的性能較好,而且與其他模型進行組合時,最終提升了預測效果的比例也較大,所以應該考慮更多的使用該模型參與stacking的組合。
下一步的研究可以嘗試的方向:使用其他的小樣本數據集驗證本實驗;使用足夠樣本數量的數據集驗證本實驗;增加更多的基礎模型,尋找基礎模型并不是最優超參數時,對stacking集成結果的影響。