賈偉,趙雪芬
(寧夏大學新華學院,銀川750021)
近年來,隨著城市化進程的推進和機動車數量快速增加,交通擁堵問題日益嚴重并成為影響城市發展的重要問題。為了有效解決交通擁堵問題,一些學者提出采用短時交通流量預測的方法解決交通擁堵問題。短時交通流量預測方法通過已經構建的交通流量預測模型預測未來一段時間內的交通流量信息,為交通管理人員和出行人員的交通管理和出行提供參考信息,從而避免交通擁堵。BP 神經網絡[1]是一種多層前饋神經網絡,由于其具有較好的自學能力、泛化能力和非線性映射能力,成為研究短時交通流量預測的重要方法。由于BP 神經網絡選取的初始權值和閾值具有隨機性,使得其會出現全局搜索能力較差,易陷入局部最優解和收斂速度較慢的問題。為了克服BP 神經網絡的不足之處,在短時交通流量預測中,一些學者利用粒子群優化(Particle Swarm Optimization,PSO)算法[2]和布谷鳥搜索(Cuckoo Search,CS)算法等算法[3]優化BP神經網絡的初始權值和閾值,例如,蔡玥[4]提出的改進BP 神經網絡IPSO-BP,該方法給出一種自適應變異算子的PSO 算法IPSO,并將其應用于優化BP 神經網絡的初始權值和閾值。唐新來等人[5]提出的改進BP 神經網絡CPSO-BP,該方法利用混沌PSO 算法CPSO 優化BP 神經網絡的初始權值和閾值。高述濤[6]提出的改進BP 神經網絡GCS-BP,該方法利用基于高斯擾動的CS算法GCS 優化BP 神經網絡的初始權值和閾值。賴錦輝和梁松[7]提出的改進BP 神經網絡TCS-BP,該方法利用t 分布的CS 算法TCS 優化BP 神經網絡的初始權值和閾值。但是,現有的優化算法對BP 神經網絡的初始權值和閾值的優化結果還不夠理想。為此,本文擬提出一種改進的BP 神經網絡DPSO-BP,利用PSO 算法優化BP 神經網絡的初始權值和閾值,提高BP 神經網絡的全局搜索能力和收斂速度,從而提高交通流量預測的準確率。考慮到PSO 具有收斂速度快和參數設置較少的優點的同時,還存在易早熟收斂和局部尋優能力較差的問題,本文首先在PSO 算法框架中提出一種改進的PSO 算法,然后利用改進的PSO 算法優化BP 神經網絡的初始權值和閾值,并將其應用于短時交通流量預測中。
BP 神經網絡的拓撲結構如圖1 所示,其是由輸入層、隱含層和輸出層組成,其中,輸入層的節點數是A,隱含層的節點數是B,輸出層的節點數是Q,各層之間通過神經元相互連接,神經元一般采用Sigmoid 函數作為激勵函數,xi是輸入層第i 個神經元,輸入層到隱含層的權重是wi,j,閾值是θj,隱含層到輸出層的權重是λj,k,閾值是θk。

圖1 BP神經網絡拓撲結構
在隱含層中,第j 個節點的輸出值為:

在輸出層中,第j 個節點的實際輸出值為:

期望值與網絡訓練后的實際輸出值之間的誤差由下式得到:

其中,Ok是樣本在第k 個輸出節點的期望值。
在得到期望值后,若期望值與網絡訓練后的實際輸出值之間的誤差較大,就進行反向傳播,對各層的權值和閾值進行調整。重復多次正向和反向傳播,直到網絡輸出的誤差減小到一定程度或達到最大訓練次數為止。反向傳播過程中,根據學習速率η,隱含層的權值和閾值的更新分別為:


輸出層的權值和閾值的更新分別為:

設粒子的位置是X=( xi,1,xi,2,···,xi,D),粒子的速度是V=( vi,1,vi,2,···,vi,D),粒子i 的個體歷史最優位置Pi=( pi,1,pi,2,···,pi,D),整 個 粒 子 群 的 歷 史 最 優 位 置Pg=( pg,1,pg,2,···,pg,D),在D 維空間中,標準的PSO 算法的粒子的速度和位置的更新公式是:

