王 瑞,閆 方,逯 靜,楊文藝
(河南理工大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 河南焦作 454000)
疫情在全球多點(diǎn)爆發(fā)并蔓延,已成為全球性流行病,給各國(guó)人民的健康帶來(lái)巨大威脅。通過(guò)各地一系列防控措施,如勤洗手、公眾場(chǎng)合戴口罩、外出需出示健康碼和通行大數(shù)據(jù)等,我國(guó)疫情得到較好的控制,但是國(guó)外疫情仍然比較嚴(yán)峻,因此利用新冠肺炎歷史數(shù)據(jù)預(yù)測(cè)疫情發(fā)展趨勢(shì)對(duì)制定合理的干預(yù)防控措施有重要意義。
文獻(xiàn)[1-3]從多個(gè)角度為抗擊疫情提供了有力的學(xué)術(shù)支持?,F(xiàn)有方法可分為統(tǒng)計(jì)學(xué)方法、動(dòng)力學(xué)方法和機(jī)器學(xué)習(xí)方法。統(tǒng)計(jì)學(xué)方法適合在信息不完整的情況下使用,該方法通過(guò)部分樣本的情況預(yù)測(cè)總體趨勢(shì),而部分樣本與總體傳播趨勢(shì)具有較大差異性[4],因此該方法的預(yù)測(cè)誤差較大,無(wú)法準(zhǔn)確體現(xiàn)疫情傳播的趨勢(shì)變化。動(dòng)力學(xué)方法的經(jīng)典數(shù)學(xué)模型為SIR(susceptible infected recovered)模型[5-6]和SEIR(susceptible-exposed-infected-removed)模型[7-8]。動(dòng)力學(xué)方法對(duì)疫情早期傳播趨勢(shì)有較好的預(yù)測(cè),但是無(wú)法對(duì)開放式流動(dòng)環(huán)境下的病毒傳播做出準(zhǔn)確估計(jì),也無(wú)法使假設(shè)的疾病傳播能力及治愈概率的常數(shù)與實(shí)際狀況相符,因此無(wú)法對(duì)疫情趨勢(shì)做長(zhǎng)期準(zhǔn)確的分析[9]。
隨著新冠肺炎數(shù)據(jù)增多,機(jī)器學(xué)習(xí)展現(xiàn)出了極大的優(yōu)越性。文獻(xiàn)[10]在有限的數(shù)據(jù)下,通過(guò)最小二乘準(zhǔn)則和梯度下降算法對(duì)數(shù)據(jù)進(jìn)行非線性回歸來(lái)預(yù)測(cè)新冠肺炎確診人數(shù)趨勢(shì),但此方法需要人為添加時(shí)間特征保證預(yù)測(cè)準(zhǔn)確度。為解決上述問(wèn)題,文獻(xiàn)[11-13]運(yùn)用自回歸積分滑動(dòng)平均模型(autoregressive integrated moving average model,ARIMA)對(duì)新冠肺炎疫情發(fā)展?fàn)顩r進(jìn)行了預(yù)測(cè),此模型對(duì)數(shù)據(jù)的時(shí)序性要求高,不需要人為添加時(shí)間特征,但是非線性擬合能力不強(qiáng),隨著數(shù)據(jù)量增加,預(yù)測(cè)效果下降。為解決上述問(wèn)題,文獻(xiàn)[14]建立了基于深度學(xué)習(xí)的長(zhǎng)短期記憶模型(long short-term memory,LSTM),通過(guò)Python實(shí)現(xiàn)了模型的擬合和預(yù)測(cè),此方法在一定程度上提高了短期新冠肺炎預(yù)測(cè)的準(zhǔn)確度,但是有以下不足:1)未做到對(duì)新冠肺炎發(fā)展趨勢(shì)較為準(zhǔn)確的長(zhǎng)期預(yù)測(cè);2)LSTM神經(jīng)網(wǎng)絡(luò)對(duì)數(shù)據(jù)量需求較大,文中未提供一個(gè)簡(jiǎn)單的數(shù)據(jù)采集方法;3)未考慮深層神經(jīng)網(wǎng)絡(luò)中由于參數(shù)多和模型復(fù)雜而帶來(lái)的過(guò)擬合問(wèn)題。
LSTM神經(jīng)網(wǎng)絡(luò)在趨勢(shì)預(yù)測(cè)中有許多改進(jìn)機(jī)制,大致分為兩類:1)針對(duì)LSTM神經(jīng)網(wǎng)絡(luò)自身進(jìn)行改進(jìn);2)引入其他方法改進(jìn)LSTM算法。文獻(xiàn)[15]針對(duì)LSTM神經(jīng)網(wǎng)絡(luò)自身改進(jìn),網(wǎng)絡(luò)訓(xùn)練時(shí),將輸出反饋回輸入端,使其二次訓(xùn)練達(dá)到提高泛化能力的目的。文獻(xiàn)[16]利用卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)提取挖掘相鄰路口交通流量的空間關(guān)聯(lián)性,通過(guò)LSTM模型挖掘交通流量的時(shí)序特征,將提取的時(shí)空特征進(jìn)行特征融合,實(shí)現(xiàn)短期流量預(yù)測(cè)。文獻(xiàn)[17]引入集合經(jīng)驗(yàn)?zāi)B(tài)分解(ensemble empirical mode decomposition,EEMD),構(gòu)建多層級(jí)LSTM預(yù)測(cè)模型提升模型預(yù)測(cè)準(zhǔn)確率。本文提出的Dropout-LSTM模型屬于第二種改進(jìn)方法。新冠肺炎歷史數(shù)據(jù)為時(shí)序性數(shù)據(jù),而LSTM神經(jīng)網(wǎng)絡(luò)擅長(zhǎng)處理時(shí)序性數(shù)據(jù),可根據(jù)實(shí)驗(yàn)效果調(diào)整具體預(yù)測(cè)的天數(shù),達(dá)到對(duì)新冠肺炎發(fā)展趨勢(shì)預(yù)測(cè)的目的。
由于新冠肺炎歷史數(shù)據(jù)較多,傳統(tǒng)的人工搜集方法不再適用,因此本文使用網(wǎng)絡(luò)爬蟲技術(shù)從騰訊新聞網(wǎng)站中獲取相關(guān)數(shù)據(jù)供本次研究使用??紤]到新冠肺炎歷史數(shù)據(jù)之間有很強(qiáng)的時(shí)序性,故本文使用擅長(zhǎng)處理時(shí)序性數(shù)據(jù)的LSTM神經(jīng)網(wǎng)絡(luò)作為基本模型對(duì)疫情趨勢(shì)進(jìn)行預(yù)測(cè)。該模型與ARIMA模型相比有更強(qiáng)的非線性擬合能力,且不需要人為添加時(shí)間特征,可最大限度地挖掘時(shí)序數(shù)據(jù)之間的非線性關(guān)系。針對(duì)LSTM神經(jīng)網(wǎng)絡(luò),新冠肺炎數(shù)據(jù)量較小,為避免在多層網(wǎng)絡(luò)訓(xùn)練時(shí)出現(xiàn)過(guò)擬合問(wèn)題,本文構(gòu)建多層LSTM神經(jīng)網(wǎng)絡(luò),并引入Dropout技術(shù)按隨機(jī)概率讓神經(jīng)元失活。最后使用國(guó)內(nèi)累計(jì)確診、現(xiàn)有確診和累計(jì)治愈人數(shù)驗(yàn)證此方法的準(zhǔn)確性。
針對(duì)2020年1月13日?2020年9月12日的244條數(shù)據(jù),傳統(tǒng)的人工搜集方法效率低且容易由于主觀原因?qū)е率占臄?shù)據(jù)與真實(shí)值不符。為避免以上問(wèn)題,本文采用基于Python語(yǔ)言的網(wǎng)絡(luò)爬蟲技術(shù)[18]獲取新冠肺炎歷史數(shù)據(jù),并將其保存至CSV文件,以供后期實(shí)驗(yàn)使用。具體流程如圖1所示。
圖1 獲取新冠肺炎歷史數(shù)據(jù)流程圖
具體步驟為:
1) 確定需要爬取數(shù)據(jù)的網(wǎng)址:https://view.inews.qq.com/g2/getOnsInfo?name=disease_other,在網(wǎng)頁(yè)空白處,點(diǎn)擊F12查看目標(biāo)網(wǎng)站源碼,找到數(shù)據(jù)接口;
2)向服務(wù)器發(fā)送請(qǐng)求,等待響應(yīng)。若響應(yīng)成功,可獲得URL的信息,并保存響應(yīng)結(jié)果,以便后續(xù)對(duì)數(shù)據(jù)處理;若響應(yīng)失敗,需檢查程序,重新發(fā)送請(qǐng)求;
3)對(duì)源碼進(jìn)行解析,若解析成功,在遍歷源碼Body的基礎(chǔ)上尋找目標(biāo)內(nèi)容的標(biāo)簽,如:日期、累計(jì)確診、新增確診和累計(jì)治愈等,對(duì)目標(biāo)內(nèi)容進(jìn)行獲取并保存至CSV文件;若解析失敗,則需檢查程序,重新解析源碼。
每日更新的新冠肺炎歷史數(shù)據(jù)屬于時(shí)序性數(shù)據(jù),根據(jù)神經(jīng)網(wǎng)絡(luò)的特征,本文選擇擅長(zhǎng)處理時(shí)序性數(shù)據(jù)的LSTM神經(jīng)網(wǎng)絡(luò)作為基本模型對(duì)新冠肺炎發(fā)展趨勢(shì)進(jìn)行預(yù)測(cè),可最大限度地挖掘數(shù)據(jù)時(shí)序性與非線性之間的關(guān)系。
LSTM神經(jīng)網(wǎng)絡(luò)[19]屬于循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural networks,RNN)。RNN在處理序列信息中有良好的性能,但是當(dāng)歷史數(shù)據(jù)和預(yù)測(cè)數(shù)據(jù)的位置間隔不斷增大時(shí),梯度越傳越弱,上一層的網(wǎng)絡(luò)權(quán)重?zé)o法更新,喪失從歷史數(shù)據(jù)中學(xué)習(xí)信息的能力,即梯度消失問(wèn)題。
LSTM神經(jīng)網(wǎng)絡(luò)能夠解決RNN的梯度消失問(wèn)題,是因?yàn)樵摼W(wǎng)絡(luò)中放置了遺忘門ft、輸入門it和輸出門ot[20]??筛鶕?jù)式(1)~(6)判斷該數(shù)據(jù)是否符合算法認(rèn)證,符合認(rèn)證的數(shù)據(jù)留下,不符合的數(shù)據(jù)則通過(guò)遺忘門遺忘,因此LSTM神經(jīng)網(wǎng)絡(luò)能在更長(zhǎng)的時(shí)序數(shù)據(jù)中有更好的表現(xiàn)[21]。LSTM神經(jīng)網(wǎng)絡(luò)標(biāo)準(zhǔn)結(jié)構(gòu)如圖2所示。
圖2 LSTM網(wǎng)絡(luò)結(jié)構(gòu)
1)遺忘門
遺忘門負(fù)責(zé)對(duì)t時(shí)刻的輸入xt選擇性忘記,通過(guò)計(jì)算ft控制上一單元候選狀態(tài)Ct?1中的數(shù)據(jù)保留或忘記。若ft為1,表示保留上一單元的數(shù)據(jù);若ft為0,表示忘記上一單元的數(shù)據(jù):
式中,σ為sigmoid激活函數(shù);W f為上一單元隱藏層的輸出ht?1和 當(dāng)前輸入數(shù)據(jù)xt相乘的權(quán)重矩陣;bf為遺忘門的偏置。
2)輸入門
輸入門it負(fù) 責(zé)對(duì)t時(shí)刻的輸入有選擇性地記憶。
當(dāng)前輸入內(nèi)容由式(2)得到,σ用來(lái)控制需要更新的輸入值,而輸入的門控信號(hào)由式(3)控制,tanh用來(lái)控制當(dāng)前記憶單元候選狀態(tài):
式中,W it為 輸入門it在t時(shí) 刻的輸入xt的權(quán)重矩陣;W c為 新生成信息在t時(shí) 刻的權(quán)重矩陣;bi、bc為輸入數(shù)據(jù)和新生成信息在當(dāng)前單元的偏置。
傳遞給t+1時(shí) 刻的狀態(tài)Ct由兩部分組成:式(1)得到的遺忘門ft的輸出與上一時(shí)刻t?1候 選狀態(tài)Ct?1之積;式(2)得到的輸入門it的 輸出與t時(shí)刻候選狀態(tài)C?t之積。此過(guò)程旨在拋棄當(dāng)前單元中無(wú)用信息,保留有用信息:
3)輸出門
輸出門ot通過(guò)sigmoid激活函數(shù)控制得到初始輸出,接著使用tanh層將傳遞給下一時(shí)刻t+1的狀態(tài)Ct縮放至(?1,1)上,最后與初始輸出相乘得到最終輸出結(jié)果:
式中,Wot為輸出門ot的權(quán)重矩陣;bo為偏置。
新冠肺炎歷史數(shù)據(jù)量的大小是相對(duì)的,即對(duì)傳統(tǒng)的人工搜集方法來(lái)說(shuō),新冠肺炎歷史數(shù)據(jù)量較大,搜集較為麻煩;但是對(duì)于網(wǎng)絡(luò)規(guī)模較大的LSTM神經(jīng)網(wǎng)絡(luò)來(lái)說(shuō),新冠肺炎歷史數(shù)據(jù)量較小,較小的數(shù)據(jù)量輸入較復(fù)雜的LSTM神經(jīng)網(wǎng)絡(luò)容易出現(xiàn)過(guò)擬合現(xiàn)象,即在訓(xùn)練集上精確率很高,在測(cè)試集中精確率卻較低。在數(shù)據(jù)沒有過(guò)擬合的前提下,調(diào)參很容易實(shí)現(xiàn)更高程度的擬合,但是會(huì)出現(xiàn)過(guò)擬合問(wèn)題,無(wú)論如何調(diào)參,測(cè)試集的準(zhǔn)確度依然不高。過(guò)擬合問(wèn)題嚴(yán)重影響了模型的預(yù)測(cè)精度,為解決模型在訓(xùn)練時(shí)出現(xiàn)的過(guò)擬合問(wèn)題,提高模型的訓(xùn)練精確度,本文引入Dropout技術(shù)。
Dropout是一種防止過(guò)擬合技術(shù),分為權(quán)重Dropout和神經(jīng)元Dropout。權(quán)重Dropout選擇神經(jīng)層權(quán)重矩陣中的部分權(quán)重使之失活,而神經(jīng)元Dropout則是選擇神經(jīng)層中部分神經(jīng)元使之失活[22]。圖3為神經(jīng)網(wǎng)絡(luò)運(yùn)用Dropout技術(shù)前后對(duì)比,圖3a為標(biāo)準(zhǔn)神經(jīng)網(wǎng)絡(luò),圖3b為運(yùn)用Dropout技術(shù)后的神經(jīng)網(wǎng)絡(luò)。
圖3 運(yùn)用Dropout技術(shù)前后對(duì)比
本文選擇神經(jīng)元Dropout技術(shù)按照概率把部分神經(jīng)元的激活值設(shè)置為0,隨機(jī)使其失活,虛線部分表示失活后的神經(jīng)元無(wú)法參與網(wǎng)絡(luò)訓(xùn)練,這樣可減弱神經(jīng)元節(jié)點(diǎn)間的聯(lián)結(jié),提高模型泛化能力,減輕過(guò)擬合問(wèn)題。
Dropout技術(shù)在測(cè)試集上不需要使用。因?yàn)樵跍y(cè)試階段并不期望輸出結(jié)果是隨機(jī)的,若在測(cè)試階段使用Dropout技術(shù)可能會(huì)導(dǎo)致預(yù)測(cè)值產(chǎn)生隨機(jī)變化(因?yàn)镈ropout使節(jié)點(diǎn)隨機(jī)失活),預(yù)測(cè)值會(huì)受到干擾。
如圖4所示,x為L(zhǎng)STM神經(jīng)網(wǎng)絡(luò)輸入信息,y為輸出信息,每個(gè)矩形代表一個(gè)LSTM神經(jīng)元。Dropout技術(shù)應(yīng)用于LSTM神經(jīng)網(wǎng)絡(luò),必須置放于網(wǎng)絡(luò)的非循環(huán)部分,否則信息會(huì)隨著循環(huán)丟失。這是因?yàn)椋喝舭袲ropout技術(shù)設(shè)置在隱藏狀態(tài)上,即圖中實(shí)線部分,每經(jīng)一次循環(huán),剩余信息便會(huì)以概率P丟失,也就是對(duì)式(6)ht隨機(jī)進(jìn)行置0操作。若序列較長(zhǎng),循環(huán)次數(shù)較多,到最后信息早已丟失。把Dropout技術(shù)設(shè)置在輸入信息x上,那么Dropout技術(shù)造成的信息丟失與循環(huán)次數(shù)無(wú)關(guān),只與網(wǎng)絡(luò)層數(shù)相關(guān)。
圖4 Dropout-LSTM模型微觀圖
同一層神經(jīng)元不同時(shí)刻之間的信息傳遞不使用Dropout技術(shù),而在同一時(shí)刻層與層之間的神經(jīng)元傳遞信息時(shí)使用,將其神經(jīng)元按照一定概率P隨機(jī)置0,使其失活。如圖中粗線部分所示:t?2時(shí)刻的輸入xt?2先傳入第一層LSTM神經(jīng)網(wǎng)絡(luò),此過(guò)程使用Dropout技術(shù),信息從第一層的t?2時(shí)刻傳到t時(shí)刻不進(jìn)行Dropout技術(shù);接著從第一層的t時(shí)刻向第二層神經(jīng)網(wǎng)絡(luò)傳遞信息時(shí)使用Dropout技術(shù)。
LSTM神經(jīng)網(wǎng)絡(luò)實(shí)施Dropout技術(shù)宏觀結(jié)構(gòu)如圖5所示,x0,x1,···,x243為輸入數(shù)據(jù)。虛線圓表示采用Dropout技術(shù)后隨機(jī)失活的神經(jīng)元,虛線箭頭表示失活后的神經(jīng)元不傳遞信息。
圖5 Dropout-LSTM模型宏觀圖
加入Dropout技術(shù)的LSTM神經(jīng)網(wǎng)絡(luò)具體工作步驟為:
1)設(shè)定隨機(jī)概率P,使網(wǎng)絡(luò)中的每一層神經(jīng)元按照隨機(jī)概率P失活,但是不刪除這些失活的神經(jīng)元,停止工作的神經(jīng)元不參與網(wǎng)絡(luò)訓(xùn)練中的正向傳播,輸入神經(jīng)元和輸出神經(jīng)元保持不變;
2)將信息x輸入Dropout-LSTM模型進(jìn)行從輸入層到輸出層的正向傳播,計(jì)算并存儲(chǔ)神經(jīng)網(wǎng)絡(luò)的中間變量;沿著從輸出層到輸入層的順序根據(jù)損失函數(shù)進(jìn)行反向傳播,計(jì)算并存儲(chǔ)神經(jīng)網(wǎng)絡(luò)的中間變量和梯度參數(shù);在未失活的神經(jīng)元上更新相關(guān)參數(shù);
3)恢復(fù)失活神經(jīng)元,此時(shí)剛恢復(fù)活性的神經(jīng)元保持原樣,而未失活的神經(jīng)元參數(shù)經(jīng)過(guò)上一輪過(guò)程已更新,重復(fù)步驟1)~2)。
通過(guò)隨機(jī)忽略隱藏層神經(jīng)元,可避免LSTM神經(jīng)網(wǎng)絡(luò)過(guò)度依賴某些局部特征,一定程度上降低了迭代過(guò)程中的過(guò)擬合現(xiàn)象。
在Windows8.1系統(tǒng)中使用Pycharm,Python3.6為實(shí)驗(yàn)平臺(tái),運(yùn)用Tensorflow深度學(xué)習(xí)框架所提供的LSTM 神經(jīng)網(wǎng)絡(luò)用于仿真實(shí)驗(yàn)。
5.2.1實(shí)驗(yàn)數(shù)據(jù)說(shuō)明
實(shí)驗(yàn)數(shù)據(jù)均由網(wǎng)絡(luò)爬蟲技術(shù)在騰訊網(wǎng)站獲取。日期范圍為2020年1月13日?2020年9月12日,共計(jì)244條數(shù)據(jù),將其按照訓(xùn)練集214條數(shù)據(jù)、測(cè)試集30條數(shù)據(jù)劃分,針對(duì)國(guó)內(nèi)累計(jì)確診、現(xiàn)有確診、累計(jì)治愈人數(shù)進(jìn)行預(yù)測(cè)。
5.2.2實(shí)驗(yàn)數(shù)據(jù)預(yù)處理
1)數(shù)據(jù)提取、劃分:在爬取到的新冠肺炎歷史數(shù)據(jù)CSV文件中提取出來(lái)日期和累計(jì)確診兩列,將累計(jì)確診列以矩陣形式表示:
2)數(shù)據(jù)歸一化處理:為縮短模型訓(xùn)練時(shí)間,加速loss下降,對(duì)訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)分別進(jìn)行歸一化處理,這樣可以最大程度保留數(shù)據(jù)特征,更好擬合新冠肺炎數(shù)據(jù)之間的非線性關(guān)系。本文采用最大最小歸一化方法對(duì)數(shù)據(jù)進(jìn)行處理:
式中,x代 表樣本數(shù)據(jù);xmax、xmin分別代表訓(xùn)練數(shù)據(jù)或測(cè)試數(shù)據(jù)中的最大值和最小值。設(shè)歸一化處理后的訓(xùn)練集和測(cè)試集為Xntrain和Xntest,對(duì)現(xiàn)有確診和累計(jì)治愈數(shù)據(jù)做同樣處理。
本文提出的模型由1個(gè)輸入層、多個(gè)隱藏層和1個(gè)輸出層組成。上一個(gè)隱藏層的輸出作為下一個(gè)隱藏層的輸入,輸入層與隱藏層共同實(shí)現(xiàn)輸入數(shù)據(jù)特征的提取,最后一個(gè)隱藏層的輸出為一維列向量,經(jīng)線性回歸即得到處理后的預(yù)測(cè)值[23]。經(jīng)反復(fù)實(shí)驗(yàn),最終超參數(shù)設(shè)置如下:激活函數(shù)為L(zhǎng)inear、迭代次數(shù)為15000,隱藏層為100,Dropout為0.05,學(xué)習(xí)率為0.0001,優(yōu)化器為Adam。
目前缺乏利用深度學(xué)習(xí)對(duì)新冠肺炎發(fā)展趨勢(shì)預(yù)測(cè)的研究,這是因?yàn)椋?)深度學(xué)習(xí)對(duì)數(shù)據(jù)量要求較高,利用傳統(tǒng)手工搜集方法不易獲取相關(guān)數(shù)據(jù);2)訓(xùn)練過(guò)程中易出現(xiàn)過(guò)擬合問(wèn)題,嚴(yán)重影響預(yù)測(cè)精度。在已有的LSTM神經(jīng)網(wǎng)絡(luò)用于新冠肺炎預(yù)測(cè)的研究中,有以下不足:1)未提供簡(jiǎn)單的數(shù)據(jù)獲取方法;2)LSTM層過(guò)少,不能充分挖掘時(shí)序數(shù)據(jù)之間的非線性關(guān)系;3)未考慮過(guò)擬合問(wèn)題給實(shí)驗(yàn)結(jié)果帶來(lái)的影響。針對(duì)以上問(wèn)題,本文利用網(wǎng)絡(luò)爬蟲技術(shù)獲取新冠肺炎歷史數(shù)據(jù)組成實(shí)驗(yàn)數(shù)據(jù)集;在網(wǎng)絡(luò)層上構(gòu)建層次更深的LSTM新冠肺炎發(fā)展趨勢(shì)預(yù)測(cè)模型;在每個(gè)LSTM單元構(gòu)成的隱含層中的非循環(huán)部分采用Dropout技術(shù)對(duì)神經(jīng)元進(jìn)行隨機(jī)概率失活,有效避免LSTM神經(jīng)網(wǎng)絡(luò)中的過(guò)擬合問(wèn)題。本文實(shí)驗(yàn)流程圖如圖6所示。
圖6 運(yùn)用LSTM的全國(guó)累計(jì)確診預(yù)測(cè)流程
本文預(yù)測(cè)評(píng)價(jià)指標(biāo)采用平均絕對(duì)百分誤差(mean absolute percentage error,MAPE)、平均絕對(duì)誤差(mean absolute error,MAE)和均方根誤差(root mean square error,RMSE)衡量:
式中,yi表示真實(shí)值;yp表示預(yù)測(cè)值;n表示待預(yù)測(cè)的新冠肺炎天數(shù),即30。
為證明本模型(Dropout-LSTM模型)的普遍適用性與優(yōu)越性,運(yùn)用ARIMA模型、LSTM模型分別對(duì)2020年8月14日?2020年9月12日的國(guó)內(nèi)累計(jì)確診、現(xiàn)有確診和累計(jì)治愈數(shù)據(jù)進(jìn)行預(yù)測(cè),并與Dropout-LSTM模型預(yù)測(cè)結(jié)果進(jìn)行對(duì)比。Dropout-LSTM模型預(yù)測(cè)值和誤差如表1所示,3種模型的可視化對(duì)比如圖7所示。
表1 全國(guó)新冠肺炎發(fā)展趨勢(shì)預(yù)測(cè)
誤差為預(yù)測(cè)值與真實(shí)值之差。誤差為負(fù),代表預(yù)測(cè)值小于真實(shí)值;誤差為正,代表預(yù)測(cè)值大于真實(shí)值。本文針對(duì)30天的數(shù)據(jù)進(jìn)行預(yù)測(cè),當(dāng)預(yù)測(cè)日期后移時(shí),將預(yù)測(cè)日期之前的數(shù)據(jù)加進(jìn)來(lái)。若僅用當(dāng)前數(shù)據(jù)去預(yù)測(cè)未來(lái)兩個(gè)月甚至更久,從表3可看出誤差有惡化趨勢(shì),選擇適當(dāng)?shù)念A(yù)測(cè)天數(shù)和日漸增多的數(shù)據(jù)量可解決誤差趨勢(shì)惡化問(wèn)題。
若僅預(yù)測(cè)30天的數(shù)據(jù),惡化程度是可控的,誤差會(huì)固定在一定區(qū)間,對(duì)基數(shù)較大的累計(jì)確診數(shù)和累計(jì)治愈,數(shù)據(jù)誤差區(qū)間為[?25,?5]和[?43,8],基數(shù)較小的現(xiàn)有確診誤差僅為[?4,2]。隨著新冠肺炎數(shù)據(jù)量增多,神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)也會(huì)更加準(zhǔn)確。
由圖7可明顯看出,累計(jì)確診和累計(jì)治愈真實(shí)值總體呈上升趨勢(shì),現(xiàn)有確診真實(shí)值呈下降趨勢(shì)。
圖7 新冠肺炎預(yù)測(cè)效果
對(duì)3組數(shù)據(jù)分別進(jìn)行預(yù)測(cè)時(shí),ARIMA模型預(yù)測(cè)曲線與真實(shí)值曲線差別均較大,擬合效果較差。這是因?yàn)锳RIMA模型網(wǎng)絡(luò)結(jié)構(gòu)較簡(jiǎn)單,非線性擬合能力較弱。LSTM模型擬合效果次之,這是因?yàn)殡m然LSTM神經(jīng)網(wǎng)絡(luò)對(duì)時(shí)序數(shù)據(jù)有較好的擬合能力,但是出現(xiàn)了過(guò)擬合問(wèn)題,無(wú)論如何調(diào)參,測(cè)試集的準(zhǔn)確度依然不高。Dropout-LSTM模型預(yù)測(cè)曲線與真實(shí)值曲線最接近,尤其是在現(xiàn)有確診預(yù)測(cè)中,幾乎與真實(shí)值曲線重合,這是因?yàn)樘砑覦ropout技術(shù)后解決了LSTM神經(jīng)網(wǎng)絡(luò)中的過(guò)擬合問(wèn)題,從而提高了準(zhǔn)確度。
為進(jìn)一步說(shuō)明Dropout-LSTM模型具有較高的擬合能力,采用ARIMA模型、LSTM模型和Dropout-LSTM模型對(duì)3組數(shù)據(jù)分別進(jìn)行預(yù)測(cè),表2對(duì)其MAPE、MAE和RMSE進(jìn)行了對(duì)比。
表2 評(píng)價(jià)指標(biāo)對(duì)比
從模型角度看,Dropout-LSTM模型的MAPE、MAE和RMSE在3組數(shù)據(jù)中均有明顯下降,說(shuō)明誤差降低,準(zhǔn)確率提高,排除了只對(duì)一組數(shù)據(jù)有較好預(yù)測(cè)效果的可能。這是因?yàn)镈ropout技術(shù)使神經(jīng)元按照一定概率失活,神經(jīng)網(wǎng)絡(luò)不會(huì)偏向于某一個(gè)節(jié)點(diǎn),從而使每一個(gè)節(jié)點(diǎn)的權(quán)重不會(huì)過(guò)大,減輕了LSTM神經(jīng)網(wǎng)絡(luò)的過(guò)擬合現(xiàn)象,提高了預(yù)測(cè)準(zhǔn)確度。從時(shí)間角度看,LSTM模型訓(xùn)練時(shí)間最短,這是因?yàn)長(zhǎng)STM神經(jīng)網(wǎng)絡(luò)共享參數(shù),節(jié)省了訓(xùn)練時(shí)間;而Dropout-LSTM模型比LSTM模型訓(xùn)練時(shí)間長(zhǎng),這是因?yàn)樯窠?jīng)元按照隨機(jī)概率失活后,神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)變得更“粗糙”,為使曲線更平滑地到達(dá)理想值,收斂到全局最優(yōu),增加了訓(xùn)練時(shí)間。
雖然向LSTM模型中接入Dropout技術(shù)增加了網(wǎng)絡(luò)訓(xùn)練時(shí)間,但是隨著數(shù)據(jù)量增多,需要的網(wǎng)絡(luò)層數(shù)、訓(xùn)練輪數(shù)會(huì)相應(yīng)減少,過(guò)擬合問(wèn)題也會(huì)減輕,使網(wǎng)絡(luò)訓(xùn)練在可接受的時(shí)間內(nèi)完成。
本文提出的運(yùn)用Dropout-LSTM模型預(yù)測(cè)新冠肺炎發(fā)展趨勢(shì)的方法,通過(guò)網(wǎng)絡(luò)爬蟲技術(shù)獲取新冠肺炎數(shù)據(jù)用于實(shí)驗(yàn),解決了人工搜集方法的不足,提高了數(shù)據(jù)收集速度;構(gòu)建層數(shù)更多的LSTM神經(jīng)網(wǎng)絡(luò)用于國(guó)內(nèi)累計(jì)確診、現(xiàn)有確診和累計(jì)治愈的預(yù)測(cè),在此基礎(chǔ)上引入Dropout技術(shù)對(duì)神經(jīng)元進(jìn)行隨機(jī)概率失活,有效避免了神經(jīng)網(wǎng)絡(luò)過(guò)擬合問(wèn)題,充分挖掘了數(shù)據(jù)的時(shí)序性與非線性關(guān)系。通過(guò)全國(guó)累計(jì)確診、現(xiàn)有確診和累計(jì)治愈人數(shù)驗(yàn)證了運(yùn)用Dropout-LSTM模型對(duì)新冠肺炎趨勢(shì)預(yù)測(cè)是完全可行的,并且準(zhǔn)確度較高。