王竹榮,薛偉,牛亞邦,崔穎安,孫欽東,黑新宏
(西安理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,陜西 西安 710048)
近年來,智能交通系統(tǒng)(ITS,intelligent transportation system)迅速發(fā)展[1]。停車誘導(dǎo)信息系統(tǒng)(PGIS,parking guidance information system)是ITS 中不可缺少的組成部分,泊位占有率預(yù)測(cè)是其中一項(xiàng)重要技術(shù)。根據(jù)國(guó)際停車協(xié)會(huì)(IPI,International Parking Institute)的一項(xiàng)調(diào)查,超過30%的汽車在公路上尋找停車位,而這些巡航汽車在城市地區(qū)造成了高達(dá)40%的交通堵塞[2]。研究數(shù)據(jù)顯示,在公路的車流量中,泊車車輛占道路車流量的12%~15%。尋找車位的過程會(huì)增加30%的燃油消耗[3]。泊位占有率預(yù)測(cè)和泊位信息共享對(duì)停車場(chǎng)的日常運(yùn)行、調(diào)度規(guī)劃以及交通運(yùn)行狀態(tài)具有重要影響。泊位占有率預(yù)測(cè)已經(jīng)引起學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注。例如,谷歌地圖基于用戶調(diào)查和軌跡數(shù)據(jù)[4]預(yù)測(cè)全市范圍內(nèi)的停車?yán)щy程度;百度地圖基于環(huán)境上下文特征(如興趣點(diǎn)、地圖查詢等),估計(jì)全市范圍內(nèi)的實(shí)時(shí)停車位可用信息[5]。上述方法是對(duì)某一區(qū)域的停車難度進(jìn)行預(yù)測(cè)和分級(jí),這可能導(dǎo)致對(duì)于單個(gè)停車場(chǎng)的泊位占有率預(yù)測(cè)結(jié)果不準(zhǔn)確。
現(xiàn)有的泊位占有率預(yù)測(cè)方法主要為基于統(tǒng)計(jì)學(xué)的預(yù)測(cè)方法和基于機(jī)器學(xué)習(xí)的預(yù)測(cè)方法。基于統(tǒng)計(jì)學(xué)的預(yù)測(cè)方法雖然計(jì)算較為簡(jiǎn)單,時(shí)間復(fù)雜度較低,但是預(yù)測(cè)精度不高且穩(wěn)定性較差。例如,Dunning 等[6]提出建立一個(gè)停車場(chǎng)數(shù)據(jù)收集以及泊位預(yù)測(cè)的PGIS,利用差分整合移動(dòng)平均自回歸模型進(jìn)行泊位占有率預(yù)測(cè),實(shí)驗(yàn)結(jié)果表明該模型的預(yù)測(cè)效果并不穩(wěn)定,僅能預(yù)測(cè)占有率相對(duì)平穩(wěn)的時(shí)間段,在出現(xiàn)波峰或者波谷的時(shí)間段預(yù)測(cè)效果較差。Caliskan 等[7]利用PGIS 采集的車輛抵達(dá)停車場(chǎng)的時(shí)間和停車場(chǎng)泊位占有率等歷史數(shù)據(jù),使用連續(xù)時(shí)間齊次馬爾可夫與排隊(duì)論預(yù)測(cè)方法進(jìn)行泊位占有率預(yù)測(cè)。Chen 等[8]對(duì)泊位占有率預(yù)測(cè)展開研究,結(jié)合泊位占有率的外在影響因素,利用通用代數(shù)建模系統(tǒng)(GAMS,the general algebraic modeling system)進(jìn)行建模求解,泊位占有率預(yù)測(cè)精度有一定提升。Rajabioun等[9]和Klappenecker等[10]通過數(shù)學(xué)方法進(jìn)行泊位占有率預(yù)測(cè),該方法依賴于參數(shù)控制,具有很強(qiáng)的樣本依賴性,雖然降低了計(jì)算的時(shí)間復(fù)雜度,但穩(wěn)健性較差。Richter 等[11]通過分析停車場(chǎng)的泊位歷史數(shù)據(jù),對(duì)泊位數(shù)據(jù)時(shí)間和空間進(jìn)行聚類,來選擇最優(yōu)的時(shí)空特征,預(yù)測(cè)準(zhǔn)確性進(jìn)一步提高。為解決基于統(tǒng)計(jì)學(xué)泊位占有率預(yù)測(cè)方法的不足,基于機(jī)器學(xué)習(xí)的泊位占有率預(yù)測(cè)方法近幾年大量涌現(xiàn)。楊兆升等[12]將BP(back propagation)神經(jīng)網(wǎng)絡(luò)應(yīng)用到泊位占有率預(yù)測(cè)問題中。陳群等[13]利用相空間重構(gòu)對(duì)泊位數(shù)據(jù)進(jìn)行預(yù)處理,并利用Elman 神經(jīng)網(wǎng)絡(luò)泊位預(yù)測(cè)方法進(jìn)一步提升模型預(yù)測(cè)精度。Blythe 等[14]和季彥婕等[15]提出基于小波變換的泊位預(yù)測(cè)模型,然后利用啟發(fā)式算法對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化,提出粒子群優(yōu)化的小波神經(jīng)網(wǎng)絡(luò)停車場(chǎng)泊位預(yù)測(cè)模型。陳海鵬等[16]采用小波變換和 ELM(wavelet transform with extreme learning)相結(jié)合的方法進(jìn)行泊位的短時(shí)預(yù)測(cè),所提模型在不降低預(yù)測(cè)精度的情況下,提升了傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練效率。韓印等[17]提出基于灰色?小波神經(jīng)網(wǎng)絡(luò)的有效泊位預(yù)測(cè)算法。
綜上分析可知,基于統(tǒng)計(jì)學(xué)的泊位預(yù)測(cè)方法在時(shí)間復(fù)雜度方面具有優(yōu)勢(shì),但是預(yù)測(cè)精度相對(duì)較低且樣本依賴性強(qiáng)。與之相比,基于機(jī)器學(xué)習(xí)的泊位預(yù)測(cè)方法的預(yù)測(cè)精度大幅提升,適合時(shí)間跨度較長(zhǎng)的泊位預(yù)測(cè)場(chǎng)景要求。
泊位占有率預(yù)測(cè)是一種具有典型時(shí)間序列特征的時(shí)間序列預(yù)測(cè)問題。隨著深度學(xué)習(xí)在圖像處理和自然語言領(lǐng)域的發(fā)展,很多新的神經(jīng)網(wǎng)絡(luò)模型和方法被用于時(shí)間序列預(yù)測(cè)問題,如Seq2seq 模型結(jié)合殘差網(wǎng)絡(luò)[18]、深度神經(jīng)網(wǎng)絡(luò)結(jié)合統(tǒng)計(jì)學(xué)方法的ARMAM(autoregressive moving average model)[19]、基于注意力機(jī)制的長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)[20]、基于時(shí)間注意力學(xué)習(xí)的多視野時(shí)間序列預(yù)測(cè)方法[21]、基于時(shí)間模式的神經(jīng)網(wǎng)絡(luò)[22-23]、基于DTW(dynamic time warping)的直覺模糊時(shí)間序列預(yù)測(cè)模型[24]和利用直覺模糊多維取式推理建立的高階模型[25]。其他的模型介紹如下。自注意力機(jī)制轉(zhuǎn)移網(wǎng)絡(luò)模型[26]通過矩陣控制序列權(quán)重的學(xué)習(xí)方式學(xué)習(xí)特征信息,主要適用于自然語言處理問題,是目前自然語言處理研究和應(yīng)用最為廣泛的模型。自注意力機(jī)制的卷積模型[27]通過改變自注意力機(jī)制結(jié)構(gòu),將原有的注意力用于計(jì)算全局的隱含層向量權(quán)重,此模型利用卷積神經(jīng)網(wǎng)絡(luò)(CNN,convolutional neural network)獲取局部信息,將時(shí)間復(fù)雜度從O(n2)降低到O(n(logn)2),加快了運(yùn)算速度。基于社會(huì)注意力的行人軌跡預(yù)測(cè)模型提高了預(yù)測(cè)的可解釋性和預(yù)測(cè)精度[28]。何堅(jiān)等[29]提出了綜合考慮多維時(shí)空因果關(guān)系的泊位占有率預(yù)測(cè)技術(shù)和方法。梅振宇等[30]對(duì)泊位占有率序列的復(fù)雜性度量方法進(jìn)行了分析。
從長(zhǎng)遠(yuǎn)發(fā)展角度考慮,PGIS 不僅要及時(shí)地為用戶提供的泊位信息,還應(yīng)對(duì)未來一段時(shí)間的泊位需求信息做出預(yù)估,給予用戶更長(zhǎng)時(shí)間進(jìn)行出行規(guī)劃。因此,泊位的中長(zhǎng)期預(yù)測(cè)研究是必要的。目前,對(duì)泊位占有率中長(zhǎng)期預(yù)測(cè)的研究相對(duì)較少,現(xiàn)有的預(yù)測(cè)方法主要以傳統(tǒng)的迭代計(jì)算為主,預(yù)測(cè)效果較差。深度學(xué)習(xí)方法提供了處理多元時(shí)間序列的預(yù)測(cè)新思路。對(duì)泊位的中長(zhǎng)期預(yù)測(cè)方法進(jìn)行研究,在增加預(yù)測(cè)步長(zhǎng)的前提下,提升預(yù)測(cè)精度及預(yù)測(cè)序列的穩(wěn)定性指標(biāo)成為必要工作。
本文主要工作如下。1)提出了一種高效的時(shí)間序列預(yù)測(cè)模型。所提模型以sequence-to-sequence 為整體框架,以雙向長(zhǎng)短時(shí)記憶(BiLSTM,bi-directional long short-term memory)網(wǎng)絡(luò)[31]為模型的編碼器和解碼器的內(nèi)部結(jié)構(gòu),通過一維CNN 提取多變量的局部特征作為模型的注意力機(jī)制,捕獲泊位預(yù)測(cè)問題特征的時(shí)間模式信息。2)將所提模型用于預(yù)測(cè)泊位占有率數(shù)據(jù)預(yù)測(cè),測(cè)試結(jié)果及對(duì)比分析表明,所提帶有注意力機(jī)制的神經(jīng)網(wǎng)絡(luò)模型有較強(qiáng)的非線性特征提取能力,與 LSTM(long short-term memory)網(wǎng)絡(luò)模型相比預(yù)測(cè)精度較高,有較強(qiáng)的穩(wěn)健性和穩(wěn)定性。
sequence-to-sequence 模型實(shí)現(xiàn)了從一個(gè)序列到另一個(gè)序列的轉(zhuǎn)換。Google 曾用 sequence-tosequence 模型加注意力機(jī)制來實(shí)現(xiàn)翻譯功能。sequence-to-sequence 模型突破了傳統(tǒng)的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN,recurrent neural network)模型輸入輸出序列大小固定的限制。sequence-to-sequence 由編碼器(encoder)和解碼器(decoder)兩部分組成,能有效提取輸入數(shù)據(jù)的特征。停車場(chǎng)泊位數(shù)據(jù)具有典型的時(shí)間序列特征,通過歷史數(shù)據(jù)預(yù)測(cè)未來停車場(chǎng)占有率,符合序列到序列模型的時(shí)間數(shù)據(jù)序列特征。因此,本文利用sequence-to-sequence模型結(jié)合時(shí)間模式的注意力機(jī)制進(jìn)行泊位占有率預(yù)測(cè)。
本文采用sequence-to-sequence 編解碼器結(jié)構(gòu)作為泊位預(yù)測(cè)模型,其中編碼器和解碼器采用BiLSTM 網(wǎng)絡(luò)。編碼器端將不定長(zhǎng)序列輸出為定長(zhǎng)序列,由于輸入序列較長(zhǎng),解碼器端難以獲得有效的數(shù)據(jù)信息。因此,本文引入注意力機(jī)制,增強(qiáng)局部數(shù)據(jù)特征學(xué)習(xí)能力,保留BiLSTM 編碼器對(duì)輸入序列的輸出,通過CNN 獲得多變量的時(shí)間模式信息,并存儲(chǔ)上下文信息。通過對(duì)模型進(jìn)行訓(xùn)練,根據(jù)學(xué)習(xí)特征信息,將輸入序列與模型輸出關(guān)聯(lián)起來,并對(duì)相關(guān)性高的序列分配較高的學(xué)習(xí)權(quán)重,用輸出序列提取高度相關(guān)的有用特征。解碼器將結(jié)合編碼器輸出信息及注意力機(jī)制存儲(chǔ)的時(shí)間模式信息,輸出預(yù)測(cè)目標(biāo)序列。
BiLSTM 是雙向LSTM,由前向LSTM 與后向LSTM 組合而成,它們用來建模上下文信息,具有更強(qiáng)的長(zhǎng)期信息記憶能力。
BiLSTM 的單元結(jié)構(gòu)如圖 1 所示,其中(x1,x2,…,xm)為輸入序列,LSTML為前向LSTM,LSTMR為后向LSTM,hLm為前向LSTM 隱藏狀態(tài)向量,hRm為后向LSTM 隱藏狀態(tài)向量,ht為BiLSTM 的隱藏狀態(tài)向量。BiLSTM 的隱藏狀態(tài)需要結(jié)合前向和后向2 個(gè)方向的隱藏狀態(tài)。
BiLSTM 的隱藏狀態(tài)向量為
BiLSTM 是由2 條LSTM 鏈?zhǔn)浇Y(jié)構(gòu)組成,而LSTM 的內(nèi)部結(jié)構(gòu)可參見文獻(xiàn)[32-33]。
BiLSTM 中的單向LSTM 描述如下。每一個(gè)步長(zhǎng)t與其對(duì)應(yīng)的輸入序列為X={x1,x2,…,xw}(w為滑動(dòng)窗口大?。?,網(wǎng)絡(luò)內(nèi)部單元中包括輸入門it、遺忘門ft、輸出門ot和隱含層ht。狀態(tài)單元ct通過控制it、ft和ot來控制數(shù)據(jù)的記憶及遺忘,如式(2)~式(9)所示。
圖1 BiLSTM 單元結(jié)構(gòu)
其中,Wi、Wf、Wo、表示輸入過程的權(quán)重參數(shù),Ui、Uf、Uo、Uc表示狀態(tài)轉(zhuǎn)移權(quán)重參數(shù),b i、bf、bo、bc表示偏差參數(shù),表示候選記憶細(xì)胞,tanh(?)表示雙曲正切函數(shù),·表示點(diǎn)乘。
sigmoid 函數(shù)σ(x)為一個(gè)logistic 函數(shù),它可以將一個(gè)實(shí)數(shù)映射到(0,1)。tanh(?)是雙曲正切函數(shù),它可以將數(shù)值縮放到(?1,1)。三類門限控制單元共同控制信息進(jìn)入和離開記憶細(xì)胞,輸入門it調(diào)節(jié)進(jìn)入記憶細(xì)胞的新信息,遺忘門ft控制記憶細(xì)胞中保存的信息,輸出門ot定義輸出信息。LSTM 的門結(jié)構(gòu)使時(shí)間序列上的信息形成一個(gè)有效的依賴關(guān)系。
sequence-to-sequence 模型在處理序列任務(wù)時(shí),對(duì)輸入序列或輸出序列的長(zhǎng)度沒有限制,可執(zhí)行不定長(zhǎng)輸入和不定長(zhǎng)輸出。sequence-to-sequence 模型結(jié)構(gòu)如圖2 所示。
圖2 sequence-to-sequence 模型結(jié)構(gòu)
圖2 中,sequence-to-sequence 模型由編碼器、上下文向量vt和解碼器組成。編解碼器通常是多層的RNN 或LSTM 結(jié)構(gòu),本文選擇BiLSTM 網(wǎng)絡(luò)作為編碼器和解碼器網(wǎng)絡(luò)。上下文向量vt包含了x1,x2,…,xm隱含層編碼信息。對(duì)于時(shí)間t,將編碼器隱含層ht、解碼器之前時(shí)刻的輸出yt?1、之前時(shí)刻的隱含層狀態(tài)st?1以及vt輸入解碼器。最后得到解碼器的隱含層狀態(tài)st,解碼器對(duì)輸出值進(jìn)行預(yù)測(cè)。
sequence-to-sequence 編解碼器結(jié)構(gòu)模型計(jì)算式如式(10)和式(11)所示。
其中,x和y分別為sequence-to-sequence 編碼器端輸入序列和解碼器端最終輸出預(yù)測(cè)值。
編碼器輸入端是x和上一個(gè)時(shí)間步的隱藏狀態(tài)ht?1,輸出端是當(dāng)前時(shí)間步的隱藏狀態(tài)ht,即
對(duì)原始時(shí)間序列使用BiLSTMBlockCell 處理,得到每個(gè)時(shí)間步的隱藏狀態(tài)hi(hi為列向量),每個(gè)hi維度為m,w是滑動(dòng)窗口長(zhǎng)度,得到的隱藏狀態(tài)矩陣。隱藏狀態(tài)矩陣的行列向量意義如下。
1) 行向量代表單個(gè)變量在所有時(shí)間步的狀態(tài),即同一變量的所有時(shí)間步構(gòu)成的向量。
2) 列向量代表單個(gè)時(shí)間步狀態(tài),即同一時(shí)間步下的所有變量構(gòu)成的向量。
所提模型中利用一維CNN 學(xué)習(xí)時(shí)間序列數(shù)據(jù)的時(shí)間模式信息,即TPA(temporal pattern attention)作為網(wǎng)絡(luò)的局部特征學(xué)習(xí)方式[23]。TPA 機(jī)制結(jié)構(gòu)如圖3 所示。圖3 中最左側(cè)箭頭表示對(duì)變量的處理,每一行表示一個(gè)變量的時(shí)間序列數(shù)據(jù)。通過卷積計(jì)算獲得該變量在卷積核范圍內(nèi)的時(shí)間模式矩陣,評(píng)分函數(shù)計(jì)算時(shí)間模式矩陣的分值,并通過sigmoid 函數(shù)將分值歸一化,獲得注意力權(quán)重α,結(jié)合時(shí)間模式矩陣及注意力權(quán)重計(jì)算得到上下文向量vt。將encoder 中的上下文向量vt及隱藏狀態(tài)ht,與decoder 中的隱藏狀態(tài)st進(jìn)行連接,并通過輸出層及softmax 函數(shù)來計(jì)算輸出預(yù)測(cè)值。
以下詳細(xì)描述TPA 機(jī)制在所提模型中的作用機(jī)理。
首先,利用一維CNN 進(jìn)行卷積計(jì)算。
卷積配置為k個(gè)濾波器(filter),卷積核(kernel)尺寸為1×T(T代表注意力所覆蓋的范圍,通常令T=w),將上述kernel 沿隱藏狀態(tài)矩陣H的行向量計(jì)算卷積,提取該變量在該卷積核范圍attn_length內(nèi)的時(shí)間模式矩陣如式(13)所示。
圖3 TPA 機(jī)制結(jié)構(gòu)
對(duì)上述學(xué)習(xí)到的時(shí)間模式進(jìn)行評(píng)分,時(shí)間模式的評(píng)分函數(shù)f為
注意力權(quán)重αi為
對(duì)HC的每一行做加權(quán)求和,得到上下文向量vt為
其中,αi為時(shí)間模式矩陣HC的第i行注意力權(quán)重,為時(shí)間模式矩陣HC的第i行。
將上下文向量vt與encoder 的隱藏狀態(tài)ht傳入decoder。將encoder 的隱藏狀態(tài)ht、上下文向量vt與decoder 隱藏狀態(tài)st連接,如式(17)所示。
其中,Wv為權(quán)值參數(shù)。
decoder 通過接收前一個(gè)輸出序列yt?1以及decoder 的上一個(gè)時(shí)間步的隱藏狀態(tài)st?1和上下文向量vt計(jì)算當(dāng)前隱藏狀態(tài)st,如式(18)所示。
最后,結(jié)合decoder 當(dāng)前時(shí)間步隱藏狀態(tài)st及上下文向量vt,通過輸出層及softmax 函數(shù)來計(jì)算輸出yt,如式(19)所示。
softmax 函數(shù)是一個(gè)概率函數(shù),max 表示取大概率最大值,它的作用是將所有輸出映射到(0,1),softmax 最大值作為最終的輸出。
假設(shè)有一個(gè)數(shù)組Y,數(shù)組長(zhǎng)度為k,yi表示Y中的第i個(gè)元素,那么元素yi的softmax 值為
泊位占有率預(yù)測(cè)過程如圖4 所示。首先,獲取目標(biāo)停車場(chǎng)歷史停車數(shù)據(jù)信息;然后,對(duì)數(shù)據(jù)進(jìn)行清洗及預(yù)處理,對(duì)基于注意力機(jī)制的sequence-to-sequence泊位預(yù)測(cè)模型進(jìn)行訓(xùn)練;最后,將訓(xùn)練好的預(yù)測(cè)模型進(jìn)行泊位預(yù)測(cè)?;谧⒁饬C(jī)制的sequence-to-sequence 泊位占有率預(yù)測(cè)算法流程如圖5 所示。
圖4 泊位占有率預(yù)測(cè)過程
圖5 基于注意力機(jī)制的sequence-to-sequence 泊位占有率預(yù)測(cè)算法流程
基于注意力機(jī)制的sequence-to-sequence 泊位占有率預(yù)測(cè)算法如算法1 所示。
算法1基于注意力機(jī)制的sequence-to-sequence泊位占有率預(yù)測(cè)算法
1) 輸入原始數(shù)據(jù);
2) 對(duì)數(shù)據(jù)進(jìn)行清洗及預(yù)處理,包括缺失數(shù)據(jù)填充、剔除無用數(shù)據(jù)、數(shù)據(jù)標(biāo)準(zhǔn)化和歸一化;
3) 進(jìn)行特征相關(guān)性計(jì)算和檢驗(yàn);
4) 劃分訓(xùn)練集和測(cè)試集;
5) 建立基于sequence-to-sequence 泊位預(yù)測(cè)模型結(jié)構(gòu);
6) 構(gòu)建TPA 機(jī)制層;
7) 用訓(xùn)練集訓(xùn)練基于注意力機(jī)制的sequence-to-sequence 泊位預(yù)測(cè)模型及結(jié)構(gòu)參數(shù),得到訓(xùn)練好的預(yù)測(cè)模型;
8) 通過將測(cè)試集輸入訓(xùn)練好的預(yù)測(cè)模型得到預(yù)測(cè)結(jié)果。
本文采用均方根誤差(RMSE,root mean squared error)和平均絕對(duì)誤差(MAE,mean absolute error)對(duì)所建模型的預(yù)測(cè)結(jié)果進(jìn)行度量。RMSE 和MAE 計(jì)算式如式(21)和式(22)所示。
其中,n表示樣本數(shù),di表示一組測(cè)量值與真實(shí)值的偏差,xi表示真實(shí)值,表示預(yù)測(cè)值。
MAE 范圍為[0,+∞),當(dāng)預(yù)測(cè)值與真實(shí)值完全吻合時(shí)MAE=0,為完美模型,誤差越大,MAE 越大。RMSE 描述所有預(yù)測(cè)結(jié)果的偏離程度,而MAE 在對(duì)預(yù)測(cè)結(jié)果進(jìn)行評(píng)價(jià)時(shí),可克服誤差相互抵消的問題,因此對(duì)于實(shí)際預(yù)測(cè)誤差大小的反映更為準(zhǔn)確。
本文測(cè)試數(shù)據(jù)來自加州大學(xué)歐文分校(UCI,University of California Irvine)的停車場(chǎng)數(shù)據(jù)庫(kù)UCI,該數(shù)據(jù)集包括伯明翰市某區(qū)域內(nèi)29 個(gè)停車場(chǎng)從2016 年10 月4 號(hào)至2016 年12 月19 號(hào)之間的36 285 條數(shù)據(jù)。數(shù)據(jù)信息包含停車場(chǎng)ID、停車時(shí)間、停車場(chǎng)的泊位數(shù)、已有車輛。本文使用數(shù)據(jù)集中包括BHMBCCMKT01 在內(nèi)的28 個(gè)停車場(chǎng)的停車數(shù)據(jù)作為實(shí)驗(yàn)測(cè)試數(shù)據(jù)。
所提模型選取泊位入駐數(shù)、天氣、節(jié)假日、工作日作為模型的4 個(gè)特征。首先對(duì)數(shù)據(jù)集中數(shù)據(jù)缺失值進(jìn)行臨近均值填充,然后對(duì)數(shù)據(jù)集進(jìn)行歸一化處理。對(duì)每個(gè)單個(gè)停車場(chǎng)數(shù)據(jù)集進(jìn)行劃分,其中80%為訓(xùn)練集,20%為測(cè)試集。
本文測(cè)試分為兩部分,第一部分測(cè)試所提模型的結(jié)構(gòu),并通過消融實(shí)驗(yàn),重點(diǎn)測(cè)試所提模型帶有注意力機(jī)制和不帶注意力機(jī)制的數(shù)據(jù)及對(duì)比分析;第二部分測(cè)試所提模型對(duì)停車場(chǎng)數(shù)據(jù)的測(cè)試結(jié)果及對(duì)比分析。
本文采用sequence-to-sequence 編解碼器結(jié)構(gòu)來預(yù)測(cè)泊位占有率,采用BiLSTM 結(jié)構(gòu)進(jìn)行編解碼操作,然后通過BiLSTM 層數(shù)優(yōu)化模型參數(shù)。最初實(shí)驗(yàn)的學(xué)習(xí)率設(shè)置為0.01,衰減率設(shè)置為0.5,隱含層節(jié)點(diǎn)的數(shù)量設(shè)置為64,CNN 設(shè)置4 個(gè)濾波器,卷積核大小為1 × 18。將數(shù)據(jù)集輸入網(wǎng)絡(luò)進(jìn)行訓(xùn)練,測(cè)試編碼器和解碼器不同層數(shù)BiLSTM 網(wǎng)絡(luò)的RMSE 變化情況。
本文分別對(duì)單層、雙層、三層、四層及五層BiLSTM 進(jìn)行測(cè)試,并記錄各自的RMSE 變化過程。測(cè)試結(jié)果表明,當(dāng)模型經(jīng)過多次迭代RMSE 趨于穩(wěn)定時(shí),采用單層、四層BiLSTM 結(jié)構(gòu)的訓(xùn)練RMSE較大,經(jīng)過雙層、三層及五層BiLSTM 結(jié)構(gòu)訓(xùn)練RMSE 相對(duì)較小且三層為最小。因此,本文選擇編碼器解碼器內(nèi)部BiLSTM層數(shù)為RMSE最小的三層BiLSTM。在深度學(xué)習(xí)中,模型通過訓(xùn)練從數(shù)據(jù)樣本中學(xué)習(xí)所有樣本的變化規(guī)律,容易導(dǎo)致過擬合或欠擬合。通過增加模型訓(xùn)練迭代的次數(shù),可以克服模型擬合不足的現(xiàn)象。對(duì)于過擬合的處理,對(duì)神經(jīng)單元以一定概率斷開dropout,dropout 通過概率斷開神經(jīng)網(wǎng)絡(luò)之間的連接,減少每次訓(xùn)練時(shí)實(shí)際參與計(jì)算的模型的參數(shù)量,從而減少了模型的實(shí)際容量,來防止過擬合。需要注意的是,在測(cè)試時(shí),dropout 會(huì)恢復(fù)所有的連接,保證模型測(cè)試時(shí)具有更強(qiáng)的泛化特性,使預(yù)測(cè)結(jié)果具有更好的多樣性。本文中dropout 概率設(shè)置為0.5。
以下實(shí)驗(yàn)將利用所提模型分別對(duì)單個(gè)停車場(chǎng)BHMBCCMKT01和總體28個(gè)停車場(chǎng)的泊位占有率進(jìn)行仿真測(cè)試。
3.3.1單個(gè)停車場(chǎng)數(shù)據(jù)測(cè)試分析及對(duì)比實(shí)驗(yàn)
本節(jié)首先進(jìn)行所提預(yù)測(cè)模型有注意力機(jī)制和無注意力機(jī)制在不同步長(zhǎng)下對(duì)單個(gè)停車場(chǎng)數(shù)據(jù)執(zhí)行預(yù)測(cè)的誤差對(duì)比分析,然后給出不同預(yù)測(cè)模型對(duì)單個(gè)停車場(chǎng)數(shù)據(jù)的預(yù)測(cè)精度的對(duì)比。
當(dāng)訓(xùn)練sequence-to-sequence 模型時(shí),使用迭代預(yù)測(cè),并且通過選擇模型的參數(shù)來獲得實(shí)驗(yàn)結(jié)果。sequence-to-sequence 泊位預(yù)測(cè)模型參數(shù)如表1 所示,輸出步長(zhǎng)為36,編碼器端BiLSTM 隱含神經(jīng)元的個(gè)數(shù)E_hidden 和解碼器端BiLSTM 隱含神經(jīng)元個(gè)數(shù)D_hidden 均為64,學(xué)習(xí)率Learning_rate 為0.001,遺忘率 Drop_rate 為 0.75,輸入特征數(shù)Input_dim 為4,迭代次數(shù)Epoch 為1 000,輸入數(shù)據(jù)長(zhǎng)度Time_step 為18。
表1 sequence-to-sequence 泊位預(yù)測(cè)模型參數(shù)
表2 為所提模型有注意力機(jī)制和無注意力機(jī)制對(duì)數(shù)據(jù)集BHMBCCMKT01 的預(yù)測(cè)值與真實(shí)值對(duì)比,圖6 和圖7 為相應(yīng)預(yù)測(cè)值與真實(shí)值對(duì)比曲線。圖8 為所提模型有注意力機(jī)制和無注意力機(jī)制下泊位預(yù)測(cè)MAE 隨步長(zhǎng)變化的曲線。
由表2 數(shù)據(jù)可知,有注意力機(jī)制的預(yù)測(cè)數(shù)據(jù)平均誤差為6.75,無注意力機(jī)制的預(yù)測(cè)數(shù)據(jù)平均誤差為17.75。對(duì)比圖6 和圖7 可以看出,注意力機(jī)制在所提模型中具有重要作用。從圖8 可以看出,所提模型無注意力機(jī)制時(shí),其MAE 隨步長(zhǎng)的增加上升較快;而有注意力機(jī)制時(shí),其MAE 隨步長(zhǎng)的增加上升較慢。
當(dāng)利用所提預(yù)測(cè)模型預(yù)測(cè)未來36 個(gè)目標(biāo)步長(zhǎng)的停車場(chǎng)泊位占有率時(shí),其對(duì)應(yīng)的真實(shí)值為194,而預(yù)測(cè)值為178,其誤差為16,預(yù)測(cè)結(jié)果可以滿足實(shí)際預(yù)測(cè)精度要求。綜上分析可知,所提模型在步長(zhǎng)取較大值時(shí)預(yù)測(cè)結(jié)果的誤差相對(duì)穩(wěn)定,模型可達(dá)到較好的預(yù)測(cè)效果。
3.3.2多個(gè)停車場(chǎng)數(shù)據(jù)測(cè)試分析
使用28 個(gè)停車場(chǎng)作為實(shí)驗(yàn)數(shù)據(jù),并對(duì)每一個(gè)停車場(chǎng)數(shù)據(jù)集按4:1 進(jìn)行數(shù)據(jù)劃分,然后進(jìn)行模型訓(xùn)練和測(cè)試。使用基于注意力機(jī)制的sequence-tosequence 預(yù)測(cè)模型同LSTM 預(yù)測(cè)模型進(jìn)行對(duì)比分析。表3為泊位占有率預(yù)測(cè)最小MAE,顯示了sequenceto-sequence 泊位占有率預(yù)測(cè)模型以及LSTM 泊位預(yù)測(cè)模型在數(shù)據(jù)集上的總體效果。LSTM 預(yù)測(cè)模型的預(yù)測(cè)步長(zhǎng)為10,sequence-to-sequence 預(yù)測(cè)步長(zhǎng)為36,從表3 中可以看出,sequence-to-sequence 泊位預(yù)測(cè)模型在28 個(gè)停車場(chǎng)的數(shù)據(jù)集測(cè)試中,有23 個(gè)預(yù)測(cè)結(jié)果的MAE小于或等于LSTM泊位預(yù)測(cè)模型。sequence-to-sequence 泊位預(yù)測(cè)模型MAE 的中位數(shù)(median)為0.021,LSTM 泊位預(yù)測(cè)模型MAE 的中位數(shù)為0.025。sequence-to-sequence 泊位預(yù)測(cè)模型MAE 的平均值(mean)為0.024,LSTM 泊位預(yù)測(cè)模型MAE 的平均值(mean)為0.028。sequenceto-sequence 泊位預(yù)測(cè)模型MAE 的最大值(max)為0.059,LSTM 預(yù)測(cè)模型MAE 的最大值(max)為0.078。sequence-to-sequence 預(yù)測(cè)模型MAE 最小值(min)為0.010,LSTM 泊位預(yù)測(cè)模型最小值(min)為0.008 6。從整體來看,sequence-to-sequence 泊位預(yù)測(cè)模型預(yù)測(cè)結(jié)果MAE 的中位數(shù)、平均值、最大值均優(yōu)于LSTM 泊位預(yù)測(cè)模型。
表2 所提模型有注意力機(jī)制與無注意力機(jī)制的預(yù)測(cè)值與真實(shí)值對(duì)比(步長(zhǎng)=36)
圖6 sequence-to-sequence 有注意力機(jī)制模型預(yù)測(cè)值與真實(shí)值對(duì)比曲線
圖7 sequence-to-sequence 無注意力機(jī)制模型預(yù)測(cè)值與真實(shí)值對(duì)比曲線
圖8 所提模型有注意力機(jī)制和無注意力機(jī)制MAE 隨步長(zhǎng)變化的曲線
表3 泊位占有率預(yù)測(cè)的最小MAE 對(duì)比數(shù)據(jù)
如圖9 所示,sequence-to-sequence 泊位預(yù)測(cè)模型預(yù)測(cè)結(jié)果的MAE 更為集中且相對(duì)更小。因此,sequence-to-sequence 泊位預(yù)測(cè)模型預(yù)測(cè)精度整體優(yōu)于LSTM 泊位預(yù)測(cè)模型且更為穩(wěn)定。
圖9 sequence to sequence 模型與LSTM 模型MAE 箱線圖分布
綜上所述,基于注意力機(jī)制的sequence-tosequence 泊位預(yù)測(cè)模型在泊位預(yù)測(cè)中,在增加了預(yù)測(cè)步長(zhǎng)的前提下預(yù)測(cè)精度和穩(wěn)定性均有提升。
本文以泊位占有率的預(yù)測(cè)作為研究對(duì)象,提出了一種基于注意力機(jī)制的sequence-to-sequence 模型對(duì)泊位占有率問題進(jìn)行求解,為了提高泊位占有率的預(yù)測(cè)精度,在模型中將天氣、工作日、節(jié)假日等特征作為泊位占有率的融合特征,使模型的泛化能力更強(qiáng),精度更高。在本文的預(yù)測(cè)模型中,利用時(shí)間模式注意力機(jī)制捕獲數(shù)據(jù)的局部特征,利用sequence-to-sequence 模型多輸入多輸出的特性,使模型的擬合能力更強(qiáng)。通過對(duì)模型的訓(xùn)練和參數(shù)調(diào)整,對(duì)測(cè)試集進(jìn)行測(cè)試,使用RMSE 和MAE 對(duì)模型預(yù)測(cè)結(jié)果進(jìn)行評(píng)估,結(jié)果表明,所提模型表現(xiàn)出更好的預(yù)測(cè)效果。將所提模型與LSTM 模型的泊位占有率預(yù)測(cè)算法得到的預(yù)測(cè)數(shù)據(jù)進(jìn)行比較,驗(yàn)證了所提模型和方法的有效性。在未來工作中,將對(duì)存在奇異點(diǎn)和噪聲數(shù)據(jù)集的處理進(jìn)行研究,并考慮泊位占有率的空間特征關(guān)聯(lián)信息,設(shè)計(jì)處理更為復(fù)雜情形的預(yù)測(cè)模型,致力于模型的理論分析和可解釋性,進(jìn)一步提高預(yù)測(cè)精度,并推廣預(yù)測(cè)模型的應(yīng)用前景。