張磊,余粟
(1.上海工程技術(shù)大學機械與汽車工程學院上海 201620;2.上海工程技術(shù)大學工程實訓中心,上海 201620)
截至2021年8月末,全球新冠肺炎確診病例為2.123 5億,累計死亡高達443萬例。國內(nèi)外研究人員通過對網(wǎng)上發(fā)布的確證病例數(shù)據(jù)進行分析,建立模型預測疫情病例數(shù)量及趨勢,這對醫(yī)療系統(tǒng)調(diào)整各種防疫措施具有重要的指導作用。
目前,主流預測方法包括傳播動力學模型、傳統(tǒng)時間序列模型及BP神經(jīng)網(wǎng)絡模型。傳播動力學模型包括SIR模型、SEIR模型等,該類模型依托疫情爆發(fā)早期的數(shù)據(jù)對趨勢作出預測。范如國等利用SIR模型和SEIR模型對新冠疫情進行預測,并通過模型分析不同防疫措施對疫情發(fā)展的影響,但該類模型無法根據(jù)疫情發(fā)展過程中的數(shù)據(jù)進行預測,參數(shù)設定相對固定,忽視了參數(shù)以外因素對疫情發(fā)展的影響,局限性較大。傳統(tǒng)時間序列模型主要包括雙指數(shù)平滑模型(Holt)、三指數(shù)平滑模型(Holt-Winter)等。林挺葵等使用Holt模型對粵西地區(qū)疫情進行預測,并針對疫情發(fā)展提出了相關(guān)防疫建議。黃曉亮等使用Holt-Winter模型對疫情期間廣東省住院量進行分析,較為準確地預測了住院人次的變化趨勢。BP神經(jīng)網(wǎng)絡是最常見的人工智能模型,現(xiàn)已被廣泛應用于非線性預測領(lǐng)域。黃琦琦等使用該方法對新冠肺炎疫情進行時間序列預測的效果較好,但BP神經(jīng)網(wǎng)絡易陷入局部最優(yōu),精度較差。
由于本文實驗數(shù)據(jù)來源于疫情發(fā)展一年多后的近期數(shù)據(jù),不符合傳播動力學模型的使用條件,故使用BP神經(jīng)網(wǎng)絡和傳統(tǒng)時間序列模型進行預測。然而,2021年國內(nèi)疫情控制較好,且相當一部分數(shù)據(jù)為境外輸入人員,考慮到數(shù)據(jù)的可用性及時效性,選擇美國公開數(shù)據(jù)進行實驗。為了解決BP神經(jīng)網(wǎng)絡易陷入局部最優(yōu)解的問題,本文提出利用粒子群算法(Particle Swarm Optimization,PSO)優(yōu)化BP神經(jīng)網(wǎng)絡。
指數(shù)平滑法是由移動平均法改進而來的時間序列分析方法,現(xiàn)已廣泛應用于預測傳染性疾病。通過對歷史數(shù)據(jù)賦予不同的權(quán)值以針對性的提取數(shù)據(jù)信息,能夠充分體現(xiàn)近期數(shù)據(jù)對預測數(shù)據(jù)的影響。目前,指數(shù)平滑模型主要分為單指數(shù)平滑模型、雙指數(shù)平滑模型(Holt模型)和三指數(shù)平滑模型(Holt-Winter模型)。但由于單指數(shù)平滑模型和三指數(shù)平滑模型適用于季節(jié)性序列,因此本文選用雙指數(shù)平滑模型進行實驗。
BP神經(jīng)網(wǎng)絡是一種多層前饋神經(jīng)網(wǎng)絡,主要由輸入層、隱層和輸出層構(gòu)成,如圖1所示。
Fig.1 BPneural network structure圖1 BP神經(jīng)網(wǎng)絡結(jié)構(gòu)
其中,單個隱層神經(jīng)元輸出為:
輸出神經(jīng)元的值為:
在使用BP神經(jīng)網(wǎng)絡模型進行實驗前,需對數(shù)據(jù)進行歸一化處理,以減少時間損耗。計算公式如式(3):
y
為數(shù)據(jù)輸出值,x
為原始數(shù)據(jù)輸入,X
為原始數(shù)據(jù)的最小值,X
為原始數(shù)據(jù)的最大值。粒子群優(yōu)化算法是應用十分廣泛的最小二乘優(yōu)化算法,其核心思想是將“群體”內(nèi)的“粒子”視為問題的解,每個粒子都具有各自的位置和速度,通過粒子與粒子間及粒子與群體間的信息共享,經(jīng)多次迭代得到最優(yōu)適應度,具體算法描述如下:
假設一個D
維空間內(nèi)有N
個粒子,i
=1,2,...,N
,其中第i
個粒子的位置為X
=(xi,xi,…,xi),第i
個粒子的速度為V
=(vi,vi,…,vi),當前第i
個粒子的最優(yōu)值為P
=(pi,pi,…,pi),當前群體的最優(yōu)值為P
=(pi,pi,…,pi)。在迭代的過程中,通過當前適應度值確定個體最優(yōu)值和群體最優(yōu)值,然后根據(jù)式(4)、式(5)計算當前粒子的速度和位置:b
、b
表示學習因子,v
、v
為[0,1]內(nèi)的隨機數(shù),ω
為慣性權(quán)重。當ω
較大時,算法全局收斂性較好;當ω
較小時,算法具有較好的局部搜索特性。如圖2所示,利用PSO算法先行計算BP神經(jīng)網(wǎng)絡的初始權(quán)值等參數(shù),可在一定程度上避免BP神經(jīng)網(wǎng)絡易陷入局部最優(yōu)的問題。改進后模型的訓練流程如下:
步驟1:確定BP神經(jīng)網(wǎng)絡的輸入層、隱層和輸出層的個數(shù)。
步驟2:將BP神經(jīng)網(wǎng)絡各層的連結(jié)參數(shù)輸入PSO算法的適應度函數(shù)中,設定BP神經(jīng)網(wǎng)絡訓練結(jié)果的均方誤差(MSE)為算法適應度值。
步驟3:初始化粒子群個數(shù)、粒子個體的速度、位置和邊界大小。
步驟4:計算各粒子的適應度。
步驟5:計算個體和群體極值,并與當前適應度值進行對比,保留最小值。
步驟6:根據(jù)式(4)、式(5)計算粒子當前的速度和位置并更換當前值。
步驟7:轉(zhuǎn)到步驟4,直至滿足條件后停止。
步驟8:當程序達到預設迭代次數(shù)或找到最佳極值后,將權(quán)值、閥值和偏置參數(shù)賦值于BP神經(jīng)網(wǎng)絡。
步驟9:使用優(yōu)化后的BP神經(jīng)網(wǎng)絡進行訓練,計算模型誤差。
步驟10:反向傳播誤差并獲取各層誤差信號,通過梯度下降法調(diào)整各層間參數(shù),使誤差達到最小。
步驟11:不斷調(diào)整各層參數(shù),當達到預設的迭代次數(shù)或滿足誤差條件后停止訓練并輸出結(jié)果。
將美國明尼蘇達州2021年7月7日至8月25日共50天的新冠肺炎累計死亡和累計確診人數(shù)作為原始數(shù)據(jù),數(shù)據(jù)來源于USAFacts(https://usafacts.org/issues/coronavirus/)??紤]到數(shù)據(jù)由時間先后順序排列而成,通常利用已有數(shù)據(jù)進行建模以預測未來數(shù)據(jù),具體操作如下:
假設時間序列為X,i=1,2,3,...,N
,利用前t個數(shù)據(jù)預測第t+1個數(shù)據(jù)的具體方法如表1所示。經(jīng)多次實驗,當自回歸階數(shù)取4時,即用前4天的數(shù)據(jù)預測第5天的確診人數(shù)預測精度最高。Table1 Construction method of data set表1 數(shù)據(jù)集構(gòu)造方法
b
=b
=1.7,慣性權(quán)重ω
=0.6,粒子群個數(shù)為20,迭代次數(shù)為200,粒子最大速度V
為1,最小速度V
為-1,粒子閥值范圍為[-5,5]。Fig.2 Flow of PSO-BPmodel圖2 PSO-BP模型流程
3.3.1 累計死亡人數(shù)
3種模型的預測結(jié)果如表2所示,由于人數(shù)為整數(shù),因此對實驗預測數(shù)據(jù)進行取整操作。圖3為預測結(jié)果繪趨勢圖。
Table 2 Forecast results of cumulative deaths in Minnesota表2 明尼蘇達州累計死亡人數(shù)預測結(jié)果
Fig.3 Forecasting trend of cumulative deaths in Minnesota圖3 明尼蘇達州累計死亡人數(shù)預測趨勢
由圖3可見,3種模型的預測結(jié)果都較為理想,從趨勢圖中難以分析它們在精度上的差異。為此,根據(jù)式(7)計算模型的平均誤差百分比(MAPE)和最大誤差百分比。其中,Holt模型的MAPE和最大誤差百分比分別為0.031%和0.087%;BP模型分別為0.028%和為0.082%;PSO-BP模型分別為0.021%和0.078%。由此可見,兩種神經(jīng)網(wǎng)絡模型的MAPE和最大誤差百分比均低于Holt模型,且PSO-BP的性能最好,MAPE和最大百分比相較于BP神經(jīng)網(wǎng)絡分別降低了0.007%和0.004%;相較于Hlot分別降低了0.01%和0.009%。整體而言,PSO-BP模型的預測精度最高。
3.3.2 累計確診人數(shù)
同樣使用3種模型對明尼蘇達州累計確診人數(shù)進行預測,具體數(shù)據(jù)如表3所示,趨勢圖如圖4可見。
Fig.4 Estimated cumulative number of confirmed cases in Minnesota圖4 明尼蘇達州累計確診人數(shù)預測結(jié)果
由表3、圖4可知,Holt模型的平均誤差百分比(MAPE)和最大誤差百分比分別為0.082%和0.439%;BP模型分別為0.043%和為0.456%;PSO-BP模型分別為0.033%和0.165%。其中,Holt的最大百分比相較于BP模型更小但差距不大,PSO-BP的平均誤差百分比相較于BP降低了0.01%,相較于Holt降低了0.049%;絕對誤差百分比相較于BP降低了0.291%,相較于Holt降低了0.274%。整體而言,在累計確診人數(shù)的預測上,PSO-BP模型的表現(xiàn)依然優(yōu)于另外兩種模型。
為進一步對比模型間的性能差異及評價模型的預測效果,采用了平均絕對誤差(MAE)和均方根誤差(RMSE)作為性能評價指標,如式(7)-式(9)所示:
Table3 Estimated cumulative number of confirmed cases in Minnesota表3 明尼蘇達州累計確診人數(shù)預測結(jié)果
表4為使用MAE、RMSE計算明尼蘇達州累計死亡人數(shù)和累計確診人數(shù)預測結(jié)果的偏差情況。由表4可見,在累計死亡人數(shù)預測結(jié)果中,PSO-BP的MAE和RMSE相較于BP模型分別降低了24.634%和19.648%;相較于Holt模型分別降低了34.063%和29.378%。在累計確診人數(shù)預測結(jié)果中,PSO-BP的MAE和RMSE相較于BP模型分別降低了23.648%和39.597%;相較于Holt模型分別降低了59.632%和59.012%。由此可見,PSO-BP模型的性能均為最優(yōu)。為更直觀地對比性能分析結(jié)果,根據(jù)表4構(gòu)建模型性能雷達圖,如圖5所示。
Table4 Minnesota performance index calculation results表4 明尼蘇達州性能指標計算結(jié)果
Fig.5 Minnesota model performance indicator radar chart圖5 明尼蘇達州模型性能指標雷達圖
為了進一步檢驗模型的精確度和適應性,將3種模型分別用于預測美國亞利桑那州和密歇根州2021年7月11日至8月25日的累計死亡和累計確診人數(shù),趨勢圖如圖6所示,具體性能指標如表5、表6所示。
由圖6可見,PSO-BP模型對兩地的人數(shù)預測基本都符合實際發(fā)展趨勢。由表5、表6可知,在對亞利桑那州和密歇根州累計和確診人數(shù)的預測中,PSO-BP模型的3項性能指標均為最優(yōu)。其中,MAPE指標相較于BP模型和Holt分別平均降低了0.012%和0.043%;MAE和RMSE相較于BP模型分別平均降低了14.696%和19.850%,相較于Holt分別平均降低了36.826%和28.046%。由此可見,PSO-BP模型的預測精度和適應性最佳。
Fig.6 Minnesota and Michigan forecast results圖6 亞利桑那州和密歇根州預測結(jié)果
Table5 Arizona performance indicator calculation results表5 亞利桑那州性能指標計算結(jié)果
Table6 Michigan performance indicator calculation results表6 密歇根州性能指標計算結(jié)果
針對傳統(tǒng)時間序列模型精度上的不足及傳統(tǒng)BP神經(jīng)網(wǎng)絡易陷入局部最優(yōu)的缺陷,利用粒子群優(yōu)化BP神經(jīng)網(wǎng)絡模型,該模型具有PSO算法的全局收斂性和神經(jīng)網(wǎng)絡的自學習特性。實驗結(jié)果表明,PSO-BP的預測性能優(yōu)于基準模型,預測精度較高、適應度較好。由于本文所用模型需要先使用PSO對BP神經(jīng)網(wǎng)絡的初始權(quán)值和閥值進行計算尋優(yōu),再使用優(yōu)化后的參數(shù)訓練神經(jīng)網(wǎng)絡,在這個過程中會導致整體迭代次數(shù)增加,當處理體量較大的數(shù)據(jù)時模型迭代時間較長。為此,需要根據(jù)實際情況對模型進行簡化以提升運行的效率。