敖家佩,邱海峰,賈唐浩,李昕,劉衛(wèi)華,雷紹充
(1.西安交通大學(xué)電子與信息學(xué)部,710049,西安;2.中國石化西北油田分公司,830000,烏魯木齊)
隨著西氣東輸工程投入運(yùn)營,國內(nèi)天然氣行業(yè)進(jìn)入了高速發(fā)展階段。對管道內(nèi)天然氣成分和濃度進(jìn)行定性與定量分析能為及時改進(jìn)產(chǎn)品質(zhì)量提供保證。所以,生產(chǎn)單位急需在線監(jiān)測設(shè)備,從而能夠時刻監(jiān)測到管內(nèi)氣體狀態(tài),觀察氣體開采的過程是否正常,開采氣質(zhì)量是否合格。由于氣體計(jì)量參數(shù)多,管道距離長,采集管道內(nèi)部壓力較大,情況復(fù)雜,若按傳統(tǒng)的設(shè)備維護(hù)工作方式,設(shè)備維護(hù)人員必須到達(dá)現(xiàn)場,并對設(shè)備進(jìn)行深度診斷維護(hù),這個過程本身具有一定的危險(xiǎn)性,而且工作量大,很難保證維護(hù)的及時性,易造成測量結(jié)果與實(shí)際產(chǎn)生偏差,引發(fā)糾紛甚至安全事故。實(shí)施對計(jì)量設(shè)備狀態(tài)參數(shù)的實(shí)時監(jiān)測,不僅可提高計(jì)量設(shè)備的管理效率,而且可最大限度地減少安全隱患與經(jīng)濟(jì)損失[1]。
天然氣主要成分為烷烴,同時摻雜著許多其他氣體成分,在對其種類和濃度進(jìn)行監(jiān)測的過程中不可避免地存在交叉敏感的問題,從而造成計(jì)量結(jié)構(gòu)產(chǎn)生較大誤差,故研究工作可從混合氣體種類和濃度辨識2個層次上進(jìn)行。目前最常用的辨識方法是氣相色譜法,采用實(shí)時色譜儀實(shí)時取樣分析,得到天然氣組成,并可以在此基礎(chǔ)上獲得密度、發(fā)熱量等物性參數(shù),通過計(jì)算機(jī)進(jìn)行數(shù)據(jù)實(shí)時記錄,確保天然氣流量計(jì)量準(zhǔn)確可靠,保證后續(xù)氣體的正常使用[2-3]。氣相色譜法的最大缺陷在于數(shù)據(jù)獲得周期長,需要消耗大量載氣,無法真正首先和實(shí)時監(jiān)測。對此,本文提出采用紅外氣體傳感器陣列結(jié)合信息融合技術(shù)輔助,實(shí)現(xiàn)天然氣中混合氣體組分的種類識別和濃度監(jiān)測。首先利用開源的樣本量較大的UCI(University of California Irvine)數(shù)據(jù)庫進(jìn)行6種單一組分氣體種類辨識繼而進(jìn)行濃度回歸預(yù)測,根據(jù)準(zhǔn)確度優(yōu)選最佳算法方案,并將其用于實(shí)驗(yàn)室模擬烷烴中的氣態(tài)組分甲烷、乙烷、丙烷以及用于增加壓力而注入的氮?dú)獾男颖净旌蠚怏w濃度預(yù)測,希望能夠通過借助算法的手段,對氣體濃度的偏差進(jìn)行修正,結(jié)合紅外傳感陣列與可編程邏輯器件,實(shí)現(xiàn)真正的天然氣氣體濃度在線監(jiān)測[4-5]。
測試使用的UCI數(shù)據(jù)庫是加州大學(xué)歐文分校的機(jī)器學(xué)習(xí)數(shù)據(jù)庫。本文使用的數(shù)據(jù)集是其中關(guān)于數(shù)據(jù)回歸類的1個,包含13 910個數(shù)據(jù)樣本,由16個傳感器對6種純凈單一組分在不同濃度下測得。每個傳感器均記錄8個特征值,對應(yīng)每個樣本的128個特征參數(shù)[6]。
分別采用最近鄰(KNN)算法、分類回歸樹(CART)算法以及多層感知機(jī)(MLP)算法對6種氣體的類別進(jìn)行了辨識,然后,分別將3種算法的預(yù)測結(jié)果進(jìn)行了比較。該數(shù)據(jù)集中所測量的6種組分依次為氨氣、乙醛、丙酮、乙烯、乙醇和甲苯,所測得的濃度范圍如表1所示。
表1 氣體種類及濃度范圍
具體的研究步驟如下:首先,使用主成分分析(PCA)法將數(shù)據(jù)特征降維,提取其主要特征,然后采用分類算法對6種組分進(jìn)行分類,以分類結(jié)果準(zhǔn)確率為指標(biāo)判斷算法的優(yōu)劣。
圖1 n=3時PCA特征降維后的可視化結(jié)果
1.1.1 PCA降維 原數(shù)據(jù)為128維,使用PCA降維并提取貢獻(xiàn)值之和超過99.9%的前n個特征,分別用PC1、PC2和PC3表示1維、2維、3維特征值,圖1是提取前3個主成分特征的可視化結(jié)果,表明降維后氣體可被分辨,其方差占比分別為90.09%、6.08%與2.49%。根據(jù)計(jì)算結(jié)果,當(dāng)n=6時,數(shù)據(jù)特征已經(jīng)達(dá)到99.9%,可以進(jìn)行種類辨別,故KNN和CART算法均在此基礎(chǔ)上進(jìn)行。在進(jìn)行維度壓縮之后,能夠大大簡化分類的數(shù)據(jù)量,同時保留原始數(shù)據(jù)最主要得特征,消除特征之間的線性相關(guān),加快訓(xùn)練時間[7]。
1.1.2 KNN、CART、MLP算法分析 對于KNN算法,決定模型優(yōu)劣的參數(shù)有2個:近鄰個數(shù)和距離度量參數(shù)p(p=1時為絕對距離,p=2為歐幾里得距離),將數(shù)據(jù)集按照7∶3的比例分為訓(xùn)練集和測試集,在訓(xùn)練過程中采用了一折交叉驗(yàn)證法[8-10]。圖2為p=1,2時,所有樣本的訓(xùn)練集、驗(yàn)證集、測試集與總集的辯識準(zhǔn)確率隨近鄰數(shù)k的變化趨勢。從圖2中可以看出,k=1且p=1時,KNN算法對6種組分的分類效果達(dá)到最佳。由于所測試的組分的類型是確定的,因此可以根據(jù)每種組分的測試,使用同樣方法設(shè)定不同的最優(yōu)測試參數(shù)。
(a)p=1
(b)p=2圖2 兩種p參數(shù)下6組分的總辯識準(zhǔn)確率隨近鄰數(shù)k的變化情況
CART算法的分類效果與算法選擇的終止條件有關(guān)。本文選擇的終止條件為使每一個葉子結(jié)點(diǎn)的樣本都為同一類,依然按照6個特征值和7∶3的比例劃分?jǐn)?shù)據(jù)集[11-12]。
MLP神經(jīng)網(wǎng)絡(luò)的映射方式為主動映射,無需事前揭示描述這種映射關(guān)系的數(shù)學(xué)方程,它的學(xué)習(xí)規(guī)則是使用梯度下降法。數(shù)據(jù)樣本量越大,訓(xùn)練效果越好,所以訓(xùn)練時將128維特征全部輸入[13-15]。使用多層神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測的時候,需要在每一層都盡可能多的提取到數(shù)據(jù)的特征,因而需要對數(shù)據(jù)進(jìn)行預(yù)處理。這里分別采用Min-Max Adam(MMA)、Min-Max RmsProp(MMR)、Min-Max Momentum(MMM)、Min-Max SGD(MMS)、Z-Score Adam(ZSA)、Z-Score RmsProp(ZSR)、Z-Score Momentum(ZSM)和Z-Score SGD(ZSS)這8種方法對包含1個隱含層的神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,根據(jù)圖3可知,最優(yōu)的組合為ZSA算法。表2顯示了3種算法得到的分類效果。
圖3 不同數(shù)據(jù)預(yù)處理方法的辨識準(zhǔn)確率
表2 3種算法分類準(zhǔn)確率比較
組分準(zhǔn)確率/%KNNCARTMLP氨氣99.897.298.9乙醛99.698.299.1丙酮98.496.298.9乙烯99.395.998.2乙醇97.996.698.6甲苯98.796.999.0總準(zhǔn)確率/%99.096.898.8
1.1.3 分類算法小結(jié) 3種算法中,KNN與MLP算法均在測試集上獲得了超過98%的辯識準(zhǔn)確率,而CART算法的氣體辯識準(zhǔn)確率只有約96%。這是因?yàn)?CART算法在每次決策時,只考慮1個維度的特征,而不考慮維度之間的關(guān)聯(lián)度。此結(jié)論目前只在所選的樣本實(shí)例中進(jìn)行了驗(yàn)證,理論上可應(yīng)用于同類型其他樣本。
針對已經(jīng)判定好類別的組分,使用回歸算法,對氣體濃度進(jìn)行預(yù)測,并采用最小二乘回歸中的相關(guān)系數(shù)值來評估回歸分析的好壞。分別使用了線性回歸、KNN回歸、CART回歸和MLP回歸算法對6種組分的濃度進(jìn)行分析,給出最好與最差的預(yù)測效果圖,并列出以R2為衡量指標(biāo)的預(yù)測效果對比表。
1.2.1 幾種回歸算法分析 首先使用PCA算法對原始的128維數(shù)據(jù)降至10維,同時將原始樣本集按照7∶3的比例劃分為訓(xùn)練集與測試集,分別繪制出6組分的真實(shí)濃度與預(yù)測濃度之間的關(guān)系,利用線性回歸來判斷數(shù)據(jù)之間是否有相關(guān)性,從而說明能夠利用算法進(jìn)行回歸預(yù)測。
線性回歸對6組分的預(yù)測效果相似,因此只需給出預(yù)測結(jié)果中線性相關(guān)程度最高和最低的,分別為乙烯與甲苯,如圖4a、圖4b所示。預(yù)測結(jié)果說明所提取的特征與濃度之間有一定相關(guān)性,但不是簡單地線性疊加關(guān)系,而是包含了更高次的關(guān)系,因此本文使用了其他方法對組分濃度進(jìn)行預(yù)測。
本文使用KNN算法進(jìn)行回歸預(yù)測,將原始樣本集按照7∶3的比例劃分為訓(xùn)練集與測試集。圖5顯示了使用KNN算法對甲苯和丙酮的預(yù)測效果,其R2值分別為0.998 2和0.853 1,其余的4種氣體也均達(dá)到了0.97以上,獲得了比較好的預(yù)測結(jié)果。KNN算法的最大優(yōu)點(diǎn)是對異常值不敏感,缺點(diǎn)是樣本不平衡問題(即有些類別的樣本數(shù)量很多,而其他樣本的數(shù)量很少),無法給出數(shù)據(jù)的內(nèi)在含義,需要記錄整個樣本數(shù)據(jù),硬件實(shí)現(xiàn)困難。
(a)甲苯
(b)丙酮圖5 使用KNN算法的預(yù)測結(jié)果
KNN算法通過比較樣本距離進(jìn)行回歸,得到的預(yù)測結(jié)果較好,因此可以嘗試使用與KNN回歸思想相似的CART回歸算法,其基本思想是將樣本空間細(xì)分成若干子間,子空間內(nèi)樣本的輸出y(連續(xù)值)的均值即為該子空間內(nèi)的預(yù)測值。圖6為CART算法的預(yù)測結(jié)果,由圖6可以見:CART算法對丙酮的預(yù)測效果最佳,其R2值達(dá)到0.986 0,對甲苯的預(yù)測效果最差,只有0.838 4;整體預(yù)測效果好于線性,低于KNN算法。原因在于每次決策僅僅考慮了1個屬性對預(yù)測值的影響,而不考慮屬性之間隱含的關(guān)聯(lián)關(guān)系,故預(yù)測效果會略差,并且生成的樹過為龐大的話,不利于后續(xù)規(guī)則的提取,因而一般情況下可以選擇將CART分類算法作為回歸之前的一個預(yù)處理過程,在出現(xiàn)數(shù)據(jù)階段性波動的情況下,先進(jìn)行梯度判斷分類,再進(jìn)行階段回歸。
(a)甲苯
(b)丙酮圖6 使用CART算法的預(yù)測結(jié)果
在嘗試了上述3種方法之后,本文使用較經(jīng)典的包含2個隱含層的神經(jīng)網(wǎng)絡(luò)進(jìn)行回歸預(yù)測[16-19]。其中輸入為128維的向量,輸出為1個濃度值,并選擇ReLu函數(shù)作為隱含層激活函數(shù),輸出層不使用激活函數(shù)。為了加快訓(xùn)練效率,訓(xùn)練方法采用Adam算法。在進(jìn)行訓(xùn)練前,對數(shù)據(jù)進(jìn)行Z-Score歸一化,然后依次訓(xùn)練6個網(wǎng)絡(luò),對6組分的濃度進(jìn)行預(yù)測,選出其中回歸預(yù)測效果最好的和最壞的,結(jié)果見圖7。6組分的R2都大于0.9,預(yù)測效果較好。
(a)甲苯
(b)丙酮圖7 使用包含一個隱藏層的MLP網(wǎng)絡(luò)的預(yù)測結(jié)果
1.2.2 回歸算法總結(jié) 4種回歸算法的預(yù)測效果如表3所示。由表3可以看出:線性回歸算法的結(jié)果較差,說明傳感器的特征與氣體濃度之間有高次依賴關(guān)系;其他3種算法中,KNN回歸與MLP回歸在準(zhǔn)確度上有較大優(yōu)勢,因而在對實(shí)驗(yàn)數(shù)據(jù)的分析上我們將選用這兩種算法進(jìn)行嘗試。
表3 4種回歸算法的精度對比
實(shí)驗(yàn)數(shù)據(jù)總共4 238個,在實(shí)驗(yàn)腔室內(nèi)4組分混合氣體(甲烷、乙烷、丙烷、氮?dú)?條件下獲得3個傳感器(1號為甲烷傳感器,2號為丙烷傳感器,3號為不同型號的丙烷紅外傳感器,均來自Premier公司)的讀數(shù),設(shè)定甲烷的實(shí)際體積分?jǐn)?shù)測量范圍為0%~100%,乙烷設(shè)定為0%~25%,丙烷設(shè)定為0%~10%。特征值為3個傳感器的讀數(shù)以及測試腔室內(nèi)的溫度和壓力補(bǔ)償值,輸出為預(yù)測的甲烷,乙烷、丙烷之和以及氮?dú)獾捏w積分?jǐn)?shù)。表4列出了混合氣體部分樣本數(shù)據(jù)。
表4 混合氣體部分樣本數(shù)據(jù)
采用1.2節(jié)的回歸算法進(jìn)行測試。圖8為使用KNN算法對混合氣體濃度的預(yù)測結(jié)果,圖中部分?jǐn)?shù)據(jù)點(diǎn)存在較大誤差是由于實(shí)驗(yàn)過程中不可避免的人為操作,以及傳感器讀數(shù)存在一定幅度擺動所致。
(a)甲烷
(b)乙烷、丙烷之和
(c)氮?dú)鈭D8 使用KNN算法對混合氣體濃度預(yù)測結(jié)果
與2.2節(jié)處理方法類似,神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)為5輸入(3個紅外傳感器讀數(shù),溫度與壓力補(bǔ)償)3輸出(甲烷,乙烷、丙烷之和及氮?dú)獾捏w積分?jǐn)?shù))。根據(jù)具體數(shù)據(jù)情況,經(jīng)比較,決定采用Z-Score歸一化進(jìn)行樣本預(yù)處理,采用MLP優(yōu)化算法,預(yù)測結(jié)果如圖9所示。
(a)甲烷
(b)乙烷、丙烷之和
(c)氮?dú)鈭D9 使用MLP算法對混合氣體濃度預(yù)測結(jié)果
綜合考慮,使用MLP算法的預(yù)測結(jié)果更佳,MLP回歸算法的預(yù)測準(zhǔn)確性高,可調(diào)參數(shù)多,優(yōu)化空間大。作為電子鼻設(shè)備的優(yōu)化方案,只需要記錄訓(xùn)練模型的權(quán)值與偏置,硬件可實(shí)現(xiàn)。
本文采用KNN、CART和MLP這3種分類算法對UCI數(shù)據(jù)樣本庫中的6種單一組分進(jìn)行了分類預(yù)測,結(jié)果表明,KNN與MLP算法對類別辨識的準(zhǔn)確率均達(dá)到了98%以上,CART算法的準(zhǔn)確率為96.98%。對不同種類的氣體數(shù)據(jù)進(jìn)行了線性回歸、KNN回歸、CART回歸以及MLP回歸網(wǎng)絡(luò)4種算法進(jìn)行篩選,并采用相關(guān)系數(shù)R2對回歸效果做出評估。結(jié)果發(fā)現(xiàn),KNN算法對除甲苯以外的氣體的濃度辨識效果均最好,而MLP網(wǎng)絡(luò)對甲苯的辨識效果最佳。將篩選得到的KNN與MLP回歸算法用于實(shí)驗(yàn)室樣本,也達(dá)到了較好的回歸預(yù)測效果,其中使用MLP算法對甲烷、非甲烷總烴和氮?dú)膺M(jìn)行預(yù)測,擬合得到的回歸系數(shù)的R2分別達(dá)到0.99、0.96和0.99。最終得出結(jié)論,KNN算法和MLP算法對天然氣以及VOCs數(shù)據(jù)集的分類效果較好,MLP算法在濃度回歸上有較大優(yōu)勢。將KNN算法所得最優(yōu)相關(guān)模型(KNN的整個訓(xùn)練樣本及分類規(guī)則)或相關(guān)參數(shù)(MLP的偏置與權(quán)重)利用可編程硬件進(jìn)行存儲,便可在在線監(jiān)測設(shè)備中使用。