陳園園
(北京城建設(shè)計(jì)發(fā)展集團(tuán)股份有限公司 北京 100037)
與公路交通相比,城市軌道交通系統(tǒng)憑借自身優(yōu)勢正在快速發(fā)展[1-2].然而,隨著城市軌道交通網(wǎng)的不斷擴(kuò)張,城市軌道交通運(yùn)營商面臨著提高列車運(yùn)行安全性和乘客舒適度的巨大壓力.客流量的準(zhǔn)確預(yù)測是設(shè)計(jì)城市軌道系統(tǒng)的關(guān)鍵部分,可以幫助運(yùn)營商優(yōu)化運(yùn)營計(jì)劃,提高運(yùn)營效率.
對于短期客流預(yù)測,現(xiàn)已有許多研究.Lee等[3]將差分整合移動(dòng)平均自回歸模型應(yīng)用于鐵路短期客流預(yù)測,并驗(yàn)證了模型的有效性.Chen等[4]提出了一種結(jié)合SVR回歸和小波變換的北京地鐵客流預(yù)測模型,預(yù)測精度較高.隨著深度神經(jīng)網(wǎng)絡(luò)發(fā)展迅速.Li等[5]提出了一種結(jié)合Elman神經(jīng)網(wǎng)絡(luò)的分段客流預(yù)測模型.崔洪濤等[6]提出了一種混合EMD-BPN預(yù)測方法,該方法有效地將經(jīng)驗(yàn)?zāi)B(tài)分解(EMD)與反向傳播神經(jīng)網(wǎng)絡(luò)(BPN)相結(jié)合,用于地鐵短期客流預(yù)測.李科君等[7]提出了一種基于神經(jīng)網(wǎng)絡(luò)和起點(diǎn)-終點(diǎn)矩陣的高速鐵路系統(tǒng)短期客流預(yù)測模型.但與傳統(tǒng)模型相比,深度神經(jīng)網(wǎng)絡(luò)往往能取得更好的效果.但訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)模型往往需要大量數(shù)據(jù).
由于城市軌道交通運(yùn)營商之間獨(dú)立運(yùn)營,缺乏共享數(shù)據(jù)的激勵(lì)機(jī)制,目前用于客流預(yù)測的學(xué)習(xí)模型受限于樣本數(shù)據(jù)的特征維度和數(shù)量.但如果能夠城市間相似車站的客流數(shù)據(jù)結(jié)合起來,模型預(yù)測結(jié)果就會(huì)更加準(zhǔn)確.
文中將原始自動(dòng)檢票系統(tǒng)(automated fare collection, AFC)數(shù)據(jù)預(yù)處理并建模為一維時(shí)間序列數(shù)據(jù),使用分布式長短期記憶(long and short term memory, LSTM)網(wǎng)絡(luò)作為監(jiān)督學(xué)習(xí)模型進(jìn)行客流預(yù)測.建立激勵(lì)機(jī)制,鼓勵(lì)軌道交通運(yùn)營商共享當(dāng)?shù)乜土鲾?shù)據(jù),建立基于區(qū)塊鏈的分布式聯(lián)合學(xué)習(xí)(federated learning,F(xiàn)L)模型,用于準(zhǔn)確預(yù)測客流.并用真實(shí)數(shù)據(jù)對所提模型進(jìn)行評(píng)估,結(jié)果證明了所提模型的有效性.
為了保護(hù)數(shù)據(jù)隱私而提出的分布式機(jī)器學(xué)習(xí)算法.一個(gè)典型的分布式系統(tǒng)見圖1.數(shù)據(jù)所有者在本地計(jì)算數(shù)據(jù)的模型參數(shù),然后將模型的權(quán)重上傳到中央服務(wù)器,而不是直接上傳原始數(shù)據(jù).中央服務(wù)器對所有者上傳的所有權(quán)重進(jìn)行聚合[8-10].然而,這種集中式結(jié)構(gòu)雖然數(shù)據(jù)所有者避免將具體數(shù)據(jù)直接上傳到中央服務(wù)器,但上傳的權(quán)重可能會(huì)提取部分私人信息.并且中心服務(wù)器有被攻擊和崩潰的可能,這將導(dǎo)致整個(gè)系統(tǒng)停機(jī).
圖1 集中化結(jié)構(gòu)圖
針對上述問題,引入了去中心化結(jié)構(gòu),見圖2.去中心化分布式網(wǎng)能夠解決中心化結(jié)構(gòu)的隱私保護(hù)問題,但該系統(tǒng)仍可能面臨Byzantine攻擊等安全威脅.惡意節(jié)點(diǎn)可能會(huì)提供虛假信息來破壞機(jī)器學(xué)習(xí)的過程.
圖2 去中心化結(jié)構(gòu)圖
為了建立一個(gè)隱私保護(hù)和安全的分布式框架,將區(qū)塊鏈技術(shù)引入去中心化結(jié)構(gòu)[11-13].基于區(qū)塊鏈的聯(lián)合學(xué)習(xí)模型框架見圖3.將客流數(shù)據(jù)存儲(chǔ)在相應(yīng)的站點(diǎn)中,每個(gè)站點(diǎn)使用其本地?cái)?shù)據(jù)訓(xùn)練LSTM模型并計(jì)算模型的錯(cuò)誤率和梯度,每個(gè)站的梯度和錯(cuò)誤率以交易的形式上傳到區(qū)塊鏈上,區(qū)塊鏈上的智能協(xié)議將比較所有站模型的錯(cuò)誤率并共享合適的模型.
圖3 基于區(qū)塊鏈的聯(lián)合學(xué)習(xí)框架
選擇錯(cuò)誤率最低的模型站作為初始模型進(jìn)行共享.其他站點(diǎn)從區(qū)塊鏈下載模型并使用它來訓(xùn)練本地?cái)?shù)據(jù),計(jì)算每個(gè)站點(diǎn)的錯(cuò)誤率并上傳到區(qū)塊鏈上.由于Boosting框架算法概念,包含使用當(dāng)前局部模型無法精確預(yù)測的數(shù)據(jù)的站點(diǎn)很可能比其他站點(diǎn)包含更多的信息,這對模型的改進(jìn)具有重要意義[14-15].因此,優(yōu)先考慮錯(cuò)誤率最高的站.
選擇錯(cuò)誤率最高的模型站使用錯(cuò)誤率最低的模型來訓(xùn)練其本地?cái)?shù)據(jù).目標(biāo)函數(shù)為
(1)
式中:w為模型站;xi,yi為用于訓(xùn)練模型的數(shù)據(jù);N為數(shù)據(jù)量.
采用小批量梯度下降算法(MBGD)作為優(yōu)化算法,模型站wt的梯度形成為
(2)
更新區(qū)塊鏈上的wt,為
wt+1=wt+ηJ(wt)
(3)
以上不斷迭代,直到訓(xùn)練模型的錯(cuò)誤率低于預(yù)設(shè)值,或者迭代次數(shù)超過設(shè)定值.
在客流預(yù)測模型的訓(xùn)練過程中,發(fā)現(xiàn)該模型缺乏有效的激勵(lì)機(jī)制.導(dǎo)致某些站由于缺乏信任和利益而拒絕參與模型的訓(xùn)練.針對上述問題,文中提出了一種激勵(lì)機(jī)制,鼓勵(lì)那些沒有足夠數(shù)據(jù)的站點(diǎn)使用本地?cái)?shù)據(jù)一起訓(xùn)練模型,最終建立一個(gè)準(zhǔn)確的預(yù)測模型.
為了描述激勵(lì)機(jī)制,用Vf代表幾個(gè)站一起訓(xùn)練的最終模型的價(jià)值,用Ci代表訓(xùn)練局部模型梯度i時(shí)站的成本.一般假設(shè)Vf大于Ci.
假設(shè)Pi表示每個(gè)站點(diǎn)的收益:
(4)
式中:γ為收益系數(shù);m為迭代次數(shù);E為模型錯(cuò)誤率;n為梯度下降的次數(shù);Mi為每個(gè)站點(diǎn)提供的數(shù)據(jù)數(shù)量;αi為額外獎(jiǎng)勵(lì).
如果某站不完全誠實(shí),設(shè)置Pf來表示某站不誠實(shí)并被抓到的概率.失信站應(yīng)扣減其獎(jiǎng)勵(lì),懲罰系數(shù)用fc表示.
因此,站點(diǎn)從訓(xùn)練預(yù)測模型中獲得的最終獎(jiǎng)勵(lì)Pr為
Pr=Pi*(1-Pf)-fc*Pf-Ci
(5)
LSTM模型是處理時(shí)間序列數(shù)據(jù)的專家,因此將原始數(shù)據(jù)預(yù)處理成一維時(shí)間序列數(shù)據(jù).考慮到預(yù)測效果,文中采用單步預(yù)測來預(yù)測客流.
原始數(shù)據(jù)為2014年3月1—31日北京地鐵各線路全天客流AFC數(shù)據(jù).為保證模型訓(xùn)練時(shí)的時(shí)間一致,結(jié)合北京地鐵實(shí)際運(yùn)行時(shí)間(05:00—23:00)進(jìn)行統(tǒng)一篩選訓(xùn)練.
客流數(shù)據(jù)每隔5min進(jìn)行一次統(tǒng)計(jì)和預(yù)測.由于同一天內(nèi)不同時(shí)間段的客流值差異較大,需要將客流數(shù)據(jù)歸一化到同一范圍內(nèi).為了提高預(yù)測效果,文中選擇了min-max歸一化,為
(6)
式中:X為樣本值;Xmin為所有樣本中的最小值;Xmax為所有樣本中的最大值.
考慮到地鐵的實(shí)際運(yùn)營,以車站為單位預(yù)測客流比以線路為單位更有意義. 因此,文中以北京地鐵13號(hào)線西二旗站的AFC客流數(shù)據(jù)為例,使用LSTM模型進(jìn)行訓(xùn)練和預(yù)測.
LSTM模型通常包括四層:輸入層、LSTM層、全連接層和輸出層.在LSTM模型的結(jié)構(gòu)過程中,需要指定模型的損失函數(shù).選擇平方損失函數(shù)來建立LSTM深度神經(jīng)網(wǎng)絡(luò)模型,其形成為
(7)
文中采用隨機(jī)失活正則化來避免過擬合.圖4為LSTM模型在LSTM層使用隨機(jī)失活正則化后的結(jié)構(gòu)圖,模型中隨機(jī)失活的概率設(shè)置為0.2,即神經(jīng)元以20%的概率失活.
圖4 LSTM模型神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
文中使用小批量梯度下降算法(MBGD)來優(yōu)化目標(biāo)函數(shù),即:使用部分樣本來更新參數(shù),為
(8)
式中:θi為參數(shù);α為更新步長;x為樣本值;y為標(biāo)簽值.
LSTM模型每一層的輸出維度見圖5.步長設(shè)置為7,用7個(gè)歷史數(shù)據(jù)預(yù)測下一時(shí)刻的客流.LSTM層的神經(jīng)元個(gè)數(shù)設(shè)置100個(gè),全連接層的神經(jīng)元個(gè)數(shù)為50個(gè).LSTM層的輸出神經(jīng)元個(gè)數(shù)為1個(gè),負(fù)責(zé)輸出預(yù)測的客流數(shù)據(jù).
以平均絕對誤差作為指標(biāo)來評(píng)價(jià)LSTM模型在客流測試集上的表現(xiàn),并分析平均絕對誤差隨訓(xùn)練迭代次數(shù)的增加而變化的趨勢.將所提出的FL模型的預(yù)測客流和無FL模型的預(yù)測客流與真實(shí)客流進(jìn)行比較.
區(qū)塊鏈網(wǎng)絡(luò)運(yùn)行在四個(gè)主機(jī)上,包括四個(gè)區(qū)塊鏈節(jié)點(diǎn)和四個(gè)聯(lián)合學(xué)習(xí)業(yè)務(wù)節(jié)點(diǎn).測試平臺(tái)采用Linux操作系統(tǒng),區(qū)塊鏈平臺(tái)使用EOS,測試腳本使用Node.js.不同交易發(fā)送頻率下系統(tǒng)的平均吞吐量見圖6.由圖6可知:在發(fā)送頻率為125 TPS時(shí)吞吐量達(dá)到最大值,最大吞吐量為109 TPS,其中TPS表示每秒交易數(shù).也就是說,當(dāng)計(jì)算節(jié)點(diǎn)每秒向平臺(tái)發(fā)送125筆交易時(shí),區(qū)塊鏈平臺(tái)每秒可以更新權(quán)重109次,達(dá)到最大值.
圖6 系統(tǒng)在不同交易發(fā)送頻率下的平均吞吐量
客流預(yù)測使用2014年3月29—30日2 d的客流數(shù)據(jù)作為測試集,其他客流數(shù)據(jù)作為訓(xùn)練集.網(wǎng)格搜索用于搜索模型的最優(yōu)參數(shù),結(jié)果表明,當(dāng)訓(xùn)練數(shù)量為150,batch數(shù)量為15,LSTM層的神經(jīng)元數(shù)量為100,步長為7時(shí),LSTM模型的預(yù)測性能最優(yōu).
圖7為不同日期150次迭代的平均絕對誤差. 由圖7可知:平均絕對誤差先是迅速減小,然后逐漸平緩,經(jīng)過150次迭代后相對穩(wěn)定.
圖7 150次迭代的平均絕對誤差
圖8為LSTM模型客流預(yù)測曲線.由圖8可知:文中所提出的FL模型的預(yù)測客流比沒有FL模型的預(yù)測客流更接近真實(shí)的預(yù)測客流,證明了數(shù)據(jù)量決定預(yù)測模型的性能.沒有FL模型用于短期客流預(yù)測時(shí),一天內(nèi)96個(gè)時(shí)刻的預(yù)測值的最大相對誤差不超過4%;而文中所提FL模型進(jìn)行預(yù)測時(shí),各個(gè)時(shí)刻預(yù)測值的相對誤差整體上有所減少,且均控制在2.3%以內(nèi).結(jié)果證明了文中所提FL模型的有效性.
圖8 客流預(yù)測曲線圖
在海量客流數(shù)據(jù)的支持下,準(zhǔn)確的軌道交通短期客流預(yù)測能夠提升軌道交通系統(tǒng)的運(yùn)營效率.文中提出了一種基于區(qū)塊鏈的聯(lián)合學(xué)習(xí)模型,并建立了激勵(lì)機(jī)制,鼓勵(lì)參與者參與訓(xùn)練模型,用于城市軌道交通客流預(yù)測.結(jié)果表明:該模型具有很小平均絕對誤差,可以顯著提高客流預(yù)測的準(zhǔn)確性.