?

基于神經網絡的地鐵短時客流預測服務

2019-01-24 09:30侯晨煜周藝芳
小型微型計算機系統 2019年1期
關鍵詞:卡爾曼濾波客流梯度

侯晨煜 ,孫 暉,周藝芳,曹 斌,范 菁

1(浙江工業大學 計算機科學與技術學院,杭州 310023)2(杭州數夢工場科技有限公司,杭州 310024)

1 引 言

地鐵憑借其準時、快速、性價比高等優點逐漸成為城市重要的交通工具.但是由于地鐵站空間封閉的特殊性,在地鐵站中的乘客容量有限.因此在某些情況下,如:發生突發事件、遭遇惡劣天氣或在早晚交通高峰時段、節假日等,客流量在短時間內大規模的增加可能會影響地鐵運營和乘客安全.如果能夠提供地鐵客流預測服務,提前準確預測地鐵站的客流情況,地鐵工作人員提前做出相關控制措施,則能夠有效防止危險的發生并維持地鐵秩序.基于上述動機,本文提出一種地鐵客流短時預測服務,通過對歷史數據的分析,預測未來時刻的地鐵客流量,方便地鐵工作人員進行地鐵流量控制,防止發生安全事故.

地鐵由于其準時、快速的特點,乘客在地鐵站中的逗留時間相對于公交車、飛機來說非常短,并且地鐵一次可容納乘客較多,所以地鐵客流在短時間內會呈現快速變化的趨勢.本文主要研究目的是利用神經網絡提供地鐵短時客流預測服務.不同于日客流量、月客流量或年客流量預測,短時客流預測問題情況更加復雜.在大多數情況下,短時客流預測受許多因素影響,且容易發生突變,呈非線性關系.因此使用非線性的預測方法(主要有:非參數回歸模型、神經網絡、支持向量機等)效果更佳.本文采用了經典的BP神經網絡以及處理時序數據效果極好的遞歸神經網絡來進行地鐵短時客流預測.

為了確定神經網絡中合適的梯度下降算法和激活函數,本文分別選取了三種梯度下降法和三種激活函數,分別組合并進行實驗比較,最終確定效果最好的組合作為神經網絡的參數.其中梯度下降算法分別是較簡單的SGD、使用同一學習率的Adagrad以及能夠自適應學習率的adam算法.激活函數分別是最常用的sigmod函數,tanh函數以及近幾年非常受歡迎的relu函數.最后我們通過實驗證明了基于adam算法和relu激活函數的BP神經網絡以及基于adam算法和tanh激活函數的遞歸神經網絡算法性能最佳.

由于本文采用的數據源為真實地鐵客流數據,其存在噪聲較大的問題,因此我們在進行預測之前,使用卡爾曼濾波器對其進行去噪平滑處理.

最后,我們通過大量實驗證明了BP神經網絡和LSTM遞歸神經網絡的最佳參數(包括梯度下降算法和激活函數).另外實驗還證明了1、卡爾曼濾波有助于提高預測準確度.2、BP神經網絡和RNN神經網絡的預測效果相差不大.

本文的貢獻主要總結如下:

1)使用BP神經網絡和RNN神經網絡提供地鐵短時客流預測服務.

2)利用卡爾曼濾波消除原始數據的噪聲并提高預測準確率.

3)通過實驗證明了基于adam算法和relu激活函數的BP神經網絡與基于adam算法和tanh激活函數的RNN神經網絡效果最佳,兩者在預測效果上相差不大.

2 神經網絡

在這一小節中,我們首先介紹一些神經網絡的知識,包括神經元、BP神經網絡、基于梯度下降法的反饋原理以及遞歸神經網絡.

2.1 神經元

神經元是神經網絡中最基本的成分.在生物神經網絡中,每個神經元與其他神經元相連,當它“興奮”時,就會向相連的神經元發送化學物質,從而改變這些神經元的電位;如果某神經元的電位超過了一個閾值,那么它就會被激活,即“興奮”起來,向其他神經元發送化學物質.

