李穎瑩 郭亦可 蔡藝茗
華北水利水電大學(xué) 河南 鄭州 450045
推動(dòng)生產(chǎn)企業(yè)高質(zhì)量發(fā)展,最根本的底線是保證安全、防范風(fēng)險(xiǎn),而生產(chǎn)過程中產(chǎn)生的數(shù)據(jù)能夠?qū)崟r(shí)反映潛在的風(fēng)險(xiǎn)。在工廠一天的生產(chǎn)中,各物理量不可能保持恒定不變,其觀測(cè)數(shù)值必將產(chǎn)生波動(dòng),這可能是電機(jī)設(shè)備的功率浮動(dòng)、車間氣溫變化亦或是供電電壓產(chǎn)生跌落導(dǎo)致的,也可能是傳感器自身精度所致。溫度、濃度、壓力等與安全密切相關(guān)的數(shù)據(jù)的波動(dòng)十分重要,對(duì)其數(shù)據(jù)波動(dòng)的判定和預(yù)測(cè)值得深入研究。
假設(shè)1:數(shù)據(jù)庫內(nèi)的所有數(shù)據(jù)都是真實(shí)有效的;
假設(shè)2:假設(shè)某一類事件出現(xiàn)頻率較多時(shí),該事件的某個(gè)屬性對(duì)應(yīng)的參數(shù)分布概率可用同類事件中該參數(shù)出現(xiàn)的頻率近似表示;
假設(shè)3:忽略主成分分析中次要成分帶來的微小影響;假設(shè)4:假設(shè)傳感器的精度保持不變
考慮到數(shù)據(jù)庫的數(shù)據(jù)龐大,首先對(duì)數(shù)據(jù)進(jìn)行歸一化預(yù)處理,將這些數(shù)據(jù)轉(zhuǎn)為[0,1]之間的數(shù),可以消除數(shù)據(jù)因大小不一而造成的偏差。數(shù)據(jù)的歸一化有很多方法,本文采用最大最小法對(duì)傳感器的數(shù)據(jù)進(jìn)行歸一化處理。數(shù)據(jù)進(jìn)行歸一化的公式如下所示:
考慮到數(shù)據(jù)集中傳感器有100組數(shù)據(jù),過多的數(shù)據(jù)量對(duì)分析造成了影響,故選用主成分分析法進(jìn)行分析,并對(duì)指標(biāo)進(jìn)行聚類。現(xiàn)有由100個(gè)樣本作為行(行數(shù)為n),5519個(gè)指標(biāo)作為列(列數(shù)為p)而組成的551900個(gè)元素的樣本矩陣x(由于該矩陣過于龐大,故略去出變化過程中的矩陣,以范式代表它的變化):
本文選取累積貢獻(xiàn)率達(dá)到百分之八十的主成分,其中前36個(gè)主成分的累計(jì)貢獻(xiàn)率為80.61%,故將100個(gè)指標(biāo)降為36個(gè)指標(biāo)進(jìn)行分析。
ARIMA模型是時(shí)間序列分析的典型模型,是一種分析時(shí)間序列的最為發(fā)達(dá)和廣泛應(yīng)用的方法。ARIMA模型,也叫Box-Jenkins模型,能夠擴(kuò)展成分析時(shí)間序列,包括周期性趨勢(shì)。基于關(guān)于時(shí)間序列的特征的先前研究,可以指定時(shí)間序列,即自回歸順序(p)、差分次數(shù)(d)和移動(dòng)平均順序(q)三個(gè)參數(shù)來分析。ARIMA模型表示與時(shí)間組有關(guān)的隨機(jī)變量與相應(yīng)的數(shù)學(xué)模型之間的關(guān)系,以便根據(jù)過去的時(shí)間序列和目前的數(shù) 值預(yù)測(cè)該序列的持續(xù)發(fā)展及其未來的數(shù)值。ARIMA模型主要通過以下4個(gè)步驟進(jìn)行建模:序列平穩(wěn)化處理、模型階數(shù)判定、參數(shù)估計(jì)、模型監(jiān)測(cè)應(yīng)用。
由于數(shù)據(jù)的波動(dòng)較為頻繁,不利于尋找規(guī)律,故對(duì)序列進(jìn)行濾波處理,將波動(dòng)較小的部分去除,將主成分分析完成后的36個(gè)主成分濾波前后的數(shù)據(jù)做可視化處理,如下圖所示(篇幅有限,僅展示部分):
圖4-1 濾波波動(dòng)圖
首先觀察藍(lán)色曲線,濾波濾除的即是短暫且較小的波動(dòng),這類波動(dòng)是獨(dú)立且隨機(jī)的,因此可以認(rèn)為是傳感器誤報(bào),將其視為非風(fēng)險(xiǎn)性異常。進(jìn)行濾波后,觀察紅色曲線,可以看到主成分三、四等的紅色曲線沒有較大的波動(dòng),且具有一定的周期性,很有可能是自動(dòng)化生產(chǎn)線器械的自然規(guī)律,如異步電機(jī)的調(diào)速等,因此亦判定為非風(fēng)險(xiǎn)性異常。而主成分一、二、五等具有明顯的持續(xù)性和聯(lián)動(dòng)性,其波動(dòng)表現(xiàn)在時(shí)間序號(hào)1931等處呈集中爆發(fā)樣式,且在此之后并未快速回復(fù),因此將它們判定為風(fēng)險(xiǎn)性異常數(shù)據(jù)。
綜上所述,小組使用主成分分析法和ARIMA時(shí)間序列模型,提出了風(fēng)險(xiǎn)性異常數(shù)據(jù)的判定方法,使問題一得到解決。
為了按照真實(shí)的比重給各個(gè)波動(dòng)的主成分,需要使用臨近分析法對(duì)主成分進(jìn)行加權(quán),NCA是一種基于鄰域分量的特征選擇方法,在有監(jiān)督的機(jī)器學(xué)習(xí)方法中,通過NCA多步跌代算法對(duì)用于分類的特征向量進(jìn)行分析,以此獲得不同的特征向量的分類中的權(quán)重大小,可根據(jù)權(quán)重的大小對(duì)原始的特征向量進(jìn)行進(jìn)一步篩選,進(jìn)一步對(duì)數(shù)據(jù)進(jìn)行降維,對(duì)整個(gè)訓(xùn)練網(wǎng)絡(luò)進(jìn)行優(yōu)化。在第一問中我們已經(jīng)通過PCA降維算法對(duì)傳感器數(shù)據(jù)進(jìn)行了排序和權(quán)重計(jì)算,在本問中進(jìn)一步利用NCA對(duì)影響恐怖襲擊等級(jí)的特征向量的排序和權(quán)重進(jìn)行進(jìn)一步的討論,以此來得出風(fēng)險(xiǎn)性異常數(shù)據(jù)異常程度的量化評(píng)價(jià)方法。
計(jì)算得出的NCA與PCA特征向量權(quán)重/得分如下圖所示:
圖4-2 NCA特征向量得分示意圖
由此,小組對(duì)每一時(shí)刻的主成分均進(jìn)行了加權(quán)后計(jì)算數(shù)值結(jié)果,并將其線性映射到(0,100)的區(qū)間內(nèi),并挑選出結(jié)果最高的五個(gè)時(shí)刻并記錄。部分異常傳感器的波動(dòng)圖像如下圖所示:
圖4-3 部分異常傳感器的波動(dòng)圖
為了建立預(yù)測(cè)模型對(duì)未來(23:00-24:00)進(jìn)行預(yù)測(cè),分別采用數(shù)據(jù)擬合和灰色預(yù)測(cè)模型進(jìn)行建模。數(shù)據(jù)擬合采用Matlab數(shù)據(jù)擬合工具箱進(jìn)行,通過嘗試不同的擬合函數(shù)。采用機(jī)器學(xué)習(xí)的算法進(jìn)行網(wǎng)絡(luò)訓(xùn)練,其一般的網(wǎng)絡(luò)如圖7.1所示。其中恐怖等級(jí)特征向量作為網(wǎng)絡(luò)的輸入,等級(jí)標(biāo)簽作為網(wǎng)絡(luò)的輸出,輸入信號(hào)從輸入層經(jīng)隱含層逐層處理,直至輸出層,每一層神經(jīng)元只影響下一層神經(jīng)元狀態(tài)。如果輸出得不到期望輸出,則轉(zhuǎn)入反向傳播。
步驟1:網(wǎng)絡(luò)初始化。根據(jù)系統(tǒng)輸入輸出序列(X,Y)確定網(wǎng)絡(luò)輸入層節(jié)點(diǎn)n、
隱含層節(jié)點(diǎn)數(shù)I,輸出層節(jié)點(diǎn)數(shù)m,初始化輸入層、隱含層和輸出層神經(jīng)元之間的連接權(quán)值Wij,Wjk。初始化隱含層閾值a,輸出層閾值b,給定學(xué)習(xí)速率和神經(jīng)元激勵(lì)函數(shù)。
步驟2:隱含層輸出計(jì)算。根據(jù)輸入變量X,輸入層和隱含層連接權(quán)值ijw以及隱含層閾值a,計(jì)算隱含層輸出H。
式中,l為隱含層節(jié)點(diǎn)數(shù);f為隱含層激勵(lì)函數(shù),該函數(shù)有多種表達(dá)形式,其中默認(rèn)的激勵(lì)函數(shù)為:
步驟3:輸出層計(jì)算。根據(jù)隱含層輸出H,連接權(quán)值Wjk和閾值b,計(jì)算BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)OK。
步驟4:誤差計(jì)算。根據(jù)網(wǎng)絡(luò)預(yù)測(cè)輸出O和期望輸出Y,計(jì)算預(yù)測(cè)誤差。
步驟5:權(quán)值更新。根據(jù)網(wǎng)絡(luò)預(yù)測(cè)誤差e更新網(wǎng)絡(luò)連接權(quán)值Wij,Wjk。
步驟6:判斷算法迭代是否結(jié)束,若沒有結(jié)束,返回步驟2。
可以看到訓(xùn)練后的模型預(yù)測(cè)值與訓(xùn)練集數(shù)據(jù)已經(jīng)十分接近,故將訓(xùn)練后的參數(shù)代入到ARIMA時(shí)間序列預(yù)測(cè)模型中。
在第三問中已經(jīng)預(yù)測(cè)了23:00-24:00的數(shù)據(jù),小組已經(jīng)掌握了全面的時(shí)間序列分析,則由一二問的數(shù)學(xué)模型可以得到任意時(shí)間點(diǎn)的異常程度得分,由于異常程度與安全性是相反的邏輯關(guān)系,故異常程度得分取線性負(fù)相關(guān)后映射到(0,1)內(nèi),并以30分鐘為域進(jìn)行積分,將積分后得到的結(jié)果映射到(0,100)內(nèi)。
敏感性分析一般借助simlab軟件,首先通過simlab軟件進(jìn)行樣本采樣,生成.SAM文件(我定義了7個(gè)參數(shù)),然后讀取文件中的參數(shù)值,代入PROSAIL模型得到的結(jié)果生成是simlab可以讀取的模型結(jié)果文件,得到敏感性分析如下圖所示:
圖4-4 敏感性分析效果圖
由此可見,本模型的敏感性程度適中,不存在明顯問題。
本模型的優(yōu)點(diǎn)是使用主成分分析法降低了數(shù)據(jù)的維度,使得算法的空間復(fù)雜度大大降低,同時(shí)使用ARIMA時(shí)間序列模型進(jìn)行波動(dòng)異常值篩選,經(jīng)檢驗(yàn)有較高的準(zhǔn)確性。同時(shí),為了準(zhǔn)確預(yù)測(cè)23:00-24:00的未來走勢(shì),使用機(jī)器學(xué)習(xí)來對(duì)ARIMA模型的參數(shù)進(jìn)行優(yōu)化,得到了精準(zhǔn)的預(yù)測(cè),并對(duì)敏感性進(jìn)行了檢驗(yàn)。
在算力足夠的情況下,應(yīng)該繼續(xù)擴(kuò)大主成分的權(quán)值到95%左右,這樣得到的結(jié)果將更為精確;同時(shí),對(duì)波動(dòng)的濾波可以分段分層進(jìn)行,以保證將所有異常值全部找到,目前使用的濾波方法的閾值選擇過于主觀,并未客觀分析異常波動(dòng)與波動(dòng)幅值之間的關(guān)聯(lián)性。