田昕怡,牛 彬,鐘睿君,孫淑嫻
(國網(wǎng)天津市電力公司營銷服務(wù)中心,天津 300000)
隨著計量設(shè)備的推廣普及,計量設(shè)備在運行過程中出現(xiàn)的可靠性問題與電子行業(yè)發(fā)展聯(lián)系較為密切,且不容忽視。對集成電路、電子計算機、雷達等電子設(shè)備而言,一旦發(fā)生計量失誤,可能會導致設(shè)備損壞,甚至威脅到人身安全,后果將不堪設(shè)想,因此對于計量設(shè)備系統(tǒng)來說,可靠性的評估與預(yù)測具有深遠的意義[1]。
本文將計量設(shè)備的可靠性測試或?qū)嶋H運行中得出的失效數(shù)據(jù)(故障間隔時間、故障次數(shù)等)視為—個時間序列,即為一組依賴于時間t的隨機變量序列。這些變量之間有一定的依存性和相關(guān)性,而且表現(xiàn)出了一定的規(guī)律性,如果能根據(jù)這些失效數(shù)據(jù)建立盡可能合理的統(tǒng)計模型,就能用這些模型來解釋數(shù)據(jù)的規(guī)律性,就可以利用已得到的失效數(shù)據(jù)來預(yù)測未來數(shù)據(jù),也就能據(jù)此來預(yù)估計量設(shè)備的可靠性[2]。
本文從可靠性基礎(chǔ)出發(fā),基于計量設(shè)備指定模塊的失效,討論計量設(shè)備模塊的失效,建立失效數(shù)據(jù)分布數(shù)學模型,以便對失效進行評價。本文的研究成果可為提高計量設(shè)備的可靠性、改善智能計量設(shè)備壽命提供支持,對實際使用過程中的運行維護有一定的參考價值。
不同模型對數(shù)據(jù)信息提取的側(cè)重點不同,單一模型的預(yù)測效果往往受到質(zhì)疑,利用組合模型對設(shè)備可靠性進行預(yù)測一度成為熱點。一些研究表明,利用分解技術(shù)提取時間序列中的不同特征成分,對不同特征的數(shù)據(jù)分別采用不同的模型,有助于提高可靠性預(yù)測的精度。本文關(guān)注于基于機器學習的設(shè)備可靠性預(yù)測,旨在利用失效數(shù)據(jù)的變化規(guī)律,實現(xiàn)對設(shè)備可靠性的預(yù)測。本文以上述失效數(shù)據(jù)為研究對象,構(gòu)造出基于ARIMA(Autoregressive Integrated Moving Average Model)模型[3]和GRU(Gate Recurrent Unit)模型[4]的設(shè)備可靠性預(yù)測方法。實驗表明,本文所提出的算法取得了較好的效果,實用性也較好。
計量設(shè)備的可靠性是一個復(fù)雜的非線性動力學系統(tǒng),具有顯著的非線性、時變性特征[5],導致根據(jù)設(shè)備的已有數(shù)據(jù)對可靠性進行預(yù)測成為一大難題。
近年來,有一些研究者利用神經(jīng)網(wǎng)絡(luò)對時間序列進行了大量的預(yù)測研究。潘曉明等[6]利用不同的神經(jīng)網(wǎng)絡(luò)算法產(chǎn)生神經(jīng)網(wǎng)絡(luò)集成個體,用遺傳算法動態(tài)求解集成個體的非負權(quán)重系數(shù),進行最優(yōu)組合集成建模,相對傳統(tǒng)的簡單平均集成模型具有預(yù)測精度高、穩(wěn)定性好、易于操作的特點。劉磊[7]提出了一種基于RBF神經(jīng)網(wǎng)絡(luò)的預(yù)測模型。智晶等[8]提出了一種基于主成分的遺傳神經(jīng)網(wǎng)絡(luò)的預(yù)測模型,其有以下2個特點:利用主成分方法選取輸入變量和利用遺傳算法優(yōu)化神經(jīng)網(wǎng)絡(luò)參數(shù)。吳華星對基于神經(jīng)網(wǎng)絡(luò)的預(yù)測方法進行了研究,他分析了傳統(tǒng)的BP(Back Propagation)算法,通過引入調(diào)節(jié)參數(shù)ρ解決了要同時調(diào)整算法中學習速率η和動量參數(shù)α的問題。陳嶷瑛等[9]提出了一種基于神經(jīng)網(wǎng)絡(luò)的預(yù)測模型,從他們的研究成果來看,關(guān)注點主要集中在對輸入數(shù)據(jù)的處理、對神經(jīng)網(wǎng)絡(luò)的參數(shù)學習及對神經(jīng)網(wǎng)絡(luò)的集成方法方面。
但這些傳統(tǒng)預(yù)測方法有諸多前提假設(shè),常見的有設(shè)備的可靠性數(shù)據(jù)為平穩(wěn)時間序列、可靠性數(shù)據(jù)與其影響因素之間為線性關(guān)系等。但此類數(shù)據(jù)普遍存在非線性、非平穩(wěn)特征,因此這些方法在實際應(yīng)用中很難達到理性的預(yù)測效果。人們對機器學習的不斷深入挖掘、了解,使它在設(shè)備的可靠性數(shù)據(jù)預(yù)測方面發(fā)揮了重要的作用,它對所研究的數(shù)據(jù)沒有假設(shè)限制,更不受人為先驗知識的影響。
此外,國內(nèi)外學者還提出通過時間序列分析方法來處理設(shè)備可靠性分析的問題,該方法是將失效數(shù)據(jù)作為時間相關(guān)序列,根據(jù)過去和現(xiàn)在的數(shù)據(jù)來對未來的數(shù)據(jù)進行預(yù)測。該方法不需要對故障過程做任何先前的假設(shè)就可以對數(shù)據(jù)進行分析,與傳統(tǒng)的一些可靠性預(yù)測模型相比具有一定的優(yōu)勢,同時還可以發(fā)現(xiàn)那些被假設(shè)條件所隱藏的數(shù)據(jù)特性。如LU等[10]用時間序列方法對部件實時可靠性進行建模,以反映單一部件的實時可靠性;JAYARAM等[11]在假設(shè)退化量分布為正態(tài)時,給出了基于性能退化數(shù)據(jù)的半似然可靠性預(yù)計方法;金光等[12]采用Bootstrap仿真方法建立了動量輪壽命分布的模型,評價其可靠性水平,合理的時間序列模型可以對數(shù)據(jù)的發(fā)展趨勢進行有效預(yù)測。目前相關(guān)分析人員已經(jīng)將雙指數(shù)平滑法應(yīng)用在該領(lǐng)域,但是該方法的應(yīng)用面比較狹窄,有一定的局限性。
本文提出了一種基于ARIMA和GRU的設(shè)備可靠性預(yù)測模型,該模型利用ARIMA獲取數(shù)據(jù)的線性特征,利用GRU獲取數(shù)據(jù)的非線性特征,通過調(diào)整合適的參數(shù)使模型的學習能力強,預(yù)測精度比較高。
ARIMA模型的全稱為自回歸移動平均模型,是統(tǒng)計模型(Statistic Model)中最常見的一種用來進行時間序列預(yù)測的模型。差分自回歸移動平均模型ARIMA是將自回歸模型(AR)、移動平均模型(MA)和差分法結(jié)合,從而得到了差分自回歸移動平均模型ARIMA(p,d,q),其中d是需要對數(shù)據(jù)進行差分的階數(shù)[13]。在該模型中,本文定義變量如表1所示。
表1 變量定義
表1 (續(xù))
2.1.1 數(shù)據(jù)預(yù)處理
首先對無效數(shù)據(jù)進行重采樣,原數(shù)據(jù)中時間不是連續(xù)的,為了更好地達到預(yù)測效果,需要進行插值處理,插值處理可以對數(shù)據(jù)中的缺失進行合理的補償,可以對數(shù)據(jù)進行放大或者縮小。根據(jù)找到的這個規(guī)律,來對其中尚未有數(shù)據(jù)記錄的點進行數(shù)值估計。本模型采用的是線性插值方法[14]。根據(jù)數(shù)據(jù)序列中需要插值的點的左右鄰近2個數(shù)據(jù)點來進行數(shù)值的估計。
2.1.2 平穩(wěn)性檢測
ARIMA模型對時間序列的要求是平穩(wěn)性,做出的數(shù)據(jù)的趨勢圖如圖1所示,從圖中可以看出,該設(shè)備的可靠性數(shù)據(jù)具有波動性。通過平穩(wěn)性檢驗,得出p>0.05,可以判斷為非平穩(wěn)序列。該無效數(shù)據(jù)屬于非平穩(wěn)時間序列,需要運用差分法,轉(zhuǎn)化成平穩(wěn)時間序列,因此,首先要做的就是做時間序列的差分,直到得到一個平穩(wěn)時間序列。一般情況下,差分次數(shù)不超過2次,就能達到相關(guān)要求[15]。
圖1 原始數(shù)據(jù)的趨勢圖
進行一階差分后的結(jié)果如圖2所示,此時,p<0.05,符合平穩(wěn)序列的要求,因此d取1。
圖2 一階差分結(jié)果圖
2.1.3模型參數(shù)確定
建立模型必須要確定p、d、q這3個參數(shù)的值,這里主要是確定p和q的值。這里用平穩(wěn)序列的自相關(guān)圖(Autocorrelation Function,ACF)和偏自相關(guān)圖(Partial Autocorrelation Function,PACF)來對這2個參數(shù)進行確定[16],如圖3、圖4所示。
圖3 自相關(guān)圖(ACF)
圖4 偏自相關(guān)圖(PACF)
自相關(guān)函數(shù)ACF描述的是時間序列觀測值與其過去的觀測值之間的線性相關(guān)性,計算公式如下:
式(1)中:k為滯后期數(shù),如果k=2,則為yt和yt-2。
偏自相關(guān)函數(shù)PACF描述的是在給定中間觀測值的條件下,時間序列觀測值預(yù)期過去的觀測值之間的線性相關(guān)性[17]。提出了中間k-1個隨機變量X(t-1)、X(t-2)、…、X(t-k+1)的干擾之后X(t-k+1)對X(t)的影響程度。
p和q取值的一般規(guī)則如表2所示[18]??煽啃灶A(yù)測數(shù)據(jù)描述可靠性數(shù)據(jù)時間序列觀測值與其過去的觀測值之間的線性相關(guān)性的ACF值和PACF值,最后確定模型里的p、q參數(shù)分別為1、1。
表2 模型識別表
2.1.4 模型評估
嘗試建立若干個模型,根據(jù)赤池信息量(Akaike Information Criterion,AIC)或貝葉斯信息量(Bayesian Information Criterion,BIC)來衡量模型的復(fù)雜度,從而選擇出更簡單的模型[19]。AIC的計算表達式為:
式(2)中:L為極大似然函數(shù);N為未知參數(shù)數(shù)量。
AIC同時考慮了模型的擬合程度和簡單性,BIC是對AIC的改進。BIC的表達式為:
AIC和BIC的值越低越好,其值越低,模型越簡單,即k、N取值越小,L取值越大,模型越好。
2.1.5 模型檢驗
通過對模型進行殘差白噪聲檢驗和參數(shù)性檢驗,來判斷所建模型是否可取,如果殘差序列不是白噪聲序列,則返回2.1.3的步驟,重新建立模型,直至通過參數(shù)檢驗和模型的殘差白噪聲檢驗[20]。通過檢驗可得,已通過參數(shù)檢驗和殘差白噪聲檢驗的ARIMA模型。
傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)模型相鄰層之間是全連接的[21],但是每層的各個節(jié)點是無連接的,樣本的處理在各個時刻獨立,使其不能對時間序列上的變化建模。而循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)中隱藏層之間的節(jié)點不再無連接而是有連接的,并且隱藏層的輸入不僅包括輸入層的輸出,還包括上一時刻隱藏層的輸出,使得循環(huán)神經(jīng)網(wǎng)絡(luò)最大的特點是具有記憶功能[22]。GRU在傳統(tǒng)RNN的基礎(chǔ)上加了更新門和重置門,既保留了“記憶”這個功能,又使LSTM(Long Short-Term Memory)在BPTT(Back-Propagation Through Time)的過程中避免了梯度爆炸或者消失的缺點[23]。更新門和重置門的作用在于:更新門用于控制前一時刻的狀態(tài)信息被帶入到當前狀態(tài)中的程度,更新門的值越大說明前一時刻的狀態(tài)信息帶入越多;重置門用于控制忽略前一時刻的狀態(tài)信息的程度,重置門的值越小說明忽略得越多。GRU遞歸神經(jīng)網(wǎng)絡(luò)的示意圖如圖5所示。
圖5 GRU遞歸神經(jīng)網(wǎng)絡(luò)
GRU的向前傳播公式如下:式(4)中:()中為2個向量相連接,表示矩陣元素相乘。
從式(4)中可以看到,GRU訓練需要學習的參數(shù)是Wr、Wz、Wh、Wo權(quán)重參數(shù),這些權(quán)重參數(shù)都是拼接的,所以在學習時需要分割出來,即:
在GRU模型中,本文用的是Python的Keras庫,GRU模塊的激活函數(shù)為tanh,確定接收GRU輸出的完全連接人工神經(jīng)網(wǎng)絡(luò)的激活函數(shù)為linear。
計量設(shè)備的可靠性因受到各種因素的影響,變化規(guī)律復(fù)雜多變,其中既含有線性趨勢,又包含非線性規(guī)律,僅使用單一模型進行預(yù)測難以完全擬合。本文基于這樣的思想構(gòu)建組合模型,設(shè)備可靠性的歷史數(shù)據(jù)首先經(jīng)過ARIMA模型過濾掉序列數(shù)據(jù)中的線性趨勢,那么非線性規(guī)律則包含在ARIMA模型的殘差中;其次,將殘差輸入GRU模型以提取其中的非線性規(guī)律;最后,將ARIMA模型的預(yù)測結(jié)果與GRU模型的預(yù)測結(jié)果相疊加得到最終的預(yù)測結(jié)果。組合模型的流程框架如圖6所示。
圖6 ARIMA-GRU組合模型流程圖
本文實驗所用的數(shù)據(jù)集是由實驗室計量設(shè)備使用過程或測試過程中記錄的數(shù)據(jù),包括設(shè)備出現(xiàn)故障發(fā)生次數(shù)和故障時間間隔,選取前150組數(shù)據(jù)來訓練構(gòu)建模型,用后面45組數(shù)據(jù)對模型進行模型測試和預(yù)測。對于數(shù)據(jù)集中的失效數(shù)據(jù),本文通過對數(shù)據(jù)中的故障發(fā)生數(shù)和故障發(fā)生時間間隔等變量進行處理分析,分別利用ARIMA模型和GRU模型2種數(shù)據(jù)分析方案對數(shù)據(jù)的線性特征和非線性特征進行抓取,從而對計量設(shè)備的可靠性進行預(yù)測。實驗中需利用數(shù)據(jù)分析技術(shù)精準刻畫數(shù)據(jù)變動規(guī)律,將分析結(jié)果用圖表進行可視化展示,針對所給數(shù)據(jù),區(qū)分訓練集和測試集,對比分析預(yù)測模型,并對模型進行評估。
為了能全面表現(xiàn)模型的性能,本文使用平均絕對誤差(Mean Absolute Error,MAE)和均方根誤差(Root Mean Squared Error,RMSE)作為性能衡量指標進行效果評估,二者都是測量2個向量(預(yù)測向量和目標值向量)之間的距離的方法,且值越小,則說明模型的性能越好[24],公式如下:
式(6)(7)中:RMSE(X,h)為使用假設(shè)h在示例上測量的成本函數(shù);X為數(shù)據(jù)集中所有實例的所有特征值的矩陣(標記特征除外);h為系統(tǒng)的預(yù)測函數(shù),也稱為一個假設(shè);m為在測量RMSE時所使用的數(shù)據(jù)集中實例的數(shù)量;X(i)為數(shù)據(jù)集中第i個實例的所有特征值的向量(標簽特征除外);y(i)為標簽,即為該實例的真實值。
所有的實驗都是在一個搭載NVIDIA Geforce RTX 3090顯卡、型號為AMD Ryzen 9 5900X處理器以及內(nèi)存為64 G的服務(wù)器上進行的。在實驗中,使用Python3.6開發(fā)平臺、Tensorflow1.4.0學習框架和CUDA11.0來實現(xiàn)本文的方法。
為了防止過度擬合,本文確定每一層網(wǎng)絡(luò)節(jié)點的舍棄率為默認值0.2,模型訓練的Epoch為100,Batch Size為1,學習率設(shè)置為2×10-5,權(quán)值衰減設(shè)置為1×10-6。
為了體現(xiàn)出模型預(yù)測效果的優(yōu)越性,實驗在相同數(shù)據(jù)集上與使用單一模型的方法進行了對比,即只使用ARIMA模型和僅使用GRU模型的方法,并將對比結(jié)果匯總,如表3所示。
表3 模型對比結(jié)果
由表3可以看出,本文提出的方法在評價指標上是有一定優(yōu)勢的,本文所使用的ARIMA模型和GRU模型結(jié)合的計量設(shè)備可靠性預(yù)測方法比單一模型的MAE值和RMSE值要小,例如,對比單一使用GRU模型,分別在MAE和RMSE指標上優(yōu)化了32.25%和30.06%。本文方法不僅關(guān)注了線性數(shù)據(jù),還對非線性數(shù)據(jù)進行了抓取,從而使模型對數(shù)據(jù)信息的獲取更加全面,所以在設(shè)備可靠性預(yù)測的任務(wù)上表現(xiàn)出一定的優(yōu)越性,具有較好的實用性。
此外,本文還在實驗中通過數(shù)據(jù)分析技術(shù)來準確畫出可靠性數(shù)據(jù)的變化走向,并將實際走向和實驗預(yù)測的結(jié)果可視化展示,如圖7、圖8、圖9所示。
圖7 ARIMA模型的預(yù)測結(jié)果
圖8 GRU模型的預(yù)測結(jié)果
圖9 本文方法的預(yù)測結(jié)果
由上圖可以看出,預(yù)測結(jié)果均從第150組數(shù)據(jù)開始進行,ARIMA模型預(yù)測的結(jié)果都和歷史的平均值比較接近,當真實值波動不是很劇烈時,ARIMA模型的預(yù)測效果會較好一些,但是通常可靠性的原始數(shù)據(jù)變化比較大,ARIMA模型的預(yù)測效果就比較差了;相比較來看,GRU模型不是只簡單看一個平均,所以預(yù)測可能會激進偏頗一點,當原始數(shù)據(jù)波動比較大時,預(yù)測的效果更好;在同時使用ARIMA模型和GRU模型時,對原始數(shù)據(jù)的使用更加全面,同時關(guān)注了波動較大和較小的數(shù)據(jù),所以此方法的預(yù)測效果更好。
通過實驗所得的圖和表均可以看出,本文提出的ARIMA和GRU的計量設(shè)備可靠性預(yù)測模型在預(yù)測結(jié)果上,效果相對來說都比較理想。單獨使用ARIMA模型進行預(yù)測時,雖然模型十分簡單,只需要內(nèi)生變量而不需要借助其他外生變量,但是采用ARIMA模型預(yù)測時序數(shù)據(jù),必須是穩(wěn)定的,不穩(wěn)定的數(shù)據(jù)是無法捕捉到規(guī)律的,對于可靠性數(shù)據(jù)預(yù)測走勢情況,用ARIMA預(yù)測效果不是太好的原因是該數(shù)據(jù)是非穩(wěn)定的,所以需要處理轉(zhuǎn)化成平穩(wěn)序列進行預(yù)測。單獨使用GRU模型進行預(yù)測時,由于GRU是LSTM的一種變體,將LSTM中遺忘門與輸入門合二為一為更新門,模型比LSTM模型更簡單了[25],非常適合用于處理與時間序列高度相關(guān)的問題。如本文所處理的設(shè)備可靠性預(yù)測問題,通過調(diào)整神經(jīng)個數(shù)、網(wǎng)絡(luò)層數(shù)等GRU的具體參數(shù),理論上使預(yù)測精度達到很高的水準,但是GRU網(wǎng)絡(luò)訓練時間過長,運行硬件要求高。對于時間跨度過長的數(shù)據(jù)集來說,當?shù)螖?shù)達到一定數(shù)量級后,實際運行速率比較緩慢,對于實驗所設(shè)計的100次迭代,2位數(shù)神經(jīng)元的輕量級網(wǎng)絡(luò),訓練時間可以達到1 h。而從實驗結(jié)果可以看出,輕量級網(wǎng)絡(luò)的實際預(yù)測精度并不超過ARIMA方法,這也說明GRU在通常網(wǎng)絡(luò)構(gòu)建和運行環(huán)境下難以展現(xiàn)其所具有的優(yōu)勢。
針對基于過往計量設(shè)備無效數(shù)據(jù)的設(shè)備可靠性預(yù)測工作中很少有使用多個模型來處理不同類型的數(shù)據(jù),大多還只是使用單一的模型來進行數(shù)據(jù)處理和預(yù)測,本文提出了一個基于ARIMA和GRU的設(shè)備可靠性預(yù)測模型,該模型分別利用ARIMA模型和GRU模型來處理可靠性數(shù)據(jù)中的線性數(shù)據(jù)和非線性數(shù)據(jù),從而比較全面地抓取數(shù)據(jù)信息。通過在同一數(shù)據(jù)集中執(zhí)行可靠性預(yù)測任務(wù),對比了單一使用ARIMA模型和GRU模型的方法,實驗證明,本文所使用的基于ARIMA和GRU的計量設(shè)備可靠性預(yù)測模型性能比較好,更具有實用性。
在未來的工作中,將繼續(xù)探索新方法和新思路,比如加入其他模型來更有針對性地處理數(shù)據(jù),從而使原始數(shù)據(jù)的抓取更加全面豐富,進而提升模型性能。