圖1 神經元示意圖Fig.1 Structure of a neutral cell

圖1展示了經典的M-P神經元模型.神經元接收來自n個其他神經元傳遞過來的輸入信號,這些輸入信號通過帶權重的連接進行傳遞,神經元接收到的總輸入值將于神經元的閾值進行比較,再通過“激活函數”來產生神經元的輸出.

2.2 BP神經網絡

BP神經網絡是指用BP(BackPropagation,誤差逆傳播)算法訓練的多層前饋神經網絡.其一般具備3層或3層以上神經元的神經網絡,如圖2所示.包括1層輸出層、隱藏層(中間層)和1層輸入層.上下層實現的是全連接,產生的信號向前傳送,反饋的誤差信號逆向傳播.隱藏層可以有單層,亦可以為多層,最簡單的BP網絡的傳播激活函數一般使用sigmoid函數.學者認為當神經網絡的隱藏層神經元足夠多時,就可以以任何精度逼近任何一個有限維的函數.對于每個訓練樣例,BP算法會先將輸入示例提供給輸入層神經元,然后逐層將信號前傳,直到產生輸出層的結果.然后計算輸出層的誤差,再將誤差逆向傳播至隱層神經元,最后根據隱層神經元的誤差來對連接權重和閾值進行調整.BP神經網絡不斷進行迭代,直到該網絡輸出誤差縮小到閾值以下或進行到預先設定的迭代次數方可停止.

2.3 反饋原理

BP神經網絡基于梯度下降策略,以目標的負梯度方向對連接權重和神經元閾值進行調整.梯度下降的大致思路如下:隨機選擇一個點,從該點出發沿著該點的導數最大值的負方向前進,每次前進η的步長.到達新的點后,重復上述步驟,則可以以最快的速度尋找到最值.但是,基本的梯度下降算法在實際應用中還存在較多的缺陷,如:當η設置過小時,收斂速度過慢,計算量大;當η設置過大時,又會產生震蕩;有時還會收斂到局部最小.

圖3 RNN神經網絡示意圖Fig.3 Structure of the RNN

2.4 遞歸神經網絡

與前饋神經網絡不同,遞歸神經網絡允許網絡中出現環形結構,從而可讓一些神經元的輸出反饋回來作為輸入信號.這樣的結構與信息反饋過程,使得網絡在t時刻的輸出狀態不僅與t時刻的輸入有關,還與t-1時刻的網絡狀態有關,從而能處理與時間有關的動態變化.

觀察圖3可知,除基本結構的隱藏層外,遞歸神經網絡還具有一個“特別的隱藏層”,稱為承接層.該層從隱藏層神經元的輸出接收到反饋信號.該信號通過處理后,前向傳遞給隱藏層作為輸入,但在時間上有一定的延遲.遞歸神經網絡的這種構造使得它不僅可以識別和產生空間模型,還能辨認和產生時間模式[1].

2.5 LSTM長短時記憶單元的遞歸神經網絡

雖然遞歸神經網絡在解決時序問題上的效果更好,但是仍存在一定缺陷.具體缺陷在于它的遞歸機制和反向傳播算法.當遞歸次數較多時,若第一次輸入的信息很重要,但是由于遞歸多次以后(即與權重進行累乘之后)極易出現梯度爆炸(權重大于1)和梯度消失(權重小于1)[2],導致訓練失敗.加入LSTM長短時記憶單元可以有效解決遞歸網絡帶來的梯度消失和梯度爆炸問題.

LSTM層與普通遞歸神經網絡的隱藏層相比多出了三個控制器,(輸入控制、輸出控制、和遺忘控制),圖4是LSTM的內部結構.在訓練的過程中,信號不僅通過輸入控制和輸出控制,而且要經過遺忘控制單元.在這個單元中,LSTM會根據以往的訓練反饋對某些信息進行遺忘(即不對權重進行改變),同時選取一定的神經元進行權重更新.LSTM把原本RNN的單元改造成一個叫做CEC的部件,這個部件保證了誤差將以常數的形式在網絡中流動,并在此基礎上添加輸入門和輸出門來使模型變得非線性.同時還能調整不同時序的輸出對模型的影響,因此能夠有效解決RNN的梯度爆炸和梯度消失問題.

