楊啟文,李 月,吳君娜,陳俊風,薛云燦
(河海大學 信息學部,江蘇 常州 213022)
隨著社會的高速發(fā)展,城市交通流量持續(xù)增加,交通擁堵已常態(tài)化[1]。為了緩解交通擁堵、提高車輛的通行效率,實現(xiàn)交通智能化,交通流量的預測顯得尤為重要。
由于車輛通行的隨機性和復雜性,導致交通流量模型呈現(xiàn)具有極強的非線性特點,因此,通常采用利用非線性映射能力的人工神經(jīng)網(wǎng)絡(簡稱為“神經(jīng)網(wǎng)絡”)來建立交通流量預測模型,為智能交通提供決策依據(jù)[2]。例如,蔣杰[3]、賴錦輝[4]等人分別采用蟻群算法和布谷鳥搜索算法來優(yōu)化BP神經(jīng)網(wǎng)絡,通過提高BP神經(jīng)網(wǎng)絡的逼近精度來建立更加精確的交通流量預測模型;Q.Chen,H.J.Yang以及W.Du等人則分別利用粒子群算法[5]、遺傳算法[6]、鯨魚算法[7]來優(yōu)化小波神經(jīng)網(wǎng)絡(WNN,wavelet neural network),建立交通流量預測模型;Dogan通過長短時深度神經(jīng)網(wǎng)絡(LSTM,long short-term memory networks)來預測交通流量[8];在LSTM預測模型基礎上,Lu進一步利用ARIMA模型組合來提高預測效果[9],而Jing則融合時間卷積神經(jīng)網(wǎng)絡(TCN,temporal convolutional network),構建了一種混合神經(jīng)網(wǎng)絡的交通流量預測模型[10]。
應用神經(jīng)網(wǎng)絡時,往往需要進行結構或參數(shù)優(yōu)化,即神經(jīng)網(wǎng)絡訓練。通常采用的訓練手段有:采用試湊法[11],經(jīng)驗公式法[12],動態(tài)參數(shù)自調(diào)整法[13-14],模擬退火算法[15]和群智能優(yōu)化算法[16]等方法來優(yōu)化隱層節(jié)點數(shù)[17-18];采用梯度下降搜索法[19]、LM(Levenberg-marquardt)算法[20]、層次耦合約束優(yōu)化算法[21]、模擬退火法[22]、群智能優(yōu)化算法[23-24]等方法來優(yōu)化神經(jīng)元之間的連接權。
但是,在不同初始條件[25]下,即使采用具有全局優(yōu)化能力的群智能算法和組合算法,也不能保證神經(jīng)網(wǎng)絡每次訓練都能收斂到全局最優(yōu),從而導致神經(jīng)網(wǎng)絡的訓練結果出現(xiàn)了一致性問題[26-28]。
為了增強訓練結果的一致性、降低訓練次數(shù),提高工程應用的便利性,本文提出一種自適應并聯(lián)結構神經(jīng)網(wǎng)絡(APSNN,adaptive parallel structure neural network),旨在采用常規(guī)優(yōu)化算法,通過神經(jīng)網(wǎng)絡的自組織行為,在訓練中實現(xiàn)網(wǎng)絡結構自適應和參數(shù)優(yōu)化;在滿足訓練精度前提下,維持訓練結果的一致性。同時,利用APSNN,建立交通流量預測模型,降低預測偏差,提高預測的平穩(wěn)性。
神經(jīng)網(wǎng)絡種類很多,本文考察常見的前向神經(jīng)網(wǎng)絡。
多層前向神經(jīng)網(wǎng)絡如圖1所示,包括輸入層、隱藏層和輸出層,除輸入層和輸出層只有一層外,隱藏層可以是一層也可以是多層。
圖1 多層前向神經(jīng)網(wǎng)絡
多層前向神經(jīng)網(wǎng)絡,常通過誤差反傳機制和梯度信息,對神經(jīng)元的連接權進行迭代優(yōu)化,這就是流行的誤差反傳學習算法,簡稱BP(back propagation)算法,對應的神經(jīng)網(wǎng)絡亦俗稱為BP神經(jīng)網(wǎng)絡。BP算法是一種確定性優(yōu)化算法,收斂速度快,但由于采用單點、慣序的確定性優(yōu)化模式,不同的初始條件下會收斂到不同的局部極值。采用群智能優(yōu)化算法訓練神經(jīng)網(wǎng)絡時,盡管群智能優(yōu)化算法具有理論上的全局收斂能力,但由于這類算法屬于隨機優(yōu)化算法,早熟收斂現(xiàn)象一直存在。
因此,不論是確定性優(yōu)化算法,還是隨機優(yōu)化算法,局部收斂或早熟收斂導致神經(jīng)網(wǎng)絡在不同初始條件下,訓練結果也不盡相同,訓練結果的一致性問題始終存在。
為了能保持訓練結果的一致性,本文對常規(guī)的神經(jīng)網(wǎng)絡進行結構改進,提出了一種由多個神經(jīng)網(wǎng)絡單元組成的并聯(lián)網(wǎng)絡結構。
如圖 2所示,神經(jīng)網(wǎng)絡單元NNk(k=1,2,…,K)是由常規(guī)的前向神經(jīng)網(wǎng)絡(如圖 1所示)組成,所有神經(jīng)網(wǎng)絡單元的輸入端并聯(lián)在一起,各單元的輸出相加后形成神經(jīng)網(wǎng)絡的輸出。神經(jīng)網(wǎng)絡單元的級聯(lián)數(shù)量,在訓練過程中,通過自組織行為自適應確定。
圖2 并聯(lián)神經(jīng)網(wǎng)絡結構
由于神經(jīng)網(wǎng)絡單元NNk的非線性,并聯(lián)后的神經(jīng)網(wǎng)絡同樣具備非線性特征,理論上可以實現(xiàn)對任意非線性函數(shù)的高精度逼近。
為了能采用常規(guī)的BP算法對圖 2所示的并聯(lián)神經(jīng)網(wǎng)絡進行訓練,實現(xiàn)訓練結果的一致性要求,對神經(jīng)網(wǎng)絡單元進行功能做如下定義。
定義:后一級神經(jīng)網(wǎng)絡單元NNk+1作為前一級神經(jīng)網(wǎng)絡單元NNk的補償單元,在神經(jīng)網(wǎng)絡訓練過程中,對上一級神經(jīng)網(wǎng)絡單元的訓練殘差進行補償。
按照上述自組織機制構建的并聯(lián)神經(jīng)網(wǎng)絡,只要神經(jīng)網(wǎng)絡單元的級聯(lián)數(shù)不受限制,理論上都可以滿足訓練的精度指標,從而實現(xiàn)訓練結果的一致性要求。
例如,設輸入樣本為:
對應的輸出樣本為:
即輸入輸出訓練樣本集為:
y1={0.9,2.01,3.05,3.95},
e1={0.1,-0.01,-0.05,0.05}。
利用訓練殘差e1,構造下一級神經(jīng)網(wǎng)絡單元NN2的訓練樣本集:
y2={0.11,-0.011,-0.04,0.06},
則神經(jīng)網(wǎng)絡單元NN2的訓練殘差為e2=e1-y2,即:
e2={-0.01,0.001,-0.01,-0.01}。
這樣,神經(jīng)網(wǎng)絡單元NN3的訓練樣本集為:
依此類推,只要將輸入輸出訓練樣本集作為第一級神經(jīng)網(wǎng)絡單元的訓練樣本集,其余各級神經(jīng)網(wǎng)絡單元的訓練樣本集,均可利用上一級的訓練殘差進行構建,直到訓練殘差ek滿足精度要求為止。
APSNN的樣本構建流程及網(wǎng)絡結構自適應流程圖分別如圖 3和圖 4所示。
圖3 APSNN樣本構建流程
圖4 APSNN自組織流程圖
為了評價神經(jīng)網(wǎng)絡的訓練性能,引入三項指標。
第一項指標是式(1)所示的逼近精度,即所有樣本均方誤差的對數(shù):
(1)
逼近精度的大小能夠反映出神經(jīng)網(wǎng)絡的對函數(shù)的逼近程度,數(shù)值越小,逼近度越高。
第二項指標是式(2)所示的逼近精度的總體標準差:
(2)
總體標準差反映出數(shù)據(jù)集在其均值附近的聚集程度??傮w標準差越小,說明數(shù)據(jù)越集中,一致性較好。但考慮到逼近精度JK是訓練殘差的對數(shù)運算結果,因此,逼近精度JK在不同數(shù)量級處的總體標準差,難以反映出訓練殘差的一致性。故總體標準差僅反映逼近精度在數(shù)學意義上的一致性。
第三項指標是達標率,即多次獨立實驗中滿足逼近精度的比例。
達標率可以反映出神經(jīng)網(wǎng)絡在逼近精度及其一致性方面的綜合性能。達標率越高,說明滿足逼近精度的訓練次數(shù)越多。從工程應用角度看,達標率越高,需要對神經(jīng)網(wǎng)絡重復訓練的次數(shù)就越少。因此,達標率更能反映出訓練殘差在工程意義上的一致性。
選取5個非線性函數(shù)作為測試函數(shù):
(3)
采用BP神經(jīng)網(wǎng)絡和本文提出的APSNN對上述5個非線性函數(shù)進行逼近實驗。
實驗測試中,設置JK=-4作為達標率的精度閾值,即:當逼近精度小于-4時,認為訓練結果達標(當逼近精度小于精度閾值時,能夠獲得滿意的逼近效果)。
為了簡化APSNN中的神經(jīng)網(wǎng)絡單元,各神經(jīng)網(wǎng)絡單元具有完全相同中間層數(shù)、隱節(jié)點數(shù)N和激活函數(shù)(sigmoid函數(shù))。同時,為了能在相同條件下比較兩種神經(jīng)網(wǎng)絡的性能,BP神經(jīng)網(wǎng)絡采用與APSNN完全相同的激活函數(shù)。兩種神經(jīng)網(wǎng)絡均使用默認的LM算法進行訓練,且終止條件也完全相同。
APSNN自組織規(guī)則如下:
1)JK=-4;
2)或者并聯(lián)一級神經(jīng)網(wǎng)絡單元后導致JK增大;
3)或者并聯(lián)的神經(jīng)網(wǎng)絡單元數(shù)達到5個。
當滿足上述3個條件中之一時,APSNN自組織結束;當上述3個條件均不滿足時,APSNN在原有的結構中,自動并聯(lián)一級神經(jīng)網(wǎng)絡單元,實現(xiàn)結構擴張。
實驗測試在Matlab平臺(軟件版本2018b)上進行。BP神經(jīng)網(wǎng)絡和APSNN中神經(jīng)網(wǎng)絡單元的訓練終止條件均采用相同的默認條件,且在所有實驗測試過程中保持不變。APSNN第一個神經(jīng)網(wǎng)絡單元的初始連接權與BP神經(jīng)網(wǎng)絡的初始連接權均為相同的隨機數(shù),后續(xù)并聯(lián)的神經(jīng)網(wǎng)絡單元連接權為隨機數(shù)。
針對函數(shù)f1(x),在區(qū)間[-6,6]內(nèi),按照步長0.01進行采樣,形成121個采樣點的輸入輸出訓練集。
圖 5為BP神經(jīng)網(wǎng)絡不同隱節(jié)點的50次獨立訓練結果。從逼近精度曲線上看,逼近精度的均值隨著隱節(jié)點數(shù)的增加而減小(具體數(shù)據(jù)見表 1實驗結果)。
圖5 BP神經(jīng)網(wǎng)絡的逼近精度
但是,在50次獨立訓練中,逼近精度值存在著較大的波動。例如N=3時,近50%的值分布在[-1,0]區(qū)間內(nèi),40%分布在[-1,-2]區(qū)間上,還有10%分布在[-2,-3]區(qū)間中。當N=7時,逼近精度的一致性有了明顯的改善,數(shù)據(jù)主要集中在[-7,-8]區(qū)間上(共有45次),只有5次實驗結果分散在[-3,-6]區(qū)間上。因此從數(shù)據(jù)分布的聚集程度上看,7個隱節(jié)點神經(jīng)網(wǎng)絡訓練結果的一致性好。
表1 函數(shù)f1(x)的實驗結果
在表1所示的實驗結果中,盡管3個隱節(jié)點BP神經(jīng)網(wǎng)絡的總體標準差在數(shù)值上要小于7個隱節(jié)點BP神經(jīng)網(wǎng)絡,但訓練殘差的均值處在不同數(shù)量級。從數(shù)據(jù)分布上看,7個隱節(jié)點BP神經(jīng)網(wǎng)絡僅有5次實驗的數(shù)據(jù)分布“異常”;另外,從達標率指標上看,7個隱節(jié)點BP神經(jīng)網(wǎng)絡有94%的訓練結果滿足逼近精度指標要求,可以被工程接受。因此,采用達標率來衡量訓練結果的一致性更具有工程上的合理性。
圖6為APSNN在不同隱節(jié)點數(shù)(此處指神經(jīng)網(wǎng)絡單元的隱節(jié)點數(shù))下50次獨立訓練結果。當N=3時,逼近精度近75%集中在[-2,-3]之間,明顯高于BP神經(jīng)網(wǎng)絡。當神經(jīng)網(wǎng)絡單元的隱節(jié)點數(shù)N=7時,APSNN與BP神經(jīng)網(wǎng)絡的逼近精度曲線非常相似。APSNN盡管仍有5次逼近精度偏離[-7,-8]區(qū)間,但逼近精度均小于-4,而BP神經(jīng)網(wǎng)絡則有3次逼近精度值大于-4。
圖6 APSNN逼近精度
表1的數(shù)據(jù)對比表明,APSNN在三項指標方面均優(yōu)于BP神經(jīng)網(wǎng)絡。這種性能改善,與神經(jīng)網(wǎng)絡單元的殘差補償機制有著密切的關系。
圖7是APSNN中神經(jīng)網(wǎng)絡單元級聯(lián)數(shù)在50次獨立實驗中的變化情況。當神經(jīng)網(wǎng)絡單元的隱節(jié)點數(shù)為N=3時,由于逼近精度無法滿足精度要求,根據(jù)自組織規(guī)則,在訓練過程中會自動并聯(lián)一級神經(jīng)網(wǎng)絡單元,直至并聯(lián)數(shù)量達到上限5個。隨著神經(jīng)網(wǎng)絡單元的隱節(jié)點數(shù)的增加,神經(jīng)網(wǎng)絡單元的逼近能力得到提升,需要并聯(lián)的神經(jīng)網(wǎng)絡單元數(shù)越來越少。當神經(jīng)網(wǎng)絡單元的隱節(jié)點數(shù)為N=7時,只出現(xiàn)過兩次2個神經(jīng)網(wǎng)絡單元并聯(lián)的現(xiàn)象,其余48次訓練由于達到了精度指標要求,因而只需要一級神經(jīng)網(wǎng)絡單元。此時APSNN差不多就退化為一個常規(guī)的BP神經(jīng)網(wǎng)絡,故二者在相同初始條件下,有48次訓練結果完全相同。
圖7 APSNN級聯(lián)數(shù)
表2~表5是BP神經(jīng)網(wǎng)絡和APSNN逼近函數(shù)f2(x)~f5(x)的實驗結果(實驗樣本的采樣間隔均為0.01)。
表2 函數(shù)f2(x)的實驗結果
表3 函數(shù)f3(x)的實驗結果
表4 函數(shù)f4(x)的實驗結果
表5 函數(shù)f5(x)的實驗結果
實驗對比結果與函數(shù)f1(x)非常相似,APSNN在3項性能指標方面均優(yōu)于常規(guī)的BP神經(jīng)網(wǎng)絡。在函數(shù)f5(x)的實驗結果中,當APSNN的神經(jīng)網(wǎng)絡單元級聯(lián)數(shù)為1,APSNN就等同于常規(guī)的BP神經(jīng)網(wǎng)絡,二者性能完全相同。
在APSNN訓練過程中,神經(jīng)網(wǎng)絡根據(jù)訓練殘差的精度要求,通過觸發(fā)自組織規(guī)則,由小到大地搭建神經(jīng)網(wǎng)絡結構,從而實現(xiàn)網(wǎng)絡結構的自適應優(yōu)化。而常規(guī)的神經(jīng)網(wǎng)絡結構優(yōu)化,通常是對神經(jīng)網(wǎng)絡的不同候選結構進行性能評估,從中“挑選”出最優(yōu)性能指標的網(wǎng)絡結構。從二者的不同之處可以看出,常規(guī)神經(jīng)網(wǎng)絡結構優(yōu)化不可避免地對同一結構進行重復評估,而APSNN的自組織規(guī)則能同時進行參數(shù)和結構優(yōu)化,避免了神經(jīng)網(wǎng)絡單元的冗余評估,降低了優(yōu)化過程的計算量。
(4)
式中,d(i)為真實流量數(shù)據(jù),p(i)為預測模型輸出的預測數(shù)據(jù)。
考慮到交通流量與前一時刻的流量有關,本文采用前4個采樣時刻的流量信息預測下一時刻的交通流量,因此,APSNN輸入層節(jié)點數(shù)設為4,輸出層節(jié)點數(shù)為1。當訓練精度J≤5或者并聯(lián)新的神經(jīng)網(wǎng)絡單元導致J增大時,訓練過程中的自組織行為停止,訓練結束。
選取美國明尼蘇達州的明尼阿波利斯和圣保羅之間94號州際公路2018年9月1~30日的西行數(shù)據(jù)作為測試數(shù)據(jù)(數(shù)據(jù)源:https://archive.ics.uci.edu)。前25天的600個監(jiān)測數(shù)據(jù)(每小時采集一次交通流量)作為神經(jīng)網(wǎng)絡的訓練樣本集;利用訓練好的神經(jīng)網(wǎng)絡,預測后5天的交通流量。
圖8是50次獨立測試的預測精度變化曲線。從圖中曲線的可以看出,APSNN和BP神經(jīng)網(wǎng)絡的預測精度相近,大部分預測精度在5.2附近,而WNN則在5.5附近波動。但是,APSNN在50次獨立測試中的預測精度相差不大,一致性更好,而BP和WNN則出現(xiàn)了較大的波動。
圖8 預測精度
為了能更直觀地比較預測的一致性,先計算單次實驗中120個預測點的總體標準差,作為每個預測時刻的一致性性能指標,然后以這個總體標準差作為數(shù)據(jù)集,計算50次實驗中的總體標準差,作為重復測試的一致性性能指標。
圖9是3種神經(jīng)網(wǎng)絡的在50次實驗中的總體標準差曲線。APSNN和BP的總體標準差大部分在400~500附近,而WNN在600附近波動。但APSNN在50次獨立實驗中的總體標準差非常平穩(wěn),這意味著APSNN不但在重復測試中表現(xiàn)穩(wěn)定,而且在每個預測時刻的偏差也比較穩(wěn)定。而BP次之,WNN最差。
圖9 預測標準差
表6是3種神經(jīng)網(wǎng)絡在50次獨立測試中的3項性能指標。本文提出的APSNN在3項指標方面均表現(xiàn)優(yōu)秀。在MAPE指標上,APSNN較BP和WNN分別降低了2.7%和9.7%。因此,采用APSNN進行交通流量預測,既能降低預測偏差,又能保持預測的平穩(wěn)性。
表6 交通流量預測結果
由于現(xiàn)有優(yōu)化算法的局限性,神經(jīng)網(wǎng)絡的逼近精度和訓練結果的一致性難以保證,給工程應用了帶來不便。本文提出了一種自適應并聯(lián)結構的神經(jīng)網(wǎng)絡——APSNN。這種神經(jīng)網(wǎng)絡可以利用常規(guī)的優(yōu)化算法,對神經(jīng)網(wǎng)絡單元進行逐級訓練。在訓練過程中,神經(jīng)網(wǎng)絡根據(jù)訓練殘差實現(xiàn)網(wǎng)絡結構優(yōu)化,確保訓練精度及其一致性。
APSNN的自組織行為是通過神經(jīng)網(wǎng)絡單元的自適應并聯(lián)擴展實現(xiàn),不是對單個神經(jīng)網(wǎng)絡的內(nèi)部隱含層和隱節(jié)點進行增刪,這是本文與神經(jīng)網(wǎng)絡傳統(tǒng)優(yōu)化方案不同的地方。由于目前神經(jīng)網(wǎng)絡單元內(nèi)部結構固定、隱節(jié)點數(shù)無法自適應,這是APSNN的不足之處。探索神經(jīng)網(wǎng)絡單元的結構優(yōu)化,將是未來要解決的一個問題。