黃凌霄,廖一鵬,鄭秀蘭
(1.陽光學(xué)院人工智能學(xué)院,福建 福州 350015;2.福州大學(xué)物理與信息工程學(xué)院,福建 福州 350015;3.福建省龍巖市氣象局,福建 龍巖 364000)
時(shí)間序列在日常生活中屢見不鮮,如股票價(jià)格、居民消費(fèi)價(jià)格指數(shù)、各年度國內(nèi)生產(chǎn)總值,以及各類食品的價(jià)格等都是隨時(shí)間變化的數(shù)據(jù)序列。時(shí)間是永恒不變的變量,且各變量本身或變量與變量之間的不明確的變化關(guān)系,使得時(shí)間序列的處理難度大。時(shí)間序列分析方法是預(yù)測領(lǐng)域中的重要工具之一,它主要通過建立相關(guān)模型描述歷史數(shù)據(jù)隨時(shí)間動(dòng)態(tài)變化的規(guī)律以預(yù)測未來的值[1-3]?;疑到y(tǒng)理論作為一種專門研究含不確定因素的系統(tǒng)的新方法,已被廣泛地應(yīng)用到時(shí)間序列的預(yù)測當(dāng)中。同時(shí),新生的量子神經(jīng)網(wǎng)絡(luò)在尋找時(shí)間序列的變化方式和演化規(guī)律方面已經(jīng)逐步取代了傳統(tǒng)的預(yù)測方法。
1982年鄧聚龍教授提出了灰色系統(tǒng)理論,該理論被用來解決產(chǎn)量的預(yù)測,指標(biāo)的評價(jià),價(jià)格的變化與控制等問題[4-5]?;诨疑到y(tǒng)理論,研究者們提出了GM(1,1),GGM(1,1),DGM(1,1)等預(yù)測模型,逐步改善了均質(zhì)指數(shù)模擬偏差、原始方程與白方程之間的不平衡轉(zhuǎn)換、預(yù)測不夠穩(wěn)定等問題[6]。在生產(chǎn)生活中,張恩路等將灰色理論運(yùn)用到求解漂移型價(jià)格的最優(yōu)解的問題中[7];在理論研究方面,郝艷捧等基于灰色關(guān)聯(lián)分析建立了質(zhì)量評價(jià)體系;在數(shù)據(jù)預(yù)測方面[8],張和平等提出灰色關(guān)聯(lián)度分析的組合預(yù)測模型并應(yīng)用到GDP預(yù)測中[9],曾波等通過數(shù)學(xué)建模方法實(shí)現(xiàn)了對小樣本振蕩數(shù)據(jù)取值范圍的模擬與預(yù)測[10]。
神經(jīng)網(wǎng)絡(luò)作為一種基于誤差反向傳播的多層前饋網(wǎng)絡(luò)技術(shù),對時(shí)間序列預(yù)測有著特殊的作用[11]。張思源等利用BP神經(jīng)網(wǎng)絡(luò)建立了預(yù)測模型,解決了鋼鐵冶煉能耗高的問題[12];黃俊銘等通過RBF神經(jīng)網(wǎng)絡(luò)有效地模擬了綜合負(fù)荷功率的動(dòng)態(tài)微分變化過程[13];關(guān)海鷗等基于量子神經(jīng)網(wǎng)絡(luò),成功解決了農(nóng)村低電網(wǎng)中不能檢測出殘留電流和電路故障的難題[14]。
單一預(yù)測模型由于自身的限制,影響了預(yù)測結(jié)果,對此,許多學(xué)者提出了組合模型。張敬祎等建立基于時(shí)間序列與灰色理論的油料組合預(yù)測模型,預(yù)測精度更高、誤差更小[15];楊利納等提出灰色遺傳BP神經(jīng)網(wǎng)絡(luò),對校園區(qū)間需水進(jìn)行預(yù)測,驗(yàn)證了可行性[16];張水等將灰色-RBF網(wǎng)絡(luò)模型用于瓦斯涌出量預(yù)測,預(yù)測精度明顯高于單一模型預(yù)測[17]。但是傳統(tǒng)神經(jīng)網(wǎng)絡(luò)有收斂速度慢、易陷入局部最優(yōu)且訓(xùn)練結(jié)果不穩(wěn)定等缺點(diǎn),新興的量子神經(jīng)網(wǎng)絡(luò)融合了量子計(jì)算的并行特性和神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn)[18],增強(qiáng)了計(jì)算能力和自適應(yīng)能力,具有較好的網(wǎng)絡(luò)收斂效果和預(yù)測能力。
本文結(jié)合灰色系統(tǒng)理論、神經(jīng)網(wǎng)絡(luò)與時(shí)間序列預(yù)測,建立灰色關(guān)聯(lián)分析與量子門節(jié)點(diǎn)神經(jīng)網(wǎng)絡(luò)的組合模型,分析模型的合理性,通過實(shí)例驗(yàn)證了該模型的有效性和可行性,為時(shí)間序列預(yù)測提供了新的思路和方向。
灰色系統(tǒng)理論是一種研究少數(shù)據(jù)、貧信息、不確定性問題的新方法,已成為許多領(lǐng)域進(jìn)行系統(tǒng)分析、建模、預(yù)測、決策、控制的新思路?;疑P(guān)聯(lián)分析是灰色系統(tǒng)理論中最活躍的一個(gè)分支,其基本思想是根據(jù)參考序列與比較序列的曲線形狀的接近程度做變化趨勢分析,曲線越接近, 則兩序列的關(guān)聯(lián)度就越高,反之則越小?;疑P(guān)聯(lián)分析由于自身計(jì)算量小、適應(yīng)性強(qiáng)以及原理簡單等優(yōu)勢,使得它的發(fā)展速度遠(yuǎn)超過灰色系統(tǒng)的其他分支,更被普遍地應(yīng)用到生活中。
王世元等對灰色關(guān)聯(lián)分析的原理和計(jì)算方法進(jìn)行了充分討論[19],主要計(jì)算步驟如下:
1)初值像矩陣相減得差序列為:
Δ0i(k)=|x′0(k)-x′i(k)|
(1)
其中,各變量分別由以下公式計(jì)算得到:
xi=(xi(1),xi(2),…,xi(k),…)
(2)
x′i=(xi(1)/xi(1),xi(2)/xi(1),…,xi(k)/xi(1),…)=
(x′i(1),x′i(2),…,x′i(k),…) (i=0,1,2,…,m)
(3)
Δ0i(k)=(Δ0i(1),Δ0i(2),…,Δ0i(k),…) (i=1,2,…,m)
(4)
其中,xi(k)表示i因素的第k個(gè)原始數(shù)據(jù),x′i表示原始數(shù)據(jù)的像矩陣。
2)關(guān)聯(lián)度計(jì)算為:
(5)
傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)以其獨(dú)特的優(yōu)勢已經(jīng)被成功地應(yīng)用到很多領(lǐng)域。然而,隨著信息處理量和復(fù)雜度的不斷增加,人工神經(jīng)網(wǎng)絡(luò)的訓(xùn)練能力差、計(jì)算速度不夠高等缺點(diǎn)已不能滿足要求,20世紀(jì)90年代美國路易斯安那州立大學(xué)的Kak教授提出了量子神經(jīng)網(wǎng)絡(luò),該算法結(jié)合了量子計(jì)算和神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn),收斂速度快,更好地解決了現(xiàn)代科學(xué)研究信息量大、數(shù)據(jù)復(fù)雜等問題。之后,很多思想和模型不斷被提出,如量子人工神經(jīng)網(wǎng)絡(luò)、量子衍生神經(jīng)網(wǎng)絡(luò)、量子點(diǎn)神經(jīng)網(wǎng)絡(luò)、基于量子通用門神經(jīng)網(wǎng)絡(luò)和量子門節(jié)點(diǎn)神經(jīng)網(wǎng)絡(luò)模型等。其中,量子門節(jié)點(diǎn)神經(jīng)網(wǎng)絡(luò)是一種具有代表性的新型量子神經(jīng)網(wǎng)絡(luò),本文將它與梯度下降學(xué)習(xí)算法相結(jié)合,尋找待研究參變量的最優(yōu)值。
圖1 量子門節(jié)點(diǎn)神經(jīng)網(wǎng)絡(luò)圖Fig.1 Diagram of quantum gate node neural network
量子門節(jié)點(diǎn)神經(jīng)網(wǎng)絡(luò)[20]的原理如圖1所示。圖中|x1>,|x2>,...,|xn>為輸入,|h1>,|h2>,...,|hp>為隱含層輸出,|y1>,|y2>,...,|ym>為網(wǎng)絡(luò)輸出。
1)令輸入樣本的量子態(tài)為:
(6)
2)根據(jù)量子旋轉(zhuǎn)門與多位受控門可得:
(8)
(11)
3)若以各層量子位的狀態(tài)|1〉作為本層的實(shí)際輸出,則各層實(shí)際輸出為:
(12)
(13)
圖2 量子門節(jié)點(diǎn)神經(jīng)網(wǎng)絡(luò)算法流程圖Fig.2 Flow chart of quantum gate node neural network algorithm
本文利用梯度下降法實(shí)現(xiàn)量子門節(jié)點(diǎn)神經(jīng)網(wǎng)絡(luò)的計(jì)算,建立網(wǎng)絡(luò)模型,精確定位和計(jì)算量子門節(jié)點(diǎn)神經(jīng)網(wǎng)絡(luò)隱含層幅角偏置矩陣θ和網(wǎng)絡(luò)輸出層幅角偏置矩陣φ的全局最優(yōu)解,實(shí)現(xiàn)流程圖如圖2所示,具體步驟如下。
1)輸入樣本歸一化以及網(wǎng)絡(luò)參數(shù)初始化
首先,有T0個(gè)輸入樣本的量子幅角矩陣為:
(14)
2)計(jì)算量子門節(jié)點(diǎn)神經(jīng)網(wǎng)絡(luò)的輸出。對于r=1→T0,有:
(16)
3)計(jì)算神經(jīng)網(wǎng)絡(luò)的誤差,采用Frobenius范數(shù)表示為:
4)誤差反向傳播計(jì)算。
首先,對于r=1→m,E對φ的第r列的偏導(dǎo)數(shù)為:
(17)
其中,Ω為p×T0的中間變量矩陣:
(18)
其次,對于r=1→p,E對θ的第r列的偏導(dǎo)數(shù)為:
(19)
其中,ω為1×T0的中間變量矩陣:
ω=sum[cot(Im×1×arcsinH(r,:))+(φ(r,:)T×I1×T0)?(Y-D)?Y]
(20)
5)根據(jù)梯度下降法更新θ和φ,見公式(21)和公式(22),其中,α表示學(xué)習(xí)步長。
(22)
6)判斷是否達(dá)到迭代結(jié)束條件,若是,則退出循環(huán);否則,轉(zhuǎn)至第2步繼續(xù)循環(huán)。
為充分發(fā)揮灰色關(guān)聯(lián)分析與量子門節(jié)點(diǎn)神經(jīng)網(wǎng)絡(luò)各自的優(yōu)勢,將二者結(jié)合起來分析和預(yù)測給定時(shí)間序列的變化情況。實(shí)現(xiàn)流程圖如圖3所示,具體步驟如下:
圖3 預(yù)測算法流程圖Fig.3 Flow chart of predictive algorithm
Step 1將待研究時(shí)間序列X1和影響因素序列X2、X3、…、Xn整合起來,組成一個(gè)列為樣本,行為指標(biāo)的待處理原始數(shù)據(jù)序列Data0。
Step 2對Data0進(jìn)行灰色關(guān)聯(lián)分析,顯示并分析各影響因素與待研究時(shí)間序列的關(guān)聯(lián)度的大小,并對關(guān)聯(lián)度進(jìn)行排序得到灰色關(guān)聯(lián)序。
Step 3為更直觀地觀察待研究時(shí)間序列與各影響因素的關(guān)系,根據(jù)Data 0做出X1與X2、X3、....、Xn的變化率曲線圖。
Step 4根據(jù)灰色關(guān)聯(lián)序,判斷并刪除小于關(guān)聯(lián)度閾值為0.8的原始數(shù)據(jù)列(一般關(guān)聯(lián)度大于等于0.8時(shí),待研究時(shí)間序列與各影響因素關(guān)聯(lián)度很好),并將Data0更新為Data1。
Step 5以Data1為有效信息資源,導(dǎo)入量子門節(jié)點(diǎn)神經(jīng)網(wǎng)絡(luò)進(jìn)行充分學(xué)習(xí)和訓(xùn)練,計(jì)算預(yù)測結(jié)果Y1和預(yù)測誤差α1,并記錄運(yùn)算時(shí)間T1。
Step 6以Data0為有效信息資源,導(dǎo)入量子神經(jīng)網(wǎng)絡(luò)進(jìn)行充分學(xué)習(xí)和訓(xùn)練,計(jì)算預(yù)測結(jié)果Y2和預(yù)測誤差α2,并記錄運(yùn)算時(shí)間T2。
Step 7以Data0為有效信息資源,分別導(dǎo)入傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)和RBF神經(jīng)網(wǎng)絡(luò)進(jìn)行學(xué)習(xí)和訓(xùn)練,計(jì)算預(yù)測結(jié)果Y3和Y4以及預(yù)測誤差α3和α4,并記錄運(yùn)算時(shí)間T3和T4。
Step 8以Data1為有效信息資源,分別導(dǎo)入傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)和RBF神經(jīng)網(wǎng)絡(luò)進(jìn)行學(xué)習(xí)和訓(xùn)練,計(jì)算預(yù)測結(jié)果Y5和Y6以及預(yù)測誤差α5和α6,并記錄運(yùn)算時(shí)間T5和T6。
Step 9通過列表定量分析、對比Step 5、Step 6、Step 7、Step 8所得的結(jié)果,并得出結(jié)論。
以我國城市居民消費(fèi)體系價(jià)格指數(shù)(CPI)為研究對象,硬件平臺為AMD Ryzen 5 2500U with Radeon Vega Mobile Gfx 2.0GHz、8.00GB(RAM),軟件環(huán)境為Windows 10 Matlab R2014b。通過實(shí)驗(yàn)驗(yàn)證本算法的性能,并對實(shí)驗(yàn)結(jié)果進(jìn)行深入的分析和對比。
以我國2017年2月至2018年2月的城市居民消費(fèi)體系價(jià)格指數(shù)(CPI)為研究對象(Data0),完整數(shù)據(jù)如表1所示。
以城市居民消費(fèi)價(jià)格指數(shù)X1作為參考序列,以影響CPI的8個(gè)影響因素(X2~X9)作為對比序列。根據(jù)上述灰色關(guān)聯(lián)度的計(jì)算方法,求出CPI與各影響因素之間的關(guān)聯(lián)度,并得到大小順序,結(jié)果如表2所示。
同時(shí)做出參考序列與對比序列的變化率曲線圖,圖4為CPI與影響因素X2~X5的變化率曲線圖,圖5為CPI與影響因素X6~X9的變化率曲線圖。
表1 居民消費(fèi)體系價(jià)格指數(shù)(CPI)Tab.1 Consumer system price index (CPI)
表2 CPI灰色關(guān)聯(lián)分析結(jié)果Tab.2 Analysis results of CPI grey relational analysis
圖4 CPI與影響因素X2~X5的變化率曲線圖Fig.4 Change rate curve of CPI and influencing factors X2~X5
圖5 CPI與影響因素X6~X9的變化率曲線圖Fig.5 Change rate curve of CPI and influencing factors X6~X9
從得到的數(shù)據(jù)結(jié)果可以看出,本文選取的8種因素影響程度的灰色關(guān)聯(lián)序列為:X4>X5>X8>X2>X7>X3>X6>X9。在2017年2月至2018年2月期間,影響我國CPI的8種因素當(dāng)中,X4因素影響最大,X5、X8因素的影響也較顯著,X6、X9因素的影響力有限,關(guān)聯(lián)度分別只有0.787 08和0.738 74,小于關(guān)聯(lián)度閾值0.8。于是根據(jù)步驟step 4刪除二者所對應(yīng)的原始數(shù)據(jù)列,并將Data0更新為Data1。
為了對比的需要,選取樣本點(diǎn)2017年8月到2018年2月(共7個(gè)),分別以原始序列Data1和Data0作為量子門節(jié)點(diǎn)神經(jīng)網(wǎng)絡(luò)和量子神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù),進(jìn)行充分學(xué)習(xí)和訓(xùn)練,由步驟step 5和步驟step 6得到預(yù)測值分別為Y1和Y2,CPI預(yù)測值與真實(shí)值的曲線擬合結(jié)果如圖6和圖7所示。
圖6 預(yù)測值與原始數(shù)據(jù)的散點(diǎn)折線圖Fig.6 Scattered point polygraph between predicted vlue and original data
圖7 預(yù)測值與未處理原始數(shù)據(jù)的散點(diǎn)折線圖Fig.7 Scattered point polygraph between predicted value and unprocessed raw data
為了驗(yàn)證此算法的預(yù)測精確度,本文引入了誤差分析,根據(jù)預(yù)測值和實(shí)際值求出相對誤差均值,公式如下:
(23)
其中,E為相對誤差;n為預(yù)測樣本數(shù),vp為預(yù)測值;vr為真實(shí)值。
根據(jù)公式(24)可以求出預(yù)測誤差均值,記錄的平均預(yù)測誤差α1為0.289 1、α2為0.291 2,平均運(yùn)算時(shí)間為T1為49.12 s、T2為114.7 s。
為比較不同算法的預(yù)測性能,分別采用文獻(xiàn)[12]算法、文獻(xiàn)[13]算法、文獻(xiàn)[14]算法、文獻(xiàn)[16]算法、文獻(xiàn)[17]算法及本文算法對序列進(jìn)行預(yù)測,得到預(yù)測性能綜合評估分析如表3所示,以此來衡量各類算法的性能。
表3 不同算法預(yù)測性能綜合評估表Tab.3 Comprehensive evaluation table for prediction performance of different algorithms
由表3可以看出,文獻(xiàn)[12]和文獻(xiàn)[13]采用傳統(tǒng)的神經(jīng)網(wǎng)絡(luò),預(yù)測時(shí)間較短,但由于預(yù)測可持續(xù)性差導(dǎo)致平均預(yù)測誤差較大,從圖6和圖7可以看出,前期預(yù)測值曲線與真實(shí)值曲線重合度較高,后期預(yù)測值曲線的波動(dòng)逐漸變大;文獻(xiàn)[14]采用量子神經(jīng)網(wǎng)絡(luò)方法,由于算法本身需要多次迭代,故所需的預(yù)測時(shí)間較長,但平均預(yù)測誤差比傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)?。晃墨I(xiàn)[16]和文獻(xiàn)[17]采用灰色關(guān)聯(lián)與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)相結(jié)合的方法,預(yù)測時(shí)間較短,但預(yù)測誤差改進(jìn)不是很理想;本文提出的灰色關(guān)聯(lián)分析與量子門節(jié)點(diǎn)神經(jīng)網(wǎng)絡(luò)相結(jié)合的預(yù)測模型,預(yù)測時(shí)間不僅相對于單獨(dú)采用量子神經(jīng)網(wǎng)絡(luò)方法降低較多,預(yù)測誤差還更小。綜上,本算法與傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)模型相比穩(wěn)健性更高,可在有限小樣本情況下表現(xiàn)出較好的預(yù)測效果,該方法不僅降低了時(shí)間序列預(yù)測時(shí)間,還使預(yù)測誤差穩(wěn)定在可接受范圍之內(nèi)。
本文提出的灰色關(guān)聯(lián)分析與量子門節(jié)點(diǎn)神經(jīng)網(wǎng)絡(luò)的組合預(yù)測模型,通過灰色關(guān)聯(lián)分析計(jì)算時(shí)間序列的關(guān)聯(lián)度,合理刪除關(guān)聯(lián)度小于閾值的原始時(shí)間序列,以達(dá)到降低數(shù)據(jù)量的目的;以更新后的時(shí)間序列作為輸入,通過梯度下降學(xué)習(xí)算法準(zhǔn)確找到量子門節(jié)點(diǎn)神經(jīng)網(wǎng)絡(luò)的全局最優(yōu)值,對神經(jīng)網(wǎng)絡(luò)起到優(yōu)化作用;最后,得到了時(shí)間序列預(yù)測值與原始數(shù)據(jù)比較的散點(diǎn)折線圖,并記錄了預(yù)測時(shí)間和預(yù)測誤差。實(shí)驗(yàn)結(jié)果表明,與傳統(tǒng)的單一預(yù)測方法相比,在需要同時(shí)考慮時(shí)間效率和可接受預(yù)測誤差的時(shí)間序列預(yù)測中,本算法提供了一個(gè)較好的選擇。