圖4 LSTM單元示意圖Fig.4 Structure of the LSTM cell

LSTM將信息存放在遞歸網絡正常信息流之外的門控單元中.這些單元可以存儲、寫入或讀取信息,就像計算機內存中的數據一樣.單元通過門的開關判定存儲哪些信息,以及何時允許讀取、寫入或清除信息.但與計算機中的數字式存儲器不同的是,這些門是模擬的,包含輸出范圍全部在0~1之間的sigmoid函數的逐元素相乘操作.相比數字式存儲,模擬值的優點是可微分,因此適合反向傳播.

這些門依據接收到的信號而開關,而且與神經網絡的節點類似,它們會用自有的權重集對信息進行篩選,根據其強度和導入內容決定是否允許信息通過.這些權重就像調制輸入和隱藏狀態的權重一樣,會通過遞歸網絡的學習過程進行調整.也就是說,記憶單元會通過猜測、誤差反向傳播、用梯度下降調整權重的迭代過程學習何時允許數據進入、離開或被刪除.

3 地鐵短時客流預測算法設計

3.1 參數設定

由于現階段神經網絡的參數選擇沒有固定實施標準,并且是否能夠選擇合適的參數對于神經網絡的預測精確度有極大的影響,因此參數選擇問題受到了學者們的極大重視.大多數情況下,研究者僅能通過經驗或者借鑒相似問題的參數選擇方案.然而本文問題的獨特性使得神經網絡的參數選取異常困難,因此本文在借鑒其他論文的經驗后,選取一定的參數進行實驗和驗證,找出最適合的參數.

3.1.1 激活函數

激活函數是一個神經元中輸入輸出的映射函數(如圖4中的f).關于激活函數的選取,目前沒有統一的定論,實踐過程中更多的還是結合實際情況考慮.傳統的BP神經網絡和遞歸神經網絡使用的激活函數為Sigmod函數.為了優化神經網絡性能,如解決梯度消失問題,研究人員在激活函數方面提出了很多改進方法.Sigmod函數和tanh函數因其求導容易計算速度快,被普遍用于BP神經網絡,但是他們都存在軟飽和性,因此容易出現梯度消失問題.Relu函數在近幾年非常受歡迎,其有效緩解了梯度消失問題同時在SGD中能夠快速收斂,因此越來越多被證明可用于神經網絡[3].同時Le[4]也在2015年提出relu和LSTM有相當的效果.

3.1.2 評價函數

在訓練好預測模型后如何評判該模型的性能也十分重要.與分類問題不同,回歸問題中的預測值與真實值并不存在性質相同的關系,因此不能使用準確率來評判回歸模型的性能.但是卻可以對預測值和真實值進行量值上的比較,本文采用平均絕對誤差(MAE)作為評價函數.MAE值越小,模型效果越好.

MAE(Mean absolute error)平均絕對誤差:

其中fi為實際值,yi為預測值,模型總共預測N條記錄的值,所以最終需要取平均.

3.1.3 其他參數

本文僅對以上幾種激活函數和梯度下降算法進行了對比實驗,神經網絡中還有很多決定神經網絡性能的參數,本文使用學界一般使用的參數調整辦法,設置4層BP神經網絡,假設有n個輸入,則神經元節點個數分別為(0.75n,0.752n,0.753n,1).遞歸神經網絡的隱藏層神經元節點個數為0.75n.訓練周期epochs設定為50,批含量設定為1.損失函數與測量標準相同,均使用平均絕對誤差.

3.2 特征選擇

綜合考慮地鐵客流分布和預測效果的現實意義,本文以1小時為時間粒度,統計每個小時內的購票數量作為該小時內的客流量.我們選取24小時作為時間窗口大小,對于要預測的時刻,把該時刻之前24小時的客流量分成24維特征,作為神經網絡訓練的輸入.