其中,c1和c2是學習因子,r1和r2是[0 ,1] 之間的隨機數,w 是慣性因子。
w 的計算公式為:

其中,wmax和wmin分別是w 的最大慣性權重和最小慣性權重,lmax是最大迭代次數,l 是當前迭代次數。
為了提高PSO 算法的局部搜索能力收斂性,本文該出一種改進的PSO 算法DPSO,該算法采用雙種群搜索的策略,兩個種群分別進行獨立尋優,將Levy 飛行[8]和元胞自動機[9]分別應用到兩個種群的搜索中,并在兩個種群的搜索過程中采用差分進化算法提高種群的多樣性,最后,在兩個種群的最優解中選擇最優的粒子作為全局最優解。
Levy 飛行作為一種服從Levy 分布的隨機游走方式,可表示為:

其中,s 為隨機Levy 步長,s 由下式計算得到:


其中,Γ 是標準伽馬函數。

引入Levy 飛行后,得到的粒子位置更新公式如下:其中,α 是步長因子,⊕是點乘積,Levy( )γ 是服從參數為γ 的Levy 分布。
元胞自動機是在一個由具有離散、有限狀態的元胞組成的元胞空間上建立的動力學系統,本文在粒子群尋優過程中使用的元胞自動機類型是Moore 型。如圖2 所示,在Moore 型中,種群中的所有粒子由元胞來表示,黑色的元胞通過與周圍灰色的鄰居元胞的比較實現元胞的更新。粒子群通過元胞的轉換規則在整個子群空間中更新最優粒子。

圖2 Moore型
粒子群在二維元胞空間中的描述如下:
(1)每一個粒子都被看成是一個元胞,
(2)粒子i 的位置是元胞的狀態,定義為:

(3)粒子i 的鄰居定義為:

其中,q 是鄰居數。
(4)元胞的轉換規則為:

差分進化算法是一種基于群體差異的啟發式隨機搜索算法,在差分進化算法中,在第t+1 次迭代中,對于 每 一 個 個 體 yi(t)={yi1(t),yi2(t),···yij(t)}(i ∈{1,2,···,NP}),變異個體由下式得到:

其中,α1、α2和α3,是隨機正整數,Fˉ是縮放因子。

其中,randj是之間均勻分布的隨機數,CR是變異概率,jrand是隨機選擇指數。
如圖3 所示,在本文提出的改進的PSO 算法中,首先將種群隨機劃分為兩個種群W1和W2,將Levy 飛行和元胞自動機分別應用到兩個種群的搜索中。當兩個種群找到最優解后,分別在兩個種群中采用差分進化算法[10]對當前種群進行變異,得到兩個變異種群CW1和CW2,將W1和CW1,S1和CW2進行比較,選取最優粒子組成兩個新的種群NW1和NW2。在種群W1和W2尋優結束后,從兩個種群中選取最優解作為全局最優解Pg。

圖3 改進的PSO算法
改進的PSO 算法描述如下:
算法1 改進的PSO 算法
輸入:粒子的最大速度vmax,最大慣性權重wmax,最小慣性權重wmin,最大迭代次數Tmax,學習因子c1和c2,隨機數r1和r2,鄰居數q ;
輸出:全局最優粒子;
begin
將當前種群隨機劃分為兩個大小為M1的種群W1和W2;
對于種群W1,計算初始種群每個粒子的適應度函數值,得到粒子的歷史最優位置和種群的最優位置;
while(g ≤gmax)
利用式(10)計算w;
for i=1 to M1do
for d=1 to D do
if rand <0.5
利用式(9)更新粒子的速度;
利用式(10)更新粒子的位置;
else
利用式(9)更新粒子的速度;利用式(15)更新粒子的位置;
end if
end for
end for
利用式(19)和式(20)對當前種群進行變異,得到新的種群CW1;
從W1和CW1中選取M1個最優粒子組成新的種群NW1;
更新pi( t )和pg( t );
end while
對于種群W2,在元胞空間中,每個子群
t=1;
while(t <Tmax)
利用式(10)計算w;
for i=1 to M1do
for j=1 to h do
if fitness( ci( t ))<fitness( ci+q( t))更新ci( )
t ;
end if
end for
利用式(9)更新粒子的速度;
利用式(10)更新粒子的位置;

