汪廣明 何滔 熊璽 盧玉龍 王明濤
摘 要:為準(zhǔn)確估計(jì)多傳感數(shù)據(jù)流中的缺失值,提出了一種改進(jìn)循環(huán)神經(jīng)網(wǎng)絡(luò)模型。所設(shè)計(jì)的改進(jìn)循環(huán)神經(jīng)網(wǎng)絡(luò)由插值模塊和插補(bǔ)模塊組成,其中插值模塊是在數(shù)據(jù)流內(nèi)捕獲傳感數(shù)據(jù)之間的時(shí)間相關(guān)性;插補(bǔ)模塊則是基于全連接神經(jīng)元層在不同數(shù)據(jù)流之間捕獲傳感數(shù)據(jù)值之間的時(shí)間相關(guān)性。循環(huán)神經(jīng)網(wǎng)絡(luò)模型還使用Dropout方法進(jìn)行多重插補(bǔ)以進(jìn)一步提高估計(jì)準(zhǔn)確度?;谡鎸?shí)電力設(shè)備傳感數(shù)據(jù)的實(shí)驗(yàn),結(jié)果表明:所設(shè)計(jì)改進(jìn)循環(huán)神經(jīng)網(wǎng)絡(luò)能夠?qū)崿F(xiàn)缺失傳感數(shù)據(jù)的準(zhǔn)確估計(jì)。
關(guān)鍵詞:缺失值;數(shù)據(jù)流;循環(huán)神經(jīng)網(wǎng)絡(luò);插值模塊;插補(bǔ)模塊;Dropout
中圖分類號(hào):TP39 ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1001-5922(2022)02-0108-04
由于傳感器失效、采集時(shí)間不同步等諸多原因,數(shù)據(jù)流中存在數(shù)據(jù)缺失是一個(gè)普遍的現(xiàn)象[1]。為確?;跀?shù)據(jù)流的設(shè)備故障診斷、系統(tǒng)運(yùn)行狀態(tài)監(jiān)測(cè)等大數(shù)據(jù)應(yīng)用的有效性和準(zhǔn)確性,需要準(zhǔn)確的缺失值估計(jì)[2]。
常用的缺失值估計(jì)方法是采用回歸法、加權(quán)估計(jì)法、期望最大化算法(EM)以及機(jī)器學(xué)習(xí)算法分析不同時(shí)間點(diǎn)的測(cè)量值之間的相關(guān)性,從而實(shí)現(xiàn)缺失值估計(jì)[3-5]。將這種方法應(yīng)用于多數(shù)據(jù)流的缺失值估計(jì),會(huì)忽略不同數(shù)據(jù)流之間的相關(guān)性,容易丟失潛在的重要信息。
為此,本文提出了一種基于改進(jìn)循環(huán)神經(jīng)網(wǎng)絡(luò)的多數(shù)據(jù)流缺失值的估計(jì)方法。該循環(huán)神經(jīng)網(wǎng)絡(luò)由一個(gè)插值模塊和一個(gè)插補(bǔ)模塊組成。插值模塊的結(jié)構(gòu)是一個(gè)基本的雙向循環(huán)神經(jīng)網(wǎng)絡(luò),通過(guò)對(duì)單個(gè)數(shù)據(jù)流中缺失值前后時(shí)間點(diǎn)上數(shù)據(jù)的學(xué)習(xí)實(shí)現(xiàn)缺失值估計(jì);插補(bǔ)模塊由全連接的單層神經(jīng)元組成,通過(guò)對(duì)不同數(shù)據(jù)流中數(shù)據(jù)進(jìn)行學(xué)習(xí)實(shí)現(xiàn)缺失值估計(jì)。同時(shí),在該循環(huán)神經(jīng)網(wǎng)絡(luò)中使用Dropout方法實(shí)現(xiàn)多重插補(bǔ),以進(jìn)一步降低估計(jì)誤差。
1 問(wèn)題表述
考慮由N個(gè)實(shí)時(shí)數(shù)據(jù)流組成的數(shù)據(jù)集。對(duì)于每個(gè)數(shù)據(jù)集,有一個(gè)長(zhǎng)度為T的多元時(shí)間序列數(shù)據(jù)流。數(shù)據(jù)流由時(shí)間戳S、測(cè)量值X和標(biāo)簽Y組成,從未知基礎(chǔ)分布F中采樣得到:(S,X,Y)~F。數(shù)據(jù)流的長(zhǎng)度T和數(shù)據(jù)集的其他組成部分取決于線路n,但暫時(shí)不考慮對(duì)n的依賴性。
對(duì)于每個(gè)t,時(shí)間戳st∈R表示采集測(cè)量值xt的實(shí)際時(shí)間。為方便計(jì)算,假設(shè)s1=0;假設(shè)實(shí)際時(shí)間單調(diào)增加:st+1>st,其中0≤t
假設(shè)有D個(gè)測(cè)量數(shù)據(jù)流。將每個(gè)測(cè)量值視作一個(gè)實(shí)數(shù),但通常情況下并非每個(gè)流在時(shí)間點(diǎn)st都有實(shí)際傳感值,因此將第t個(gè)時(shí)間戳st的可能傳感值集R′記為R′=RU{*}。其中R是數(shù)據(jù)流d在st處的實(shí)際傳感值,表示數(shù)據(jù)流d在st處沒(méi)有傳感值。為方便起見(jiàn),將所有測(cè)量值標(biāo)準(zhǔn)化至區(qū)間[0,1]。
對(duì)于任意t,如果xdt=*(即數(shù)據(jù)流d在st處無(wú)傳感值),則將索引mdt定義為等于0;如果xdt∈[0,1](即數(shù)據(jù)流d在st處有傳感值),則將其索引mdt定義為等于1。設(shè)δdt為數(shù)據(jù)流d自st所經(jīng)過(guò)的實(shí)際時(shí)間量。δd1=0,然后按照下式對(duì)δdt進(jìn)行遞歸計(jì)算:
標(biāo)簽yt表示在時(shí)間戳t(實(shí)際時(shí)間st)進(jìn)行電力設(shè)備運(yùn)行狀態(tài)分類或故障診斷所得到的結(jié)果。同樣對(duì)標(biāo)簽值yt進(jìn)行標(biāo)準(zhǔn)化處理:yt=0表示無(wú)故障或yt=1表示有故障。
由此得到用于標(biāo)識(shí)數(shù)據(jù)流n的三元數(shù)組:時(shí)間戳序列、每個(gè)時(shí)間戳的傳感數(shù)組(含缺失傳感值)和每個(gè)時(shí)間戳對(duì)應(yīng)的標(biāo)簽數(shù)組。數(shù)據(jù)集可表示為:D = {(S(n), X (n), Y(n)}Nn=1。其中S(n)是標(biāo)識(shí)電力設(shè)備的數(shù)組;X (n)是電力設(shè)備n的傳感數(shù)組;Y(n)是對(duì)應(yīng)時(shí)間戳的標(biāo)簽數(shù)組。
選擇均方誤差作為估計(jì)標(biāo)準(zhǔn)。設(shè)xdt是缺失傳感值,x^dt=fdtS,X是基于已采集的傳感數(shù)據(jù)形成的估計(jì)值,則均方誤差表示為:Lx^dt,xdt=x^dt-xdt2。
2 改進(jìn)循環(huán)神經(jīng)網(wǎng)絡(luò)
設(shè)數(shù)據(jù)流d在時(shí)間戳t處存在缺失值,即xdt=*;在時(shí)間戳t處的估計(jì)傳感為值x^dt。常見(jiàn)的缺失值估計(jì)方法使用數(shù)據(jù)流d中相關(guān)傳感值xdt′(t′≠t)來(lái)估計(jì)缺失值。顯然這種方法忽略了其他相關(guān)傳感數(shù)據(jù)流中所隱藏的有用信息。理論上也可通過(guò)使用數(shù)據(jù)集D中的所有傳感值來(lái)估計(jì)該缺失值x^dt,但是這顯然將導(dǎo)致計(jì)算量過(guò)大和過(guò)擬合的問(wèn)題[7]。為此,本文設(shè)計(jì)一個(gè)基于改進(jìn)循環(huán)神經(jīng)網(wǎng)絡(luò)的缺失值估計(jì)模型,該模型通過(guò)高效的分層學(xué)習(xí)網(wǎng)絡(luò)有效捕獲流內(nèi)和流之間的數(shù)據(jù)相關(guān)性,實(shí)現(xiàn)缺失傳感值的準(zhǔn)確估計(jì)。同時(shí)該模型將要學(xué)習(xí)的傳感數(shù)據(jù)限制在一定時(shí)間范圍內(nèi),以避免過(guò)度擬合。改進(jìn)循環(huán)神經(jīng)網(wǎng)絡(luò)模型如圖1所示。
在圖1中,“×”表示缺失測(cè)量值;虛線圓圈表示被Dropout的神經(jīng)元。
改進(jìn)循環(huán)神經(jīng)網(wǎng)絡(luò)由插值模塊和插補(bǔ)模塊兩個(gè)模塊組成,結(jié)構(gòu)如圖2所示。
由圖2可知,將插補(bǔ)模塊放在插值模塊之后,以便使用插值模塊的輸出來(lái)提高插補(bǔ)模塊的準(zhǔn)確性。將一個(gè)Dropout層連接到循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)是為了產(chǎn)生更多的插補(bǔ)操作,,以進(jìn)一步降低估計(jì)誤差。
2.1 誤差
缺失值估計(jì)的主要目標(biāo)是最小化估計(jì)誤差。為此,首先選取一個(gè)已經(jīng)采集并存在于數(shù)據(jù)集中的測(cè)量值xd,然后使用去除了xd的數(shù)據(jù)流(用D-xdt表示)重建xdt的估計(jì)值x^dt,之后計(jì)算估計(jì)值x^dt和實(shí)際測(cè)量xdt之間的誤差,使用均方誤差x^dt-xdt2作為估計(jì)誤差的評(píng)價(jià)標(biāo)準(zhǔn)。數(shù)據(jù)流D的總估計(jì)誤差L的計(jì)算方法為:
2.2 插值模塊
插值模塊構(gòu)建了一個(gè)在給定數(shù)據(jù)流中運(yùn)行的插值函數(shù)Φ。xdt的估計(jì)值x~dt取決于去除xdt的數(shù)據(jù)流,記作x~dt=ΦD-xdt。該估計(jì)值僅使用來(lái)自數(shù)據(jù)流d的數(shù)據(jù),不使用來(lái)自其他數(shù)據(jù)流的數(shù)據(jù)。使用雙向循環(huán)神經(jīng)網(wǎng)絡(luò)(Bi-RNN)構(gòu)建Φ[8]。與傳統(tǒng)的Bi-RNN不同,輸入到隱藏層的時(shí)間在前向滯后并在后向提前:在時(shí)間點(diǎn)t,前向隱藏狀態(tài)的輸入來(lái)自t-1,后向隱藏狀態(tài)的輸入來(lái)自t+1。此過(guò)程可確保實(shí)際值xdt不會(huì)自動(dòng)用于估計(jì)x~dt。zdt=[xdt,mdt,δdt]的數(shù)學(xué)化描述:
式中:f、g是ReLu激活函數(shù)[9];箭頭表示向前或向后方向。在插值模塊中,只捕獲每個(gè)數(shù)據(jù)流中的時(shí)間相關(guān)性。每個(gè)數(shù)據(jù)流的參數(shù)是單獨(dú)學(xué)習(xí)的,且所需學(xué)習(xí)的參數(shù)數(shù)量與數(shù)據(jù)流的數(shù)量呈線性關(guān)系。權(quán)重矩陣W、U、V是對(duì)角線矩陣。
2.3 插補(bǔ)模塊
插補(bǔ)模塊構(gòu)建了一個(gè)跨流操作的插補(bǔ)函數(shù)Ψ。xdt的估計(jì)值x^dt取決于不包含傳感值xdt的傳感數(shù)據(jù)流,記作x^dt=ΨD-xdt;估計(jì)值x^dt只使用時(shí)間戳st的數(shù)據(jù),而不是其他時(shí)間戳的數(shù)據(jù)。構(gòu)造函數(shù)Ψ以使其獨(dú)立于t,因此使用全連接層[10-11],插補(bǔ)模塊的結(jié)構(gòu)如圖2所示。zt=x~t,mt的數(shù)學(xué)描述:
2.4 多重插補(bǔ)
由于估計(jì)缺失值存在不確定性,生成多個(gè)估計(jì)值并生成多重插補(bǔ)數(shù)據(jù)集對(duì)降低估計(jì)誤差很有幫助。本文使用Dropout方法生成多重插補(bǔ)數(shù)據(jù)集。Dropout方法即隨機(jī)選擇完全連接層中的神經(jīng)元并刪除所選神經(jīng)元及其所有連接[12]。選擇丟棄的神經(jīng)元的方法是根據(jù)參數(shù)為p的伯努利分布函數(shù)從神經(jīng)元集合中隨機(jī)選擇。參數(shù)p的取值范圍為(0,1)。在訓(xùn)練階段,基于總估計(jì)誤差L和Dropout方法進(jìn)行參數(shù)優(yōu)化。然后通過(guò)在伯努利分布中采樣不同的Dropout向量R來(lái)生成多個(gè)輸出ot,最終產(chǎn)生多重插補(bǔ)的效果。
3 實(shí)驗(yàn)結(jié)果
選取兩組水輪發(fā)電機(jī)組導(dǎo)油槽油位真實(shí)傳感數(shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù)集,估計(jì)對(duì)象為油位缺失值。為了體現(xiàn)本文提出方法的優(yōu)勢(shì),選取均值法和基于隨機(jī)森林的迭代插值法(RF)進(jìn)行對(duì)比分析,通過(guò)分析不同缺失率下的數(shù)據(jù)估計(jì)誤差,評(píng)價(jià)不同方法的估計(jì)精度。
采用均方誤差(RMSE)作為評(píng)價(jià)指標(biāo):
RMSE=∑ni=1xreal-x^i2n
采用隨機(jī)刪除策略生成1%、5%、10%、15%、20%、25%和30%的缺失數(shù)據(jù)集。為保證實(shí)驗(yàn)的可靠性,對(duì)不同缺失數(shù)據(jù)集做3次計(jì)算,取3次平均值作為最終實(shí)驗(yàn)結(jié)果。
針對(duì)不同缺失數(shù)據(jù)集采用本文方法、均值法和RF法得到的實(shí)驗(yàn)結(jié)果如圖3所示。
從圖3可以看出,相比均值法和RF法,本文方法在不同的缺失率情況下都獲得了最好的均方根誤差,取得最優(yōu)的估計(jì)效果。
最后選用水輪發(fā)電機(jī)組的兩組軸承瓦溫度傳感數(shù)據(jù)集作為對(duì)比數(shù)據(jù)集,進(jìn)行算法魯棒性驗(yàn)證。實(shí)驗(yàn)結(jié)果如圖4所示。
由圖4可知,本方法在不同的數(shù)據(jù)集下也能取得較低的均方誤差。雖然由于數(shù)據(jù)集的不同,填補(bǔ)誤差有所上升,但總體上仍然保持了較低的填補(bǔ)誤差。這反映了本文方法的魯棒性,具有良好的適應(yīng)性。
4 結(jié)語(yǔ)
缺失值的估計(jì)問(wèn)題是數(shù)據(jù)預(yù)處理過(guò)程中不可忽視的問(wèn)題,對(duì)提升大數(shù)據(jù)應(yīng)用的有效性具有重要意義。所提出的缺失值估計(jì)方法使用改進(jìn)循環(huán)神經(jīng)網(wǎng)絡(luò)算法充分挖掘了數(shù)據(jù)流內(nèi)和數(shù)據(jù)流間的數(shù)據(jù)相關(guān)性,實(shí)現(xiàn)了多數(shù)據(jù)流的缺失值估計(jì)。在兩種屬性迥異的測(cè)量數(shù)據(jù)集上實(shí)驗(yàn)結(jié)果證明,在不同缺失率的情況下,本文所提方法均能夠表現(xiàn)出較好的估計(jì)精度。
【參考文獻(xiàn)】
[1] 趙厚翔,沈曉東,呂林,等.基于GAN的負(fù)荷數(shù)據(jù)修復(fù)及其在EV短期負(fù)荷預(yù)測(cè)中的應(yīng)用[J].電力系統(tǒng)自動(dòng)化,2021,45(16):143-151.
[2] 李培冠,於志勇,黃昉菀.基于稀疏表示的電力負(fù)荷數(shù)據(jù)補(bǔ)全[J].計(jì)算機(jī)科學(xué),2021,48(2):128-133.
[3] 郭毅博,牛猛,王海迪,等.基于生成對(duì)抗網(wǎng)絡(luò)的飛機(jī)燃油數(shù)據(jù)缺失值填充方法[J].浙江大學(xué)學(xué)報(bào)(理學(xué)版),2021,48(4):402-409.
[4] 閆媞錦,夏元清,張宏偉,等.一種非規(guī)則采樣航空時(shí)序數(shù)據(jù)異常檢測(cè)方法[J].航空學(xué)報(bào),2021,42(4):558-568.
[5] 鄧子畏,唐朝暉,朱紅求,等.基于改進(jìn)EM算法的混凝土泵車數(shù)據(jù)治理[J].中南大學(xué)學(xué)報(bào)(自然科學(xué)版),2021,52(2):443-449.
[6] 胡雪,彭敦陸.張量表達(dá)下的多模態(tài)交通缺失數(shù)據(jù)補(bǔ)全算法[J].小型微型計(jì)算機(jī)系統(tǒng),2021,42(1):105-110.
[7] 李國(guó),袁聞,王懷超.面向不完備數(shù)據(jù)的民航旅客流失預(yù)測(cè)模型[J].計(jì)算機(jī)工程與設(shè)計(jì),2020,41(10):2 884-2 891.
[8] 張若愚,齊波,張鵬,等.面向電力變壓器狀態(tài)評(píng)價(jià)的油中溶解氣體監(jiān)測(cè)數(shù)據(jù)補(bǔ)全方法[J].電力自動(dòng)化設(shè)備,2019,39(11):181-187.
[9] 陳小波,陳程,陳蕾,等.基于改進(jìn)低秩矩陣補(bǔ)全的交通量數(shù)據(jù)缺失值插補(bǔ)方法[J].交通運(yùn)輸工程學(xué)報(bào),2019,19(5):180-190.
[10] 關(guān)偉,李先通.一種基于K近鄰和多元回歸的傳感器缺失值預(yù)測(cè)算法[J].公路交通科技,2019,36(3):14-21.
[11] 王守相,陳海文,潘志新,等.采用改進(jìn)生成式對(duì)抗網(wǎng)絡(luò)的電力系統(tǒng)量測(cè)缺失數(shù)據(jù)重建方法[J].中國(guó)電機(jī)工程學(xué)報(bào),2019,39(1):56-64.
[12] 張峰,宋曉娜,薛惠鋒,等.水資源消耗預(yù)測(cè)的異常值檢測(cè)及缺失數(shù)據(jù)填補(bǔ)方法[J].統(tǒng)計(jì)與決策,2018,34(16):13-17.