3.3 數據預處理

由于訓練模型的數據采用的是實際數據,可能會存在一些噪聲點,即偏離正常范圍(統計學中的置信區間)較遠的信息點.這些點以統計學的理論來說在真實情況中是小概率事件,因此若使用這些噪聲點作為訓練數據,就可能導致神經網絡在判斷趨勢時出現判斷偏差,進而引起神經網絡訓練失敗.所以,在訓練預測模型前往往需要對數據源進行去噪處理,學界一般使用拉以達準則進行去噪處理,其基本思想是以給定的置信概率(如99.7%)為標準,此時若待測點的標準差大于標準偏差的三倍(不在置信區間內),就認為它不屬于隨機誤差,而是具有粗大誤差的異常值,需要將其從測量數據中刪除.

由于本文使用的是時序數據,數據之間具有時間上下文的關聯性,因此將某條數據從中刪除是不合理的,并且拉以達準則假定系統狀態恒定,這在現實情況中也是不合理的.卡爾曼濾波器作為一種常見低通濾波器在信號處理中被廣泛應用,設定不同維度的均方誤差矩陣就可以適應動態時變系統,因此更適合用于本算法.

3.4 算法步驟

地鐵客流預測算法主要流程如圖5所示.算法包含如下步驟:1)首先對歷史數據進行預處理,提取有效信息,并且對數據進行格式化:按照預設的時間間隔(以每小時為粒度)構建時間客流序列,并且人工設置某些參數;2)特征提?。簩㈩A處理后的數據源和進行特征提取,構建特征矩陣;3)將特征矩陣通過卡爾曼濾波器進行校正和精確預測調優,降低噪聲的影響效果;4)將濾波后的特征矩陣分成訓練集和測試集,將訓練集輸入到人工神經網絡中進行預測模型訓練;5)將訓練好的模型使用測試集進行性能評估;6)根據單一模型的預測和評估結果,選擇最優模型作為輸出.

圖5 算法結構圖Fig.5 Structure of our algorithm

圖6展示了BP神經網絡的結構,由于輸入值挑選過去24小時的人數序列,因此特征個數為24,則輸入神經元個數為24.最后神經網絡的輸出值為當前預測時刻的人數,因此輸出層神經元個數為1.本文設置共設置了3層隱藏層,其中隱藏層的神經元個數為0.75n,其中n為該隱藏層輸入節點個數,所以如圖7所示第一層隱藏層的神經元個數(即輸出)為18,第二層隱藏層包含13個神經元,第三層隱藏層包含9個神經元.另外,除輸出層固定使用sigmod激活函數外,其余3層隱藏層的激活函數采用通過對比實驗來確定.

LSTM神經網絡結構比較簡單,僅使用一層隱藏層LSTM層,和一層輸入層以及輸出層,其中LSTM層的隱藏層的神經元個數為18.與一般全連接層不同的是LSTM遞歸層的輸入是3D張量,它包含輸入集,時間步長和輸入集特征數,此處假定時間步長為1進行實驗.與BP神經網絡相同,輸出層使用SIGMOID激活函數,LSTM層使用對照組進行實驗.

圖6 BP神經網絡流程Fig.6 BP network process圖7 LSTM的RNN神經網絡流程Fig.7 LSTM network process

圖8 不同BP神經網絡比較Fig.8 Comparison of different BP neutral networks

4 實 驗

4.1 實驗數據

本次實驗所使用的數據來自杭州地鐵公司提供的杭州某線路購票數據,時間跨度為2017.2.2到2017.4.1日.數據包括起點站名稱、起點站ID、終點站名稱、終點站ID、購票時間、購票數量、購票金額、跨站個數以及支付方式等信息.我們提取其中起點站名稱、購票數量以及購票時間三個信息,從而計算每個站點的客流量.因為用戶在乘坐地鐵時存在諸多不確定性,無法較為準確地估計用戶到站時間,所以我們不把用戶到達終點站時作為流量進行計數.實驗數據被平均分成五份,在每次實驗時,把其中四份作為訓練集,另外一份作為測試集,從而完成交叉實驗.

