鄺先驗(yàn), 羅會超, 鐘 蕊, 歐陽鵬
(江西理工大學(xué) 電氣工程與自動化學(xué)院,江西 贛州 341000)
在許多大型城市,人們常常把城市福利和公交出行聯(lián)系在一起。私有汽車數(shù)量、城市人口的增加和許多不確定因素導(dǎo)致傳統(tǒng)的公交到站時(shí)間預(yù)測方法準(zhǔn)確率較低,進(jìn)而影響乘車人的出行??紤]到傳統(tǒng)預(yù)測的不足在很大程度上影響大眾出行選擇和公交公司的收益。因此,尋找更加有效的公交到站時(shí)間預(yù)測方法顯得日益重要。
目前,國內(nèi)外學(xué)者對公交到站時(shí)間預(yù)測進(jìn)行多種研究,如文獻(xiàn)[1]提出將公交到站時(shí)間表現(xiàn)形式分為不同路段的運(yùn)行時(shí)間和不同站點(diǎn)的停靠時(shí)間,以及上班日和休息日的公交到站數(shù)據(jù);文獻(xiàn)[2]針對公交全球定位系統(tǒng)(GPS)數(shù)據(jù)進(jìn)行公交到站時(shí)間預(yù)測,提出了一種新型模糊隸屬度算法;胡繼華等人[3]劃分不同時(shí)段下的公交GPS數(shù)據(jù),并利用移動誤差補(bǔ)償改進(jìn)了馬爾科夫鏈預(yù)測模型;Peng Z等人[4]針對支持向量機(jī)應(yīng)用時(shí)輸入指標(biāo)之間的相關(guān)性和核函數(shù)參數(shù)標(biāo)定的不足,提出了一種基于主成分分析(principal component analysis,PCA)—遺傳算法(genetic algorithm,GA)—支持向量機(jī)(support vector machine,SVM)的預(yù)測方法,以提高公交車到達(dá)時(shí)間預(yù)測的精度;文獻(xiàn)[5]根據(jù)客流分配關(guān)系、上下車人數(shù)、車內(nèi)擁擠度、建立旅客上下車時(shí)間預(yù)測模型,再通過對比時(shí)間關(guān)系進(jìn)行回歸分析。
上述研究方法雖然在某種程度上取得了一定效果,但依舊比較傳統(tǒng),主要是第一代或第二代神經(jīng)網(wǎng)絡(luò)模型,部分神經(jīng)網(wǎng)絡(luò)自身具有局限性和適用性,因此,許多模型在更換數(shù)據(jù)種類后,仍然無法更加精準(zhǔn)地預(yù)測結(jié)果。本文在考慮時(shí)空特性的基礎(chǔ)上,采用第三代神經(jīng)網(wǎng)絡(luò)中最接近生物神經(jīng)元的Spiking神經(jīng)網(wǎng)絡(luò)(spiking neural network,SNN),考慮了時(shí)間信息的影響。同時(shí),利用搜索能力更強(qiáng)的布谷鳥搜索(cuckoo search,CS)算法優(yōu)化SNN模型初始參數(shù),進(jìn)一步提高了全局搜索能力、預(yù)測的準(zhǔn)確性和穩(wěn)定性。在公交到站時(shí)間預(yù)測的實(shí)際應(yīng)用中,預(yù)測效果相比傳統(tǒng)神經(jīng)網(wǎng)絡(luò)更好。
最近幾年,隨著人工時(shí)間網(wǎng)絡(luò)的發(fā)展,許多學(xué)者聚焦在第三代神經(jīng)網(wǎng)絡(luò)模型,例如:Spike神經(jīng)元模型的神經(jīng)網(wǎng)絡(luò)[6]。與傳統(tǒng)的神經(jīng)元傳遞函數(shù)不同,Spiking神經(jīng)元是SNN的基本單元,Spike模型根據(jù)神經(jīng)元傳遞時(shí)間點(diǎn)對信息進(jìn)行編碼,使得該模型更近似于生物神經(jīng)元。在SNN中,學(xué)習(xí)算法的選取對其性能有著至關(guān)重要的影響,除了無監(jiān)督學(xué)習(xí)算法外,文獻(xiàn)[7]中提出的SpikeProp(spike propagation,Prop)算法具有有效的監(jiān)督學(xué)習(xí)能力,本文選用其脈沖響應(yīng)模型(spike response mode,SRM) 中一種0階簡化模型SRM0當(dāng)作脈沖響應(yīng)模型[8], SRM0模型采用3層前向SNN結(jié)構(gòu),以神經(jīng)元h和i連接為例,進(jìn)一步分析任意相鄰兩個(gè)神經(jīng)元間的連接結(jié)構(gòu),如圖1所示。
圖1 神經(jīng)元間多個(gè)有延遲突觸終端的連接
(1)
(2)
(3)
(4)
雖然脈沖神經(jīng)網(wǎng)絡(luò)特有的編碼方式和多突觸結(jié)構(gòu),使其擁有良好的運(yùn)算能力和極佳的適用能力。但是,該算法仍然使用梯度信息進(jìn)行參數(shù)的重置,同樣易于陷入局部最優(yōu)解。此外,網(wǎng)絡(luò)中相鄰神經(jīng)元之間為多突觸連接,連接權(quán)值的選取存在一定的制約。因此,本文利用CS算法對SNN進(jìn)行有監(jiān)督學(xué)習(xí),克服了該算法的不足。對公交到站時(shí)間的預(yù)測結(jié)果表明:CS算法能很好地彌補(bǔ)SNN的缺陷。
通過模擬布谷鳥巢寄生育雛行為,劍橋大學(xué)楊新社和戴布 S教授提出了一種新興啟發(fā)算法:CS算法[9,10]。CS算法的關(guān)鍵參數(shù)僅為外來鳥蛋被發(fā)現(xiàn)的概率和種群數(shù)目,整個(gè)算法操作簡單、易于實(shí)現(xiàn)。作為一種通用型算法,CS 算法易于與其他算法相結(jié)合,進(jìn)而獲得性能更加優(yōu)越的混合算法[11]。
布谷鳥尋找宿主鳥巢的位置更新公式如下
(5)
(6)
根據(jù)上述過程,CS算法優(yōu)化SNN預(yù)測公交到站時(shí)間的實(shí)現(xiàn)過程如下:
Step1 首先收集公交行車歷史數(shù)據(jù),結(jié)合有代表性的數(shù)據(jù)特點(diǎn),確定神經(jīng)網(wǎng)絡(luò)的輸入、隱含層和輸出層結(jié)構(gòu)。
Step2 設(shè)置CS算法最小和最大步長、迭代次數(shù)200次、初始的概率參數(shù)Pa=0.5,在給定的空間范圍內(nèi)隨機(jī)產(chǎn)生n個(gè)鳥巢P0=(p1(0),p2(0),…,pn(0))。其中每個(gè)鳥巢代表一組將要優(yōu)化訓(xùn)練的SNN的連接權(quán)值與突觸連接的延時(shí)參數(shù),按照適應(yīng)度函數(shù)進(jìn)行計(jì)算(適應(yīng)度函數(shù)為均方差誤差函數(shù)),找到當(dāng)前最優(yōu)的鳥巢位置pb(0)。
Step4 將迭代多次的最優(yōu)質(zhì)的鳥巢pb(t+1)作為SNN的網(wǎng)絡(luò)連接權(quán)值與突觸連接的延時(shí)參數(shù),再訓(xùn)練神經(jīng)網(wǎng)絡(luò),最終輸出公交到站時(shí)間的預(yù)測結(jié)果并分析。
本文采用單個(gè)隱含層的網(wǎng)絡(luò)結(jié)構(gòu),并根據(jù)經(jīng)驗(yàn)公式計(jì)算隱含層節(jié)點(diǎn)數(shù)
(7)
式中L為隱含層神經(jīng)元數(shù),x為輸入神經(jīng)元數(shù),y為輸出神經(jīng)元數(shù),同時(shí)q取整數(shù)大于1且小于10。為了選擇最適合的L值,下文對不同神經(jīng)元數(shù)的網(wǎng)絡(luò)模型進(jìn)行預(yù)測誤差分析。
對公交站到站時(shí)間的預(yù)測誤差分析,本文使用平均絕對誤差(mean absolute error,MAE)、平均絕對百分比誤差(mean absolute percentage error,MAPE)和均方根誤差(root mean square error,RMSE)誤差分析法
(8)
(9)
(10)
式中Yi為真實(shí)數(shù)據(jù),Pi為預(yù)測數(shù)據(jù),n為預(yù)測數(shù)據(jù)個(gè)數(shù)。
以2017年中國贛州公交總站歷史記錄數(shù)據(jù)中K1公交車的數(shù)據(jù)作為研究對象,選擇3月1日到3月15日中周一至周日的全部公交到站時(shí)間點(diǎn)作為預(yù)測數(shù)據(jù),此外,分別選擇3月23日(周四)和3月25日(周六)的到站時(shí)間點(diǎn)作為測試數(shù)據(jù)。為了進(jìn)一步提高精度,先將到站時(shí)間點(diǎn)轉(zhuǎn)換為時(shí)間戳,即指格林威治時(shí)間自1970年1月1日(00∶00∶00 GMT)至當(dāng)前時(shí)間的總秒數(shù),再分別利用Elman,SNN和CS-SNN預(yù)測模型進(jìn)行仿真實(shí)驗(yàn),通過誤差對比,分析三種模型的預(yù)測性能。軟件程序在MATLAB 2018a上運(yùn)行,操作系統(tǒng)是Windows10旗艦版64位。預(yù)測流程如圖2所示。
圖2 預(yù)測流程圖
本文采用神經(jīng)網(wǎng)絡(luò)對數(shù)據(jù)進(jìn)行預(yù)測和分析,選擇3月23日(周四)和3月25日(周六)的到站時(shí)間點(diǎn)作為測試數(shù)據(jù),利用前三站的到站時(shí)刻去預(yù)測下一站到站時(shí)刻,下一次預(yù)測時(shí),用第四個(gè)時(shí)刻真實(shí)值代替的預(yù)測值進(jìn)行循環(huán)預(yù)測。
SNN 的輸入、輸出數(shù)據(jù)編碼采用Time-to-first-spike方法[12]。兩個(gè)相連神經(jīng)元之間突觸子個(gè)數(shù)m和隱含層神經(jīng)元個(gè)數(shù)均影響著SNN性能。故在測試過程中先對突觸子個(gè)數(shù)和隱含層神經(jīng)元個(gè)數(shù)進(jìn)行了探討。根據(jù)經(jīng)驗(yàn)公式選擇最佳的隱含層神經(jīng)元個(gè)數(shù),計(jì)算不同隱含層神經(jīng)元個(gè)數(shù)下的平均絕對誤差,取多次實(shí)驗(yàn)的平均值,驗(yàn)證得到最佳參數(shù)設(shè)置:算法為Spike Prop,編碼方式為Time-to-first-spike,傳遞函數(shù)為脈沖響應(yīng),輸入層神經(jīng)元個(gè)數(shù)為3,隱含層神經(jīng)元個(gè)數(shù)為8,輸出層神經(jīng)元個(gè)數(shù)為1,突觸子連接數(shù)為16,PSP衰減時(shí)間常數(shù)τ為6 ms,激發(fā)閾值θ為1 mV,算法的迭代步長為0.1 ms,網(wǎng)絡(luò)學(xué)習(xí)率η為0.05。
為了增加實(shí)驗(yàn)結(jié)果的穩(wěn)定性,分別對每種預(yù)測模型進(jìn)行10次實(shí)驗(yàn),預(yù)測結(jié)果取10次實(shí)驗(yàn)的平均值。將訓(xùn)練數(shù)據(jù)的均方誤差作為子種群的適應(yīng)度函數(shù),對比CS算法和粒子群算法適應(yīng)度曲線變化,如圖3所示。
圖3 CS和粒子群算法優(yōu)化適應(yīng)度對比
由圖3可知,在到站時(shí)刻預(yù)測中CS優(yōu)化算法的適應(yīng)度下降速度明顯大于粒子群算法,且下降過程波動性更小。
取工作日公交行駛數(shù)據(jù)分別代入網(wǎng)絡(luò)進(jìn)行預(yù)測,用實(shí)際值減去預(yù)測值,進(jìn)一步分析誤差如圖4和表1所示。
圖4 工作日到站預(yù)測誤差
表1 不同優(yōu)化算法預(yù)測誤差
由圖4和表1可知,CS-SNN模型預(yù)測誤差最小,預(yù)測值更加準(zhǔn)確。
同理,取周末公交行駛數(shù)據(jù)分別代入網(wǎng)絡(luò)進(jìn)行預(yù)測,用實(shí)際值減去預(yù)測值,進(jìn)一步分析誤差如圖5和表2所示。
圖5 周末到站預(yù)測誤差
表2 不同優(yōu)化算法預(yù)測誤差
由圖5和表2可知,同樣是CS-SNN模型預(yù)測誤差最小,預(yù)測值更加準(zhǔn)確。
本文利用公交歷史實(shí)測數(shù)據(jù)對未來短期公交到站時(shí)間進(jìn)行預(yù)測,并分析工作日和周末兩個(gè)時(shí)間段預(yù)測模型的性能。結(jié)果表明CS-SNN模型,相比于傳統(tǒng)網(wǎng)絡(luò)模型,對公交到站時(shí)間預(yù)測有良好的效果,無論是工作日還是周末均可做到精準(zhǔn)的預(yù)測,其精度明顯高于未優(yōu)化的SNN,是一種更加有效的公交到站時(shí)間預(yù)測方法。
1)利用贛州市K1公交車歷史記錄數(shù)據(jù)對Elman,SNN,CS-SNN三種預(yù)測模型性能進(jìn)行對比分析。通過測試結(jié)果可以看出:SNN比傳統(tǒng)的預(yù)測模型精確度更高。
2)布谷鳥優(yōu)化算法彌補(bǔ)了SNN預(yù)測中易陷入局部最優(yōu)等缺陷,使得模型對非線性數(shù)據(jù)處理能力更強(qiáng)、穩(wěn)定性更好、適用性較高,預(yù)測效果得到進(jìn)一步提升。
3)從輸入數(shù)據(jù)的角度分析,公交到站預(yù)測模型仍然具有研究空間。目前的研究主要集中在運(yùn)行時(shí)間和運(yùn)行路線兩種因素,此外如何有效結(jié)合道路情況、天氣氣候等因素,也將是提高到站時(shí)間預(yù)測精度的方向。