劉 藝,張 琨
(南京理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,江蘇 南京210094)
智能運(yùn)輸系統(tǒng)為人們的出行帶來極大便利,而交通流預(yù)測是保障智能運(yùn)輸系統(tǒng)可靠性的關(guān)鍵技術(shù)。隨著科技進(jìn)步,人們已經(jīng)可以通過檢測設(shè)備獲得交通流數(shù)據(jù)。短時(shí)交通流預(yù)測就是根據(jù)這些數(shù)據(jù),運(yùn)用某種預(yù)測方法,對未來短時(shí)間內(nèi)的交通流信息做出預(yù)測,以便用于交通控制和誘導(dǎo),達(dá)到提高運(yùn)輸效率、緩解交通擁擠的目標(biāo)。
許多學(xué)者致力于研究交通流的短時(shí)預(yù)測,目前常用的預(yù)測模型可分為3類:統(tǒng)計(jì)理論模型,如歷史平均模型、時(shí)間序列模型、卡爾曼濾波模型等;人工智能模型,如神經(jīng)網(wǎng)絡(luò)模型;組合預(yù)測模型。其中歷史平均模型、時(shí)間序列模型建模簡單,但無法表現(xiàn)交通流的變化;卡爾曼濾波模型精度高,但在預(yù)測非線性交通流時(shí)性能較差。人工智能模型的優(yōu)勢在于具有識別復(fù)雜非線性系統(tǒng)的特性,其中BP神經(jīng)網(wǎng)絡(luò)是最常用的模型,廣泛運(yùn)用于交通流預(yù)測。BP神經(jīng)網(wǎng)絡(luò)是靜態(tài)前饋網(wǎng)絡(luò),存在易陷入局部極值等不足,制約了BP網(wǎng)絡(luò)在交通流預(yù)測中的泛化能力。Elman網(wǎng)絡(luò)是在BP網(wǎng)絡(luò)的基礎(chǔ)上增加一層承接層,由于其具有適應(yīng)時(shí)變特性的能力,一些學(xué)者提出利用Elman神經(jīng)網(wǎng)絡(luò)進(jìn)行交通流預(yù)測,改善了系統(tǒng)的動態(tài)性能。但Elman網(wǎng)絡(luò)依然存在易陷入局部極值的缺點(diǎn),為此本文提出用遺傳算法優(yōu)化Elman神經(jīng)網(wǎng)絡(luò)連接權(quán)值的GA-Elman模型。同時(shí)由于交通系統(tǒng)具有復(fù)雜、非線性的特點(diǎn),交通流變化具有隨機(jī)性,可以把交通流看作非線性、干擾強(qiáng)的信號,其中噪聲是由一些突發(fā)事件,例如交通事故或極端天氣而造成的交通流急劇變化。對非平穩(wěn)過程信號,一些傳統(tǒng)去噪方法有其局限性,小波分析由于具有時(shí)頻局部化、選基靈活性等優(yōu)點(diǎn),成為信號去噪的強(qiáng)有力工具,已有學(xué)者將小波分析應(yīng)用于交通流數(shù)據(jù)的去噪中。本文先用小波分析的方法對交通流量去噪,得到能夠較為真實(shí)地反映交通流規(guī)律的時(shí)間序列,然后構(gòu)造GA-Elman模型對交通流量的預(yù)測,從而提高預(yù)測精度。
在幾種基于小波分析的去噪方法中,模極大值法、平移不變量法能很好地保留并反映信號特征的奇異點(diǎn)信息,但計(jì)算速度較慢。常用的閾值去噪法能很好地抑制噪聲,保留特征突變點(diǎn),其去噪效果依賴于閾值的選取。為使交通流數(shù)據(jù)能較好地還原交通系統(tǒng)的真實(shí)特性,本文用小波啟發(fā)式閾值去噪方法去除交通流信號中的噪聲,使得到的信號能還原交通流真實(shí)狀況的非線性特征。
一個(gè)含噪聲的一維信號模型可表示為
式中:ft為含噪信號;st為原始信號;nt為方差為σ2的高斯白噪聲,服從N(0,σ2);M為信號長度。
對ft作離散小波變換后得到的小波系數(shù)包含有用信號和噪聲信號,分別對應(yīng)兩部分系數(shù)。其中有用信號分解所得系數(shù)較大,噪聲分解得到的小波系數(shù)值較小。先對含噪信號進(jìn)行三層小波分解
式中:Ai為分解的低頻部分;Di為高頻部分,i=1,2,3,噪聲部分通常包含在Di中。
選取一個(gè)合適的閾值λ,當(dāng)小波分解系數(shù)小于λ時(shí),認(rèn)為此部分分解系數(shù)對應(yīng)的信號是噪聲信號,丟棄這部分系數(shù);當(dāng)分解系數(shù)大于λ時(shí),認(rèn)為這時(shí)的分解系數(shù)是由有用信號引起的,把這一部分直接保留或按照某一固定量向零收縮,最后用得到的小波系數(shù)進(jìn)行重構(gòu),得出去噪后的信號。
閾值去噪法的去噪效果好壞依賴于閾值的選取。有3種閾值選取的方法:固定閾值,Stein無偏似然估計(jì)閾值,啟發(fā)式閾值。Stein無偏似然估計(jì)方法比較保守,當(dāng)噪聲在信號的高頻段分布較多時(shí)效果并不好。而啟發(fā)式閾值是固定閾值和Stein無偏似然估計(jì)閾值的綜合,去噪更為有效。
啟發(fā)式閾值去噪算法分為以下三個(gè)步驟。
步驟一:小波分解。選擇合適的小波基對信號作j層分解,由Mallat金字塔算法得
式中:cj,k,dj,k分別為信號在分解層數(shù)j下的離散逼近系數(shù)和離散細(xì)節(jié)系數(shù);h0(m),h1(m)分別為低通濾波器系數(shù)和高通濾波器系數(shù)。
式中:N為濾波器長度。
步驟二:選取閾值,對小波分解后獲得的系數(shù)進(jìn)行處理。使用Dohono提出的軟閾值函數(shù)為
Stein無偏似然估計(jì)采用自適應(yīng)的閾值選擇方法,即選擇閾值λ,計(jì)算λ的似然估計(jì),再將λ最小化,得到所選閾值。
設(shè)信號x(k)為一個(gè)離散時(shí)間序列,k為時(shí)刻,k=1,2,…n,令信號y(k)為的升序序列,再令
λ的計(jì)算公式為
啟發(fā)式閾值估計(jì)是固定閾值和無偏似然估計(jì)的綜合。設(shè)信號x(k)長度為n,由無偏似然估計(jì)得到的閾值為λ1,固定閾值方法得到的閾值為λ2,令
啟發(fā)式閾值的估計(jì)公式為
步驟三:信號重構(gòu)。根據(jù)小波分解的第N層系數(shù)和閾值處理后的第一層到j(luò)層高頻系數(shù)進(jìn)行重構(gòu)。重構(gòu)算法為
通過小波的分解和重構(gòu),即可達(dá)到對交通流量的消噪處理。
Elman網(wǎng)絡(luò)是一種典型的動態(tài)神經(jīng)網(wǎng)絡(luò),它是在BP網(wǎng)絡(luò)的基礎(chǔ)上增加承接層,用來存儲隱含層上一時(shí)刻的輸出,相當(dāng)于延時(shí)算子,對歷史數(shù)據(jù)更敏感,具有時(shí)變性、動態(tài)性。與BP神經(jīng)網(wǎng)絡(luò)相比,Elman網(wǎng)絡(luò)的優(yōu)點(diǎn)是其具有反饋連接,具有動態(tài)特性,比BP網(wǎng)絡(luò)更適合建立時(shí)間序列預(yù)測模型。Elman網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 Elman網(wǎng)絡(luò)結(jié)構(gòu)
Elman網(wǎng)絡(luò)有四層,除了和BP網(wǎng)絡(luò)相同的輸入層、隱含層、輸出層,還有一個(gè)承接層。輸入層接收外部輸入,隱含層對信號進(jìn)行處理、變換,承接層存儲隱含層上一次迭代的輸出并反饋給隱含層,輸出層對隱含層的輸出信號作線形加權(quán)后輸出網(wǎng)絡(luò)。Elman網(wǎng)絡(luò)的非線性狀態(tài)空間表達(dá)式為
1)隱含層輸出
2)承接層輸出
3)網(wǎng)絡(luò)輸出
式中:l為訓(xùn)練次數(shù);u為r維輸入向量;x為n維隱含層單元向量;y為m維輸出向量;xc為n維隱含層向量;W1∈Rn×n,W2∈Rn×r,W3∈Rm×n分別為承接層與隱含層之間,輸入層與隱含層之間,隱含層與輸出層之間的權(quán)值矩陣;g(·)為輸出層的傳遞函數(shù),將隱含層輸出作線性變化,采用purelin函數(shù);f(·)為隱含層的傳遞函數(shù),采用tansig函數(shù)。
Elman神經(jīng)網(wǎng)絡(luò)也采用誤差反向傳播算法進(jìn)行權(quán)值修正。把樣本數(shù)據(jù)輸入網(wǎng)絡(luò),經(jīng)過每一層的函數(shù)映射和加權(quán)后,從輸出層輸出。把輸出值與目標(biāo)輸出相比,計(jì)算誤差。再把誤差反向傳播,得到權(quán)值矩陣的梯度,根據(jù)梯度重新計(jì)算權(quán)值矩陣。其中權(quán)值矩陣W2和W3的修正和BP網(wǎng)絡(luò)類似,差別在于W1采用鏈?zhǔn)綄?dǎo)數(shù)規(guī)則來求取,在T時(shí)間段內(nèi)為
最后不斷更新權(quán)值矩陣,直到實(shí)際輸出與預(yù)期輸出的誤差已經(jīng)小于目標(biāo)誤差,或訓(xùn)練次數(shù)達(dá)到上限。本文誤差目標(biāo)函數(shù)采用平方和函數(shù)來計(jì)算
式中:(l)為目標(biāo)輸入向量。
由于Elman神經(jīng)網(wǎng)絡(luò)采用反向傳播算法進(jìn)行權(quán)值修正,因此存在學(xué)習(xí)速度較慢、易陷入局部極小值等缺點(diǎn),為此,本文提出遺傳算法優(yōu)化Elman神經(jīng)網(wǎng)絡(luò)的GA-Elman神經(jīng)網(wǎng)絡(luò)模型。遺傳算法有多點(diǎn)并行搜索的特點(diǎn),可以克服學(xué)習(xí)效率低、容易陷入局部最優(yōu)等缺點(diǎn),是神經(jīng)網(wǎng)絡(luò)權(quán)值訓(xùn)練學(xué)習(xí)的有效方法。
用遺傳算法優(yōu)化神經(jīng)網(wǎng)絡(luò)的基本思想是:利用遺傳算法全局搜索的作用,尋找到最優(yōu)的神經(jīng)網(wǎng)絡(luò)各層神經(jīng)元初始連接權(quán)值。遺傳算法優(yōu)化Elman神經(jīng)網(wǎng)絡(luò)的具體學(xué)習(xí)步驟如下:
1)種群P初始化。設(shè)定個(gè)體數(shù)目、交叉概率Pc和突變概率Pe,初始化種群中個(gè)體的連接權(quán)值(初始權(quán)值隨機(jī)產(chǎn)生),并編碼。在編碼時(shí),由于Elman網(wǎng)絡(luò)的權(quán)值為實(shí)數(shù),為避免二進(jìn)制編碼引起碼串過長,采用實(shí)數(shù)編碼。因此,種群中任意個(gè)體用一組實(shí)數(shù)值表示,代表一種構(gòu)成Elman神經(jīng)網(wǎng)絡(luò)的初始權(quán)值。
2)將樣本數(shù)據(jù)輸入種群的個(gè)體進(jìn)行訓(xùn)練,得到實(shí)際輸出和預(yù)期輸出誤差的平方和E(i),公式為
式中:i=1,…,N為染色體數(shù)目;m為輸出層節(jié)點(diǎn)數(shù)目;p為學(xué)習(xí)樣本數(shù)目;Vm為實(shí)際輸出;Tm為期望輸出。
計(jì)算種群中每一個(gè)體的適應(yīng)度函數(shù),然后排序,選擇誤差平方和的倒數(shù)作為適應(yīng)度函數(shù)
3)對種群的選擇操作采用輪盤賭法,根據(jù)個(gè)體適應(yīng)度所占總體適應(yīng)度之和的比值,公式為
4)以概率Pc對父輩個(gè)體交叉操作,用實(shí)數(shù)交叉法交換部分基因,產(chǎn)生新的個(gè)體,對沒有產(chǎn)生交叉的個(gè)體則直接進(jìn)行復(fù)制。第k個(gè)個(gè)體ak和第l個(gè)個(gè)體al在j位的交叉操作按如下公式進(jìn)行
5)利用概率Pm選取第i個(gè)個(gè)體的第j個(gè)基因aij進(jìn)行變異,變異操作方法如下
式中:amax為aij的上限,amin為aij的下限,f(g)=r2(1-g/Gmax)2,r2為隨機(jī)產(chǎn)生的值,g為目前進(jìn)化代數(shù),Gmax為設(shè)定進(jìn)化代數(shù)上限,r為[0,1]間的隨機(jī)數(shù)。
6)產(chǎn)生新一代種群,判斷進(jìn)化代數(shù)是否達(dá)到結(jié)束條件。如已經(jīng)達(dá)到設(shè)定的最大進(jìn)化代數(shù),結(jié)束遺傳算法步驟。否則,轉(zhuǎn)到步驟3。
7)達(dá)到最大進(jìn)化代數(shù)之后,把最終種群中的最優(yōu)個(gè)體解碼就能得到優(yōu)化后網(wǎng)絡(luò)連接的權(quán)值。把權(quán)值賦給Elman網(wǎng)絡(luò)進(jìn)行訓(xùn)練。
本文實(shí)驗(yàn)采用廣州市站前路和站前橫路從2013年11月4日到12月1日,共28d的交通流量數(shù)據(jù),其中前27d作為訓(xùn)練數(shù)據(jù),第28天作為測試數(shù)據(jù)。路段的相對位置關(guān)系如圖2所示。其中A為待預(yù)測路段。收集A,B,C,D4個(gè)路段每隔5min斷面的交通流數(shù)據(jù),每天采集288組數(shù)據(jù)進(jìn)行仿真。設(shè)yt為交通量實(shí)測值,為交通量預(yù)測值,n為數(shù)據(jù)個(gè)數(shù),通過兩個(gè)誤差指標(biāo)來比較預(yù)測方法的準(zhǔn)確度:
1)平均百分比絕對誤差
2)相關(guān)系數(shù)
式中:EMPAE為交通量預(yù)測值偏離實(shí)測值的程度,r2為交通量預(yù)測值和實(shí)測值間的相關(guān)程度。
圖2 路段相對位置關(guān)系
A處測得27d的交通量數(shù)據(jù),如圖3所示。
圖3 27d實(shí)測交通量
為消除白噪聲干擾,分別用小波固定閾值去噪和啟發(fā)式閾值去噪法進(jìn)行處理。使用db4小波對原始信號進(jìn)行三層分解、閾值處理和重構(gòu)。固定閾值去噪的閾值取為3.867,啟發(fā)式閾值去噪D1層閾值取為8.103,D2層閾值取為9.156,D3層閾值取為6.308,去噪效果如圖4所示。
交通流數(shù)據(jù)經(jīng)過小波啟發(fā)式閾值去噪,較強(qiáng)的白噪聲干擾被去除,變化規(guī)律更加明顯和清晰。
交通流數(shù)據(jù)具有時(shí)空相關(guān)性的特點(diǎn),即某個(gè)斷面的交通流不僅和它前幾個(gè)時(shí)間段的交通流相關(guān),還會受到相鄰斷面的交通流影響。被預(yù)測路段用A表示,其上游路段用B、C、D表示。A在t時(shí)刻的交通流量用A(t)表示,則A(t)不僅與A在前d個(gè)時(shí)刻的流量A(t-1),…,A(t-d)相關(guān),還與B、C、D在t-1,…,t-m時(shí)刻的流量相關(guān)。在本文實(shí)驗(yàn)中,d取4,m取5,則神經(jīng)網(wǎng)絡(luò)的輸入為一個(gè)19維向量,輸出為一個(gè)1維向量。實(shí)驗(yàn)時(shí)分別用實(shí)際交通量數(shù)據(jù)、小波固定閾值去噪后的數(shù)據(jù)和小波啟發(fā)式閾值去噪后的數(shù)據(jù)進(jìn)行訓(xùn)練和預(yù)測。
圖4 小波啟發(fā)式閾值去噪后28d交通量
第一階段,建立Elman網(wǎng)絡(luò)并用遺傳算法優(yōu)化Elman神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值。輸入層的單元個(gè)數(shù)r取19,隱含層和承接層單元個(gè)數(shù)n為10,輸出層單元個(gè)數(shù)m取1。初始化種群的規(guī)模取為30,產(chǎn)生30組范圍在[-1,1]的隨機(jī)數(shù),每組長度為r×n+n×m+r+n=229,每一組隨機(jī)數(shù)代表一種Elman網(wǎng)絡(luò)的初始權(quán)值和閾值。對于給定的樣本輸入,計(jì)算每個(gè)網(wǎng)絡(luò)輸出和樣本輸出間的誤差和適應(yīng)度。然后進(jìn)行選擇、交叉(Pc取為0.7)和變異(Pe取為0.01)。每次迭代的最佳個(gè)體適應(yīng)度(誤差平方和)如圖5所示。經(jīng)過300次迭代,得到最優(yōu)個(gè)體,則其他個(gè)體是無效的。最優(yōu)個(gè)體解碼后的權(quán)值和閾值賦給Elman網(wǎng)絡(luò),作為網(wǎng)絡(luò)的初始權(quán)值和閾值再進(jìn)行訓(xùn)練。
圖5 每次迭代后最佳個(gè)體適應(yīng)度
第二階段,訓(xùn)練數(shù)據(jù)。將A(t-1),…,A(t-4),B(t-1),…,B(t-5),C(t-1),…,C(t-5),D(t-1),…,D(t-5)作為 Elman神經(jīng)網(wǎng)絡(luò)的輸入層,A(t)作為輸出層,目標(biāo)誤差為1e-2,訓(xùn)練函數(shù)為trainlm。用11月4日到11月31日的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),進(jìn)行訓(xùn)練。
第三階段,在訓(xùn)練好的Elman網(wǎng)絡(luò)上,用12月1日的數(shù)據(jù)作為測試。輸入A(t-1),…,A(t-4),B(t-1),…,B(t-5),C(t-1),…,C(t-5),D(t-1),…,D(t-5),輸出預(yù)測結(jié)果A(t)。
未經(jīng)小波去噪的Elman網(wǎng)絡(luò)和GA-Elman網(wǎng)絡(luò)模型經(jīng)過仿真,其實(shí)測數(shù)據(jù)和預(yù)測結(jié)果如圖6所示??梢钥闯?,未經(jīng)小波去噪的Elman網(wǎng)絡(luò)預(yù)測結(jié)果曲線基本可以和實(shí)際數(shù)據(jù)擬合,但收斂速度較低,在數(shù)據(jù)波動大時(shí),準(zhǔn)確率低,而且與真實(shí)值相比偏大。由圖6可以看出未經(jīng)小波去噪的GA-Elman網(wǎng)絡(luò)模型經(jīng)過仿真后,預(yù)測結(jié)果與實(shí)際數(shù)據(jù)吻合得更好,準(zhǔn)確度較高。小波固定閾值去噪后的Elman、GA-Elman網(wǎng)絡(luò)模型預(yù)測后的結(jié)果如圖7所示。小波啟發(fā)式閾值去噪后的Elman、GA-Elman網(wǎng)絡(luò)模型預(yù)測結(jié)果如圖8所示??梢钥闯鲂〔▎l(fā)式閾值去噪后,預(yù)測結(jié)果與實(shí)測數(shù)據(jù)的擬合度比去噪前高。
圖6 未經(jīng)小波去噪的預(yù)測結(jié)果
圖7 小波固定閾值去噪后的預(yù)測結(jié)果
從圖6~圖8和表1可知,小波啟發(fā)式閾值去噪后的GA-Elman模型EMPAE最小,為6.239,;r2最大,為0.995。這說明小波啟發(fā)式閾值去噪后的GA-Elman神經(jīng)網(wǎng)絡(luò)預(yù)測值和實(shí)測值誤差最小,相關(guān)性最大,精度最高,預(yù)測效果最好。同時(shí),還可以看出小波去噪后預(yù)測效果比去噪前好;啟發(fā)式閾值去噪后的預(yù)測效果比固定閾值去噪要好;遺傳算法優(yōu)化后的Elman網(wǎng)絡(luò)預(yù)測效果比優(yōu)化前好,由此,可以總結(jié)出:
圖8 小波啟發(fā)式閾值去噪后的預(yù)測結(jié)果
1)小波去噪可以提高模型的預(yù)測精度,其中啟發(fā)式閾值比固定閾值去噪后精度更高。
2)遺傳算法優(yōu)化初始權(quán)值能提高Elman網(wǎng)絡(luò)的預(yù)測精度。所以,小波啟發(fā)式閾值去噪后的GAElman模型有較高的預(yù)測精度,可以用于實(shí)際交通量的短時(shí)預(yù)測。
表1 6種方法預(yù)測結(jié)果平均百分比絕對誤差和相關(guān)系數(shù)
本文針對交通流的非線性和強(qiáng)干擾性的特點(diǎn),分別用小波啟發(fā)式閾值去噪去除交通流量中的干擾性,用遺傳算法優(yōu)化的Elman神經(jīng)網(wǎng)絡(luò)模型處理交通流量中的非線性。通過實(shí)證表明在小波啟發(fā)式閾值去噪后,再用GA-Elman模型進(jìn)行預(yù)測,能得到較好的預(yù)測效果,可以在實(shí)際中用于預(yù)測交通量。
[1] 邵春福,熊志華,姚智勝.道路網(wǎng)短時(shí)交通需求預(yù)測理論、方法及應(yīng)用[M].北京:清華大學(xué)出版社,2011:20-23.
[2] Williams B M,Hoel L A.Modeling and Forecasting Vehicular Traffic Flow as a Seasonal ARIMA Process:Theoretical Basis and Empirical Results[J].Journal of Transportation Engineering,2014,129(6):664-672.
[3] Ojeda L L,Kibangou A Y,De Wit C C.Adaptive Kalman filtering for multi-step ahead traffic flow prediction[C].Proceedings of the American Control Conference.2013:4724-4729.
[4] 金玉婷,余立建.基于小波神經(jīng)網(wǎng)絡(luò)的短時(shí)交通流預(yù)測[J].交通科技與經(jīng)濟(jì),2014,16(1):82-86.
[5] 朱征宇,劉琳,崔明.一種結(jié)合SVM與卡爾曼濾波的短時(shí)交通流預(yù)測模型[J].計(jì)算機(jī)科學(xué),2013,40(10):248-251.
[6] 李松,劉力軍,翟曼.改進(jìn)粒子群算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的短時(shí)交通流預(yù)測[J].系統(tǒng)工程理論與實(shí)踐,2012,32(9):2045-2049.
[7] 董春嬌,邵春福,熊志華.基于Elman神經(jīng)網(wǎng)絡(luò)的道路網(wǎng)短時(shí)交通流預(yù)測方法[J].交通運(yùn)輸系統(tǒng)工程與信息,2010,10(1):145-151.
[8] 譚滿春,李英俊,徐建閩.基于小波消噪的ARIMA與SVM組合交通流預(yù)測[J].公路交通科技,2009(7):127-132.
[9] 丁碩,常曉恒,巫慶輝,等.Elman和BP神經(jīng)網(wǎng)絡(luò)在模式分類領(lǐng)域內(nèi)的對比研究[J].現(xiàn)代電子技術(shù),2014(8):12-14.