4.2 神經網絡參數確定

首先為了確定最適合兩種神經網絡的參數,我們采用控制變量法對3種激活函數(relu、sigmoid、tanh)和3種優化梯度下降算法(普通SGD、adagrad、adam)進行對照實驗,并選擇30次迭代次數的作為正式實驗訓練周期.

觀察圖8實驗結果可以發現,所有函數的收斂速度不同,且最終達到的收斂效果也不一樣.對于不同激活函數(圖中不同點),relu函數(實心圓)和tanh函數(實心正方形)的平均絕對誤差更低,在效果上明顯優于sigmoid函數(實心三角形),其中relu函數的效果更好;對于梯度下降算法(圖中不同線段),在激活函數相同的前提下,sgd算法(長虛線)的平均絕對誤差是最大的,而adam算法(短虛線)和adagrad算法(實線)的效果相對較好.其中adam算法能夠到達更低的平均絕對誤差.綜上,對于BP神經網絡來說,a-dam算法和relu函數所達到的預測效果更好.

圖9 不同LSTM遞歸神經網絡比較Fig.9 Comparison of different recurrent neutral networks

觀察圖9的實驗結果,我們發現不同算法和激活函數組合的LSTM神經網絡都呈現出快速收斂的趨勢,在達到20次迭代時基本都達到了收斂狀態.這是因為LSTM神經網絡不僅能夠利用上一次的輸出結果作為新的輸入進行計算,同時LSTM神經元中的遺忘閥門能夠將未達到閾值的輸出結果進行遺忘.這樣的好處是能夠實現重要的早期序列對最終結果的影響,同時消除不重要的序列的影響.從圖中我們還可以看到,在保持梯度下降算法不變的情況下,三種激活函數的效果互有好壞.而比較不同梯度下降算法的效果時,我們發現三條基于adagrad算法的神經網絡的誤差曲線(實線表示)位于最高,這說明adagrad算法的性能最差.而基于adam算法的神經網絡的誤差曲線(短虛線表示)位于最低,說明adam算法最適合于LSTM遞歸神經網絡.而sgd算法效果居中.最終,我們根據圖中最低的一條曲線確定LSTM遞歸神經網絡使用adam算法以及tanh函數的效果最好.

4.3 卡爾曼濾波效果

這一小節,我們進行了大量實驗考察卡爾曼濾波對預測效果的影響.我們共進行了2組實驗:1、基于BP神經網絡(圖10(a)).2、基于LST遞歸神經網絡(圖10(b)).每組實驗分別在有卡爾曼濾波和無卡爾曼濾波的情況下進行,并且每組實驗進行5次交叉實驗,最終結果如圖10所示.由圖10

圖10 卡爾曼濾波性能比較Fig.10 Efficiency of Kalman filtering

可知,算法經過卡爾曼濾波去除噪聲之后的MAE明顯低于未經卡爾曼濾波過濾的MAE,這說明卡爾曼濾波有助于提高算法準確度.

4.4 神經網絡比較

這一小節,我們比較兩種神經網絡的預測效果.我們同樣進行了2組實驗:

1)無卡爾曼濾實驗(圖11(a)所示).

2)有卡爾曼濾波實驗(圖11(b)所示).

圖11 神經網絡比較Fig.11 Comparison of neutral networks

從圖11兩幅圖中可以看到,BP神經網絡與LSTM遞歸神經網絡MAE差距不大,且有時BP神經網絡更優,有時遞歸神經網絡效果更優,這說明BP神經網絡與LSTM遞歸神經網絡在客流預測模型訓練上的效果相當.這個現象可能與BP神經網絡使用了relu激活函數有關,有學者指出它的效果可以媲美LSTM單元.

5 相關工作

學界關于預測交通流量的線性預測方法主要有以下幾種措施:歷史平均預測模型、時間序列預測模型和卡爾曼濾波模型等.1993年Kaysi提出的LISB系統[5]使用的是歷史平均預測方法,此算法是將歷史數據與當前數據進行加權組合,其缺點在于權重確定過程費時費力,無法反映非線性預測流的隨機性,因此對突發事件的客流預測效果不好.

