本發(fā)明屬于多元時序數(shù)據(jù)缺失值插補(bǔ)領(lǐng)域,尤其涉及一種基于自蒸餾的多元時間序列缺失值插補(bǔ)方法。
背景技術(shù):
1、在現(xiàn)實生活中,時間序列數(shù)據(jù)在很多領(lǐng)域都普遍存在,其在醫(yī)療、氣象和金融等領(lǐng)域應(yīng)用都很豐富,比如股票價格預(yù)測,預(yù)測醫(yī)院患者未來狀態(tài)等。然而,由于收集過程各個階段的故障或錯誤,如物理設(shè)備損壞、蓄意造成、錯誤采集等,時間序列數(shù)據(jù)往往是不完整的,例如,physionet?challenge?2012數(shù)據(jù)集是一個多變量時間序列數(shù)據(jù),其記錄的內(nèi)容是4000多名患者在入院后的48小時內(nèi)收集到的樣本數(shù)據(jù),其平均缺失率為80%。缺失數(shù)據(jù)也包含著數(shù)據(jù)的變化模式,如果不對缺失部分進(jìn)行處理,數(shù)據(jù)分析時可能會遺漏關(guān)鍵信息,導(dǎo)致建立的模型難以從現(xiàn)有數(shù)據(jù)中提取準(zhǔn)確的趨勢信息,影響模型的預(yù)測精度。因此,填補(bǔ)數(shù)據(jù)缺失部分,對于還原真實的數(shù)據(jù)趨勢、準(zhǔn)確挖掘數(shù)據(jù)模式、更好地指導(dǎo)后續(xù)的可靠性評估工作具有重要意義。
2、根據(jù)缺失數(shù)據(jù)的特點,可以將其分為以下幾類:(1)隨機(jī)缺失(mar):數(shù)據(jù)集中的缺失數(shù)據(jù)取決于觀測數(shù)據(jù);(2)完全隨機(jī)缺失(mcar):數(shù)據(jù)獨立于外部因素,指缺失機(jī)制不依賴于數(shù)據(jù)集中觀察到的感興趣變量或任何其他變量的數(shù)據(jù);(3)非隨機(jī)缺失(mnar):如果缺失同時取決于觀測變量和未觀測變量,則數(shù)據(jù)為mnar變量。本發(fā)明主要針對完全隨機(jī)缺失(mcar),因此,數(shù)據(jù)采樣集中在獨立缺失值,并引入人工缺失與其他最新方法進(jìn)行比較。
3、插補(bǔ)方法主要分為基于統(tǒng)計概念的方法和基于數(shù)據(jù)驅(qū)動的深度學(xué)習(xí)方法兩類。在基于統(tǒng)計概念的方法中,通過研究統(tǒng)計特征和缺失數(shù)據(jù)的概率進(jìn)行缺失數(shù)據(jù)插補(bǔ),然而,這種方法的插補(bǔ)性能可能會受到模型假設(shè)限制,由于缺少對數(shù)據(jù)集未觀測數(shù)據(jù)分布和時空相關(guān)性的學(xué)習(xí),插補(bǔ)結(jié)果的真實性可能有所欠缺。近年來,基于數(shù)據(jù)驅(qū)動的深度學(xué)習(xí)方法不需要過多模型假設(shè),其所具備的強(qiáng)大擬合能力和泛化能力使之成為插補(bǔ)缺失數(shù)據(jù)最常用的方法。然而,當(dāng)缺失數(shù)據(jù)集的時空模式更加復(fù)雜時,上述方法在處理高度復(fù)雜、非線性和非平穩(wěn)的時間序列數(shù)據(jù)時可能面臨挑戰(zhàn),往往無法完全捕捉這些特征,難以獲得令人滿意的數(shù)據(jù)插補(bǔ)結(jié)果。
技術(shù)實現(xiàn)思路
1、針對上述問題,本發(fā)明的目的在于提供一種基于自蒸餾的多元時間序列缺失值插補(bǔ)方法,通過促進(jìn)高層和低層語義信息之間的學(xué)習(xí)來增強(qiáng)模型的表示學(xué)習(xí)能力,在網(wǎng)絡(luò)模型的訓(xùn)練中,通過老師教學(xué)生的方式,將老師學(xué)到的知識傳遞給學(xué)生,從而讓學(xué)生學(xué)習(xí)的更好,同時,學(xué)生學(xué)習(xí)到的知識又可以傳遞給老師,網(wǎng)絡(luò)不同模塊互相指導(dǎo)進(jìn)行學(xué)習(xí)訓(xùn)練。在表示學(xué)習(xí)中,模型的性能通常依賴于從較低和較高級別提取的語義信息的質(zhì)量。如何在不借助外部知識的情況下有效促進(jìn)這兩個層次之間的相互學(xué)習(xí),是模型學(xué)習(xí)過程中提升模型性能的重要保證。它可以運用在多元時間序列數(shù)據(jù)缺失的問題中,為數(shù)據(jù)分析,模型訓(xùn)練等任務(wù)減少誤差。
2、本發(fā)明提供一種基于自蒸餾的多元時間序列缺失值插補(bǔ)方法,包括以下步驟:
3、步驟1:基于多元時間序列數(shù)據(jù)樣本,采用多層卷積神經(jīng)網(wǎng)絡(luò)和池化操作提取多元時間序列數(shù)據(jù)樣本的特征向量f2,并獲取對應(yīng)的缺失掩碼矩陣m,采用特征向量f2補(bǔ)充缺失掩碼矩陣m中的缺失值,得到特征向量具體是:
4、(1)基于多元時間序列數(shù)據(jù)樣本確定其對應(yīng)的缺失掩碼矩陣
5、具體地,對于多元時間序列數(shù)據(jù)樣本其表示在t={t1,t2,...tt}時間內(nèi)觀察到的數(shù)據(jù)對于時間t的數(shù)據(jù)xt,包含有d個特征若數(shù)據(jù)缺失,則缺失掩碼矩陣m對應(yīng)的值為0,若數(shù)據(jù)存在,則的值為1,利用表示中是否有缺失,如下所示:
6、
7、(2)基于多元時間序列數(shù)據(jù)樣本通過一維卷積網(wǎng)絡(luò),提取x數(shù)據(jù)的特征關(guān)系f1,如下所示:
8、f1=conv1d(x)
9、其中conv1d(·)表示在時間維度上執(zhí)行一維度卷積,f1作為提取到到第一個特征;然后對提取到的特征f1進(jìn)行池化操作,剔除冗余的數(shù)據(jù)避免模型出現(xiàn)過擬合的現(xiàn)象,在減小參數(shù)的同時幫助模型集中數(shù)據(jù)中的重要特征。
10、接著,將經(jīng)過池化后的特征再次使用卷積層處理來增加特征的復(fù)雜度,提高模型的表征能力,并且能夠擴(kuò)大感受野,得到特征向量f2,如下所示:
11、f2=conv1d(maxpool(f1))
12、其中,maxpool表示最大池化操作。
13、(3)使用同樣的池化操作,減少數(shù)據(jù)的尺寸和數(shù)量,并使用哈達(dá)瑪積將缺失掩碼矩陣m分別與x和f2進(jìn)行運算,覆蓋x中缺失的部分,得到特征向量如下所示:
14、f=maxpool(f2)
15、
16、⊙表示hadamard乘積,即對應(yīng)位置元素相乘。
17、步驟2:拼接特征向量和缺失掩碼矩陣m,以提醒模型輸入數(shù)據(jù)有觀測值和缺失值,利用多頭自注意力機(jī)制進(jìn)行插補(bǔ),通過歸一化得到完整數(shù)據(jù)具體是:
18、(1)將步驟1提取到的特征與缺失掩碼矩陣m拼接得到向量in,通過全連接層得到嵌入向量em,添加位置信息后,通過多頭自注意力機(jī)制處理,如下所示:
19、
20、em=inwe+be
21、p=pe(em)
22、
23、其中,表示連接操作,we,be為超參數(shù);pe和ffn分別表示三角函數(shù)位置編碼和全連接的前饋神經(jīng)網(wǎng)絡(luò),mha表示多頭自注意力機(jī)制。
24、(2)將經(jīng)過線性運算后做歸一化處理,得到完整數(shù)據(jù)
25、
26、其中,wt,bt是相應(yīng)的參數(shù),batchnorm1d(·)表示歸一化。
27、步驟3:基于完整數(shù)據(jù)利用簡單的全連接層對插補(bǔ)數(shù)據(jù)進(jìn)行修正,結(jié)合缺失掩碼矩陣m與多元時間序列數(shù)據(jù)樣本x進(jìn)行運算,得到插補(bǔ)數(shù)據(jù)具體是:
28、
29、
30、其中,we,be是相應(yīng)的超參數(shù)。
31、步驟4:將特征向量完整數(shù)據(jù)插補(bǔ)數(shù)據(jù)分別使用三個不同的全連接層進(jìn)行處理,通過自蒸餾指導(dǎo)反向訓(xùn)練,具體是:
32、(1)將特征向量完整數(shù)據(jù)插補(bǔ)數(shù)據(jù)分別使用三個不同的全連接層進(jìn)行處理,得到知識a1,a2,a3,具體地:
33、
34、
35、
36、其中w1,w2,w3為相應(yīng)的權(quán)重,b1、b1、b1為對應(yīng)的偏置。
37、(2)通過自蒸餾操作指導(dǎo)網(wǎng)絡(luò)模型的訓(xùn)練,由步驟1,2,3分別得到的知識a1,a2,a3,通過自蒸餾操作,網(wǎng)絡(luò)不同模塊互相指導(dǎo)進(jìn)行學(xué)習(xí)訓(xùn)練,具體地,將a3作為老師,指導(dǎo)a2的學(xué)習(xí),a2將知識傳遞給a1。
38、根據(jù)步驟1,2,3所述的網(wǎng)絡(luò)模型,它的訓(xùn)練損失函數(shù)為:
39、在自蒸餾訓(xùn)練過程中,其訓(xùn)練的蒸餾損失函數(shù)為losskd,具體地:
40、
41、
42、其中,||·||f表示矩陣范數(shù)frobenius?norm,at表示教師網(wǎng)絡(luò),as表示學(xué)生網(wǎng)絡(luò),α為超參數(shù),b為批次個數(shù)。
43、結(jié)合步驟2,3得到的數(shù)據(jù),計算其插補(bǔ)損失,并結(jié)合蒸餾損失,作為整個網(wǎng)絡(luò)模型訓(xùn)練的損失函數(shù),具體地:
44、
45、其中,表示均方誤差。
46、本發(fā)明的有益效果為:
47、本發(fā)明提供了一種基于自蒸餾的多元時間序列缺失值插補(bǔ)方法,對現(xiàn)有對多元時間序列數(shù)據(jù)插補(bǔ)缺失值,使用一種自蒸餾的方法指導(dǎo)網(wǎng)絡(luò)模型訓(xùn)練,通過蒸餾損失函數(shù)和插補(bǔ)損失函數(shù)相結(jié)合的方式訓(xùn)練網(wǎng)絡(luò),能夠提高網(wǎng)絡(luò)模型的插補(bǔ)精度,避免數(shù)據(jù)在下游分析中帶來的偏差、不規(guī)則等情況,同時提高時間序列數(shù)據(jù)的質(zhì)量,維護(hù)數(shù)據(jù)的連續(xù)性,以至于更高的分析和建模。