唐秋生, 王 川
(重慶交通大學(xué) 交通運(yùn)輸學(xué)院, 重慶 400041)
目前, 單一的神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型不能滿足客流預(yù)測(cè)的需求。需要優(yōu)化神經(jīng)網(wǎng)絡(luò)模型以提升預(yù)測(cè)算法的準(zhǔn)確性[1]。 董升偉以北京市城市軌道交通4號(hào)線的歷史客流數(shù)據(jù)作為歷史數(shù)據(jù)庫, 將城市道路交通客流預(yù)測(cè)方法應(yīng)用到城市軌道交通的客流預(yù)測(cè)中, 利用前饋(back propagation, BP)神經(jīng)網(wǎng)絡(luò)的一些特點(diǎn)并結(jié)合聚類分析和相關(guān)性分析, 對(duì)城市軌道交通的客流預(yù)測(cè)進(jìn)行分析, 仿真結(jié)果表明該方法提升了客流預(yù)測(cè)的精度[2]; 鄒巍等對(duì)于城市軌道交通客流變化具有的非線性和不確定性進(jìn)行研究, 將遺傳算法和小波分析相結(jié)合, 建立了一種全局搜索最優(yōu)的組合神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型, 解決了選擇神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)時(shí)容易造成過擬合的問題, 仿真結(jié)果表明, 該算法的預(yù)測(cè)結(jié)果比單一的神經(jīng)網(wǎng)絡(luò)更加接近于真實(shí)值[3]; 毛靜針對(duì)支持向量機(jī)算法的單一核函數(shù)的一些缺點(diǎn)進(jìn)行改進(jìn), 將支持向量機(jī)算法的核函數(shù)從一維改進(jìn)成多維, 由于徑向基函數(shù)(radial basis function, RBF)神經(jīng)網(wǎng)絡(luò)與支持向量機(jī)算法在單項(xiàng)預(yù)測(cè)法上的諸多優(yōu)點(diǎn), 將兩種算法進(jìn)行組合形成組合預(yù)測(cè)模型, 并以清明假期的客流數(shù)據(jù)進(jìn)行仿真分析, 得出組合預(yù)測(cè)模型優(yōu)于單一預(yù)測(cè)模型的結(jié)論[4]; 李少偉等將卡爾曼濾波算法和Elman神經(jīng)網(wǎng)絡(luò)進(jìn)行組合, 先用混合神經(jīng)網(wǎng)絡(luò)進(jìn)行客流的初步預(yù)測(cè), 然后使用卡爾曼濾波算法對(duì)初步預(yù)測(cè)的結(jié)果進(jìn)行校準(zhǔn), 從而得到最后的預(yù)測(cè)結(jié)果, 對(duì)上海軌道交通客流數(shù)據(jù)進(jìn)行仿真[5], 該算法比單一的混合神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)算法的預(yù)測(cè)精度提升了0.8%; 劉韻[6]將免疫粒子群算法(immune particle swarm optimization, IPSO)引入神經(jīng)網(wǎng)絡(luò), 同時(shí)引入生物免疫中的濃度選擇機(jī)制, 在保證粒子多樣性的同時(shí), 確保粒子群快速收斂, 然后將優(yōu)化處理后的權(quán)值帶入神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)中, 提高模型的運(yùn)算速度與精度; 齊璐[7]利用狼群算法對(duì)小波神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化, 在預(yù)測(cè)前使用狼群算法計(jì)算小波神經(jīng)網(wǎng)絡(luò)的最優(yōu)權(quán)值和小波因子, 據(jù)此構(gòu)建小波神經(jīng)網(wǎng)絡(luò)模型, 隨后對(duì)歷史誤差值進(jìn)行預(yù)測(cè)與結(jié)果相加, 結(jié)果表明, 該模型提高了小波神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)精度;盧獻(xiàn)健等[8]將遺傳算法(GA)和粒子群算法(PSO)的尋優(yōu)過程進(jìn)行融合, 利用GA的全局性和PSO收斂速度快的特點(diǎn), 通過迭代選取最優(yōu)的粒子作為BP神經(jīng)網(wǎng)絡(luò)的連接權(quán)值和閾值, 以減小網(wǎng)絡(luò)輸出誤差, 提高其收斂速度和加強(qiáng)網(wǎng)絡(luò)泛化能力; 劉林波等[9]利用影響霧霾的主要因素作為預(yù)報(bào)因子, 采用遺傳算法優(yōu)化后的BP(GA-BP)神經(jīng)網(wǎng)絡(luò)建立了PM2.5質(zhì)量濃度預(yù)測(cè)模型, 并對(duì)其進(jìn)行可靠性分析。
綜上, 現(xiàn)有研究主要集中在優(yōu)化神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)與其他算法進(jìn)行結(jié)合, 通過算法互補(bǔ)來提高神經(jīng)網(wǎng)絡(luò)模型的預(yù)測(cè)精度。本文根據(jù)云模型及遺傳算法自身的特點(diǎn), 提出一種基于云遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的客流預(yù)測(cè)模型, 應(yīng)用重慶軌道交通3號(hào)線客流數(shù)據(jù)及Matlab編程工具, 對(duì)3號(hào)線的交通流量進(jìn)行預(yù)測(cè), 并與傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)與遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)結(jié)果進(jìn)行比較。
1995年, 中國工程院院士李德毅提出了云模型的概念, 云模型是處理定性概念與定量描述的不確定轉(zhuǎn)換模型[10]。定義如下: 設(shè)T為論域u上的語言值, 映射CT(x):u→[0, 1], ?x∈u,x→CT(x), 則CT(x)在u上的分布稱為T的隸屬云, 簡稱“云”, 當(dāng)CT(x)服從正態(tài)分布時(shí), 簡稱正態(tài)云模型[11]。如圖1所示。
圖1 正態(tài)云分布
云的數(shù)字特征用期望Ex、 熵En、 超熵He3個(gè)數(shù)值來表示。期望Ex(expected value): 云滴在論域空間的分布期望, 就是最能代表定性概念的點(diǎn), 也是這個(gè)概念量化的最典型樣本[11]。熵En(entropy): 定性概念的不確定性度量, 由概念的隨機(jī)性和模糊性共同決定[11]。超熵He(hyper entropy): 是熵的不確定性度量, 即熵的熵, 由熵的隨機(jī)性和模糊性共同決定[11]。
云發(fā)生器[12]是從定性概念到定量表示的過程, 也就是由云的數(shù)字特征產(chǎn)生云滴的具體實(shí)現(xiàn), 包括正向及逆向正態(tài)云發(fā)生器以及X條件發(fā)生器和Y條件發(fā)生器。
遺傳算法(GA)是借鑒生物進(jìn)化中“適者生存”自然規(guī)律的特征, 隨機(jī)產(chǎn)生可行性解, 并通過一定的機(jī)制進(jìn)行選擇、 交叉和變異操作產(chǎn)生最優(yōu)解或近似最優(yōu)解的隨機(jī)優(yōu)化算法。標(biāo)準(zhǔn)遺傳算法(SGA)在交叉和變異操作算子中采用確定性的固定概率進(jìn)行, 算法存在未進(jìn)化至最優(yōu)解時(shí)已經(jīng)收斂或者收斂的速度太慢, 使算法的實(shí)際應(yīng)用性不強(qiáng)。
云遺傳算法結(jié)合遺傳算法思想, 沿用傳統(tǒng)遺傳算法的交叉、 變異操作概念, 由正態(tài)云模型的X條件云生成算法生成迭代過程中的交叉概率Pc和變異概率Pm。正態(tài)云模型具有隨機(jī)性和穩(wěn)定傾向性的特點(diǎn), 隨機(jī)性可以保持個(gè)體多樣性從而避免搜索陷入局部極值, 而穩(wěn)定傾向性又可以很好地保護(hù)較優(yōu)個(gè)體從而對(duì)全局最值進(jìn)行自適應(yīng)定位, 從而滿足快速尋優(yōu)的能力, 并根據(jù)其隨機(jī)性能避免陷入局部最優(yōu)。生成遺傳算法的交叉概率、 變異概率具體算法如下所示。
1)Pc的生成算法
Enn=normrnd(En,He);
2)Pm的生成算法
Enn=normrnd(En,He)
其中,f′為交叉操作中較大的適應(yīng)值;f為變異操作中父代染色體的適應(yīng)度值;k1、k2、k3、k4為[0, 1]內(nèi)的常數(shù)。在云遺傳算法中可取初始C1=C3=6Q(Q為初始種群的大小), 并且隨進(jìn)化代數(shù)逐漸增大, 在此設(shè)置C1=C3=6Q(T+1),其中T為進(jìn)化代數(shù)[13]。為了算法運(yùn)行初期擴(kuò)大搜索空間, 運(yùn)行后期提高搜索精度,He可以先大后小的設(shè)置[13], 如C2=C4=15-(T-Q/2)2。
BP神經(jīng)網(wǎng)絡(luò)有很多固有缺陷, 如結(jié)構(gòu)難確定、 初始權(quán)值選擇的盲目性導(dǎo)致訓(xùn)練速度慢、 容易陷入局部最優(yōu)等。遺傳算法是基于自然選擇和遺傳學(xué)機(jī)理的迭代自適應(yīng)概率搜索算法, 經(jīng)云模型優(yōu)化后的遺傳算法具有全局尋優(yōu)、 快速收斂等優(yōu)點(diǎn), 利用云遺傳算法的這些特性, 可以解決神經(jīng)網(wǎng)絡(luò)的上述缺點(diǎn), 有益于交通量預(yù)測(cè)準(zhǔn)確性的提高。
本文將云遺傳算法和BP神經(jīng)網(wǎng)絡(luò)結(jié)合起來, 提出基于云遺傳算法的BP神經(jīng)網(wǎng)絡(luò)模型, 基本思想是由云模型的X條件云發(fā)生器生成遺傳算法中的交叉概率和變異概率, 利用改進(jìn)后的遺傳算法對(duì)BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值進(jìn)行優(yōu)化。云遺傳算法優(yōu)化得到的最優(yōu)個(gè)體, 即BP神經(jīng)網(wǎng)絡(luò)的最優(yōu)初始權(quán)值、 閾值。利用得到的最優(yōu)初始權(quán)值、 閾值和歷史數(shù)據(jù)來訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型以求得最優(yōu)解。算法流程如圖2所示。
圖2 算法流程圖
算法的基本步驟如下:
(1)參數(shù)初始化。首先, 初始化遺傳算法參數(shù), 包括初始種群大小Q、 最大進(jìn)化代數(shù)G等; 其次, 云模型控制系數(shù)初始化,C1=C3=6Q(T+1),C2=C4=15-(T-Q/2)2; 最后, 確定神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu), 包括輸入輸出及隱含層節(jié)點(diǎn)數(shù)、 學(xué)習(xí)率、 權(quán)值wi和閾值bi初始化等。
(2)編碼。本文采用實(shí)數(shù)編碼方式對(duì)神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值進(jìn)行編碼, 將wi和bi統(tǒng)一編碼到每個(gè)個(gè)體當(dāng)中, 每個(gè)個(gè)體就代表一組神經(jīng)網(wǎng)絡(luò)初始權(quán)值和閾值。
(3)產(chǎn)生初始種群。按照編碼方式, 隨機(jī)產(chǎn)生大小為Q的初始種群。
(4)計(jì)算適應(yīng)度。本文選用平均絕對(duì)誤差作為適應(yīng)度函數(shù)
其中:Ei為第i個(gè)體的均方誤差;n為訓(xùn)練樣本總數(shù);ti為第i個(gè)體的預(yù)測(cè)值;yi為第i個(gè)體的實(shí)際輸出值。
(5)選擇、 交叉、 變異。①選擇: 輪盤賭選擇個(gè)體。②交叉: 利用X條件云發(fā)生器生成交叉概率, 如果父代中較大的適應(yīng)度值大于種群的平均適應(yīng)度值, 那么根據(jù)云模型生成的交叉率進(jìn)行交叉操作; 否則, 按照固定交叉率進(jìn)行交叉。交叉方式為兩染色體對(duì)應(yīng)基因段交叉。③變異: 利用X條件云發(fā)生器生成變異概率, 如果該染色體的適應(yīng)度值大于種群的平均適應(yīng)度值, 那么根據(jù)云模型生成的變異率進(jìn)行變異操作; 否則, 按照固定變異率進(jìn)行變異。變異方式是染色體某基因點(diǎn)變異。
(6)判斷是否滿足要求。判斷交叉變異后的個(gè)體是否達(dá)到要求(最大進(jìn)化代數(shù)Q或適應(yīng)度值在允許的誤差范圍內(nèi))。如果滿足要求, 則輸出最優(yōu)個(gè)體, 再解碼得到BP神經(jīng)網(wǎng)絡(luò)的最優(yōu)初始權(quán)值和閾值; 否則, 重新回到步驟(4), 直到滿足條件為止。
采用BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型(BP)、 遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型(GA-BP)、 云遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型(CGA-BP)3種預(yù)測(cè)方法對(duì)重慶市軌道交通3號(hào)線的客流進(jìn)行預(yù)測(cè)。 先對(duì)數(shù)據(jù)進(jìn)行歸一化處理, 將數(shù)據(jù)處理到[0, 1], 再將其中80%的數(shù)據(jù)用于訓(xùn)練, 10%的數(shù)據(jù)用于驗(yàn)證, 剩下10%的數(shù)據(jù)用于測(cè)試。實(shí)驗(yàn)誤差評(píng)價(jià)采用平均絕對(duì)誤差MAE和均方誤差MSE。
其中:n為交通流數(shù)據(jù)個(gè)數(shù);xk為交通流真實(shí)數(shù)據(jù);xk′ 為交通流預(yù)測(cè)數(shù)據(jù)。
3.1.1 BP神經(jīng)網(wǎng)絡(luò)參數(shù)的確定 本文設(shè)計(jì)只有1個(gè)隱含層的BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型, 神經(jīng)網(wǎng)絡(luò)的輸入為預(yù)測(cè)天前一天、 預(yù)測(cè)天和上一周與預(yù)測(cè)天同星期的日客流量3個(gè)輸入向量, 輸出向量為預(yù)測(cè)天的日客流量。例如, 預(yù)測(cè)天為第10周星期四, 則輸入變量為: 第10周星期三、 星期四、 第9周星期四日客流量。隱含層節(jié)點(diǎn)數(shù)目h選擇根據(jù)經(jīng)驗(yàn)公式來確定
其中:m和n分別是輸入層和輸出層節(jié)點(diǎn)的數(shù)目,a為[1, 10]內(nèi)的調(diào)節(jié)常數(shù)。根據(jù)上述公式得到隱含層節(jié)點(diǎn)范圍為[3, 12], 將學(xué)習(xí)率定為0.1, 設(shè)定訓(xùn)練次數(shù)上限為1 000次, 目標(biāo)誤差為0.001, 隱含層激活函數(shù)采用tansig, 輸出層激活函數(shù)采用logsig。比較幾種網(wǎng)絡(luò)的訓(xùn)練時(shí)間和誤差, 相關(guān)數(shù)據(jù)見表1。
表1 節(jié)點(diǎn)數(shù)、訓(xùn)練時(shí)間與準(zhǔn)確率統(tǒng)計(jì)
可知, 隨著隱含層節(jié)點(diǎn)的增加, 訓(xùn)練時(shí)間會(huì)逐漸增加, 準(zhǔn)確率大致呈現(xiàn)一個(gè)先升后降的趨勢(shì), 所以本文選取隱含層節(jié)點(diǎn)數(shù)為6, 其準(zhǔn)確率最高, 而且訓(xùn)練時(shí)間適中。
3.1.2 GA-BP神經(jīng)網(wǎng)絡(luò)參數(shù)的確定 GA-BP神經(jīng)網(wǎng)絡(luò)是在上述BP神經(jīng)網(wǎng)絡(luò)模型的基礎(chǔ)上采用遺傳算法(GA)對(duì)BP神經(jīng)網(wǎng)絡(luò)權(quán)值閾值的優(yōu)化。在遺傳算法部分, 編碼方式為實(shí)數(shù)編碼, 種群規(guī)模為10, 最大進(jìn)化代數(shù)為10, 交叉率為0.3, 變異率為0.5。
3.1.3 CGA-BP神經(jīng)網(wǎng)絡(luò)參數(shù)的確定 在傳統(tǒng)遺傳算法中, 交叉率、 變異率為一固定值, 算法搜索速度慢, 容易早熟, 為了克服這一問題, 本文在GA-BP的基礎(chǔ)上用云模型的X條件云發(fā)生器生成交叉率和變異率, 具體見1.2節(jié)Pc、Pm的生成算法。在CGA-BP模型中, 當(dāng)該染色體的適應(yīng)度小于平均適應(yīng)度時(shí), 交叉率和變異率為一固定值, 根據(jù)上述對(duì)遺傳算法固定交叉率和變異率的設(shè)置, 令k3=0.3、k4=0.5,k1和k2為0~1間的常數(shù), 圖3為k1、k2不同取值對(duì)模型準(zhǔn)確率的影響, 其中不同顏色表示k1的取值。
圖3 k1、 k2對(duì)準(zhǔn)確率的影響
模型準(zhǔn)確率在97.5%~98.5%。k1、k2取值對(duì)模型的準(zhǔn)確率有較大影響: 當(dāng)k1=0.4、k2=0.6時(shí), 模型準(zhǔn)確率最低為97.56%; 當(dāng)k1=0.3、k2=0.1時(shí), 模型的準(zhǔn)確率最大為98.47%, 兩者準(zhǔn)確率相差0.91%。故本文設(shè)定k1=0.3,k2=0.1。
根據(jù)上述對(duì)3個(gè)模型相關(guān)參數(shù)的分析, 可得各模型參數(shù)如表2所示。
表2 3個(gè)模型參數(shù)設(shè)置
應(yīng)用重慶軌道交通3號(hào)線的客流數(shù)據(jù)對(duì)3個(gè)模型進(jìn)行訓(xùn)練, 將訓(xùn)練好的模型用來預(yù)測(cè)重慶軌道交通2019年3月1—10日的客流, 其真實(shí)值與各模型的預(yù)測(cè)值如圖4所示。 可知, BP神經(jīng)網(wǎng)絡(luò)模型的擬合能力較差, GA-BP神經(jīng)網(wǎng)絡(luò)能夠比較準(zhǔn)確地?cái)M合數(shù)據(jù), CGA-BP神經(jīng)網(wǎng)絡(luò)能夠準(zhǔn)確地反映出歷史數(shù)據(jù)的走向, 預(yù)測(cè)精度更高。
3個(gè)模型的平均絕對(duì)誤差(MAE)、 均方誤差(MSE)、 計(jì)算時(shí)間和準(zhǔn)確率見表3??芍? GA-BP和CGA-BP的準(zhǔn)確率較BP來說都有較大提高, 但是BP運(yùn)行時(shí)間最短; CGA-BP的準(zhǔn)確率在GA-BP的基礎(chǔ)上提高了1.9%, 同時(shí)運(yùn)行時(shí)間減少了40%。兩者適應(yīng)度曲線如圖5所示, 經(jīng)云模型優(yōu)化后的遺傳算法搜索速度及適應(yīng)度值下降速度加快、 種群最佳平均適應(yīng)度和終止進(jìn)化代數(shù)減少。
圖5 GA-BP、 CGA-BP適應(yīng)度曲線
表3 不同模型評(píng)價(jià)
云遺傳算法優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)和遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練誤差變化如圖6所示。雖然在訓(xùn)練誤差上都沒有達(dá)到目標(biāo)誤差, 但CGA-BP比GA-BP的最佳訓(xùn)練誤差更小, 在一定程度上提高了算法的準(zhǔn)確度。
圖6 GA-BP(a)、 CGA-BP(b)訓(xùn)練誤差
綜上, 3種模型求解結(jié)果均與真實(shí)值存在誤差, 但是云遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)(CGA-BP)比遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)(GA-BP)和BP神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)精度都高, 這得益于云自適應(yīng)遺傳算法中動(dòng)態(tài)改變的交叉變異率, 使算法的初期能夠比較快地產(chǎn)生優(yōu)秀個(gè)體, 算法的后期保護(hù)最優(yōu)個(gè)體, 全局搜索能力增強(qiáng)。與GA-BP相比, 在提升精度的同時(shí)也減少了運(yùn)行時(shí)間。
實(shí)驗(yàn)表明: 本文設(shè)計(jì)的基于云遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)在全局搜索和收斂方面優(yōu)于傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)和遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò), 能夠保證軌道交通客流的預(yù)測(cè)精度。
針對(duì)云模型、 遺傳算法和BP神經(jīng)網(wǎng)絡(luò)的的特點(diǎn), 將三者結(jié)合起來建立云遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的軌道客流預(yù)測(cè)模型。該模型既利用了云遺傳算法能并行計(jì)算且能快速、 全局搜索的優(yōu)點(diǎn), 解決了神經(jīng)網(wǎng)絡(luò)固有的搜索速度慢且易陷入局部早熟的缺點(diǎn), 又利用了神經(jīng)網(wǎng)絡(luò)描述問題能力強(qiáng)、 對(duì)不完全信息具有良好的適應(yīng)性的優(yōu)點(diǎn), 彌補(bǔ)了遺傳算法編碼困難的缺點(diǎn)。將此方法用于重慶市軌道交通3號(hào)線的日客流量預(yù)測(cè), 與相同條件下的BP神經(jīng)網(wǎng)絡(luò)模型、 遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)模型的預(yù)測(cè)結(jié)果進(jìn)行對(duì)比發(fā)現(xiàn), 基于云遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的客流預(yù)測(cè)模型在預(yù)測(cè)精度上比BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型和遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)模型都更具優(yōu)勢(shì), 說明本文設(shè)計(jì)的預(yù)測(cè)方法是可行的。
桂林理工大學(xué)學(xué)報(bào)2021年2期