時間序列預測模型是將歷史客流按照一定的時間間隔量化為一個時間序列,同時分析這個時間序列的變動特征來預測將來的發展趨勢.其中被應用的最廣泛的一種是季節性時間序列模型ARIMA[6,7],它相比于其他方法考慮到客流量隨時間變化的波動性,且可定量化評估外界因素對其造成的影響[8],但是其假定時間滯后,變量之間是線性關系,因此它可能也并不適用于測量非線性結構[9],并且其數據可能遺漏,使得模型的精度降低.客流預測問題情況復雜,多數情況下存在多屬性呈非線性關系,因此使用非線性的預測方法效果更佳.非線性的預測辦法通常具備較高的預測準確度,但同時帶來的問題是計算的復雜性大,當數據量巨大時所需的開銷大,因此學界提出的該方法主要用于進行小規模的預測上,在高并發云計算蓬勃發展的今天這些方法將被廣泛使用.主要有:非參數回歸模型、神經網絡、支持向量機、灰色理論和馬爾科夫鏈等[10-13].

非參數回歸模型[14]是一種非參數方法,該策略對非線性的動態系統更加合適,它可根據充足的歷史數據,無需先驗信息,尋覓歷史數據中與當前時刻類似的“近鄰”,并用這些“近鄰”預測下一時刻值[15].因而,該辦法針對特殊事件的預測效果要比參數建模精細且準確[16].

神經網絡也屬于非線性方法,是一種模仿人腦構造解決問題的系統策略.它以大量神經元處理單元連接成拓撲結構,比傳統的預測方法更適合變化較為復雜、非線性的條件,它對任意方法都可以進行映射,具有良好的自適應性,因此被頻繁作為建模方法[17].目前學界已廣泛運用的神經網絡預測模型包括BP神經網絡、時延遞歸神經網絡、徑向基神經網絡等.例如,Deng等[18]使用BP神經網絡模型對公路客流量進行了很好的預測;Hussein Dia等[19]使用時延遞歸神經網絡預測未來5分鐘的公路流量精確性達到90%以上;Xiao等[20]也證明RBF神經網絡在預測高速公路短期交通流量是可行的.

6 總 結

本文利用卡爾曼濾波,結合神經網絡算法,提供了一種準確度較高的地鐵客流短時預測服務.該服務利用預測時刻的前24小時客流量作為輸入,通過卡爾曼濾波對數據進行過濾,再用BP神經網絡和LSTM遞歸神經網絡進行預測,最終預測準確率高達95%左右.本文還通過控制變量法進行多組實驗,證明卡爾曼濾波對預測起到積極作用,并且基于adam算法和relu激活函數的BP神經網絡與基于adam算法和tanh激活函數的LSTM遞歸神經網絡在預測效果上幾乎相近.

本文后續工作將從以下幾個方面展開:

1)考慮時間衰減效應.在之后工作中,對于預測時刻的前24小時客流量特征,進行時間衰減考慮,即較遠時刻的客流量的影響因子降低,較近時刻的客流量的影響因子提高,并通過實驗證明其有效性.

2)考慮其他例如:天氣、節假日、早晚高峰等復雜特征.

猜你喜歡
卡爾曼濾波客流梯度
客流增多
磁共振梯度偽影及常見故障排除探討
基于深度強化學習與擴展卡爾曼濾波相結合的交通信號燈配時方法
基于應變梯度的微尺度金屬塑性行為研究
脈沖星方位誤差估計的兩步卡爾曼濾波算法
城市軌道交通節假日期間大客流行車組織思考與實踐
基于系統動力學的城市軌道交通車站客流控制仿真與優化
一個具梯度項的p-Laplace 方程弱解的存在性
卡爾曼濾波在信號跟蹤系統伺服控制中的應用設計
基于遞推更新卡爾曼濾波的磁偶極子目標跟蹤
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合