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