更新p′i( t );
end if
更新p′g( t );
end if
end for
利用式(19)和式(20)對當前種群進行變異,得到新的種群CW2;
從W2和CW2中選取M2個最優粒子組成新的種群NW2;
更新p′i( t )和p′g( t );
t=t+1;
end while
從種群W1和W2中選取最優解作為全局最優解。
end
在BP 神經網絡中,本文利用改進的PSO 算法選取最優的權值和閾值,使用改進后的BP 神經網絡預測交通流量,具體的算法如下:
算法2 改進的BP 神經網絡的交通流量預測
輸入:輸入層節點數A,隱含層節點數B,隱含層數,輸出節點數Q,學習速率η,短時交通流量數據;
輸出:短時交通流量預測結果;
begin
J=0;
將式(3)計算粒子的適應度,利用算法1 獲取初始權值和閾值;
do
利用式(3)計算誤差;
利用式(4)-(7)更新隱含層和輸出層的權值和閾值;
J=J+1;
while(E ≤0.001 or J ≤500)
根據最優的權值和閾值建立基于BP 神經網絡的交通流量預測模型;
利用建立的BP 神經網絡預測交通流量;
end
實驗數據來自OpenITS(http://www.openits.cn)提供的公開數據集,開放的數據是安徽省宣城市在2016 年12 月15 日全天的交通流量數據。
本文采用均方根誤差(Root Mean Square Error,RMSE)和平均絕對誤差(Mean Absolute Error,MAE)作為衡量交通流量預測結果的指標,RMSE 的公式為:

MAE 的公式為:

其中,I 為樣本數,Hi為實際數據值,i為預測數據值。
在實驗中,改進的BP 神經網絡涉及到的參數設置如 下:A=4 ,Q=3 ,η=0.01 ,vmax=4 ,wmax=0.9 ,vmin=0.1,Tmax=500,c1=c2=2,q=8。為避免隱含層節點數過多而出現“過擬合”問題,本文采用以下公式確定隱含層節點數[11-12]:

其中,輸入層的節點數為A,隱含層的節點數為B,輸出層的節點數為Q,a 是1 ~10 之間的常數,本文設置a=7。
為驗證本文提出的BP 神經網絡DPSO-BP 在交通流量預測中的有效性,將DPSO-BP 與BP 神經網絡、IPSO-BP、CPSO-BP、GCS-BP、TCS-BP 進行比較。對全天每隔1 個小時的交通流量數據進行采樣和預測,各改進的BP 神經網絡對交通流量預測的比較如圖4和表1 所示,從圖3 和表1 可以看出,與現有的BP 神經網絡相比,通過DPSO-BP 得到的交通流量預測結果最接近于真實的交通流量,而且DPSO-BP 的RMSE 和MAE 值最小,這說明采用DPSO-BP 得到的交通流量預測結果最穩定。
通過上述比較可以看出,本文提出的BP 神經網絡DPSO-BP 在對交通流量的預測效果方面要優于現有的BP 神經網絡,這是因為本文將改進的PSO 算法應用于優化BP 神經網絡的初始權值和閾值,提出的改進PSO 算法分別在兩個種群中采用了不同的尋優策略進行尋優,這樣可以提高種群多樣性和尋優能力。此外,在兩個種群中都使用了差分進行算法對種群進行變異,并獲得變異種群,這樣可以幫助種群跳出局部極小值,擴大尋優范圍。因此,改進的PSO 算法在尋優能力和收斂性方面要優于現有的PSO 算法和CS 算法,通過改進的PSO 算法得到的BP 神經網絡的初始權值和閾值則更加有效。

圖4 各算法的交通流量預測比較

表1 各算法的RMSE 和MAE 比較
權值和閾值的初始值影響BP 神經網絡的尋優能力和收斂性。本文提出采用改進的PSO 算法提高BP神經網絡的優化效果。在改進的PSO 算法中,本文采用雙種群同時尋優的策略提高PSO 算法的全局尋優能力和收斂性。對交通流量的預測實驗說明,與現有的BP 神經網絡相比,本文采用基于改進PSO 算法的BP神經網絡能夠準確地預測交通流量,且具有較好的穩定性。