田 晟,張裕天,張劍鋒,許 凱
(華南理工大學(xué)土木與交通學(xué)院,廣東 廣州 510641)
隨著大數(shù)據(jù)時代的到來以及智慧交通的不斷發(fā)展,實時交通信息、滴滴出行數(shù)據(jù)等大型數(shù)據(jù)集在交通領(lǐng)域得以應(yīng)用.但傳統(tǒng)的交通模型不能很好地運用這些數(shù)據(jù)集,因此,開發(fā)新的算法來充分利用這些數(shù)據(jù)是十分必要的.深度學(xué)習(xí)在大數(shù)據(jù)分析領(lǐng)域具有廣闊的前景,已廣泛應(yīng)用于計算機視覺、目標(biāo)檢測、語音識別、圖像分類等領(lǐng)域[1],但在交通領(lǐng)域基于深度學(xué)習(xí)的出行方式選擇模型研究較少.
作為交通需求預(yù)測的重要組成部分,出行方式選擇預(yù)測在交通規(guī)劃中起著重要作用.出行方式選擇預(yù)測是一個復(fù)雜的系統(tǒng),與其影響因素間存在著一定的非線性關(guān)系.離散選擇模型的效用函數(shù)通常設(shè)定為特定參數(shù)的線性函數(shù),這一局限性使其不能很好地擬合兩者之間的非線性關(guān)系,而神經(jīng)網(wǎng)絡(luò)能夠從眾多影響因素中獲取內(nèi)在規(guī)律,具備很強的擬合任意非線性關(guān)系的能力.國內(nèi)外學(xué)者采用神經(jīng)網(wǎng)絡(luò)對交通出行方式選擇問題進行了研究.Nijkamp[2]采用前饋神經(jīng)網(wǎng)絡(luò)和Logit模型對交通出行方式選擇問題進行對比研究;Chi Xie等[3]的研究表明,人工神經(jīng)網(wǎng)絡(luò)(ANN)在交通方式選擇問題中比決策樹(DT)和多項Logit(MNL)具有更好的魯棒性;Giulio等[4]的研究表明,多層前饋神經(jīng)網(wǎng)絡(luò)模型相比隨機效用模型具有一定的優(yōu)勢;Omrani H[5]對徑向基函數(shù)網(wǎng)絡(luò)(RBF)、多層感知器(MLP)、多項Logit(MNL)和支持向量機(SVM)進行了對比分析,結(jié)果顯示神經(jīng)網(wǎng)絡(luò)模型準(zhǔn)確性更高;李海峰[6]和殷煥煥[7]等采用BP神經(jīng)網(wǎng)絡(luò)模型研究了居民出行方式選擇問題;劉陽等[8]構(gòu)建了描述城市交通出行方式選擇行為的小波神經(jīng)網(wǎng)絡(luò)預(yù)測模型.綜合國內(nèi)外相關(guān)研究成果可以看出,學(xué)者們主要是運用BP神經(jīng)網(wǎng)絡(luò)、多層感知器模型等單層和少量感知器的淺層網(wǎng)絡(luò)結(jié)構(gòu)研究出行方式選擇預(yù)測問題.
自2006年Hinton提出深度學(xué)習(xí)并改進模型訓(xùn)練方法后,打破了BP神經(jīng)網(wǎng)絡(luò)發(fā)展的瓶頸,解決了層數(shù)加深后導(dǎo)致的過擬合問題,指出多層神經(jīng)網(wǎng)絡(luò)具有很強的特征學(xué)習(xí)能力,深度學(xué)習(xí)模型學(xué)習(xí)到的特征數(shù)據(jù)對原始數(shù)據(jù)具有更本質(zhì)的代表性[9].本文采用深度神經(jīng)網(wǎng)絡(luò)構(gòu)建出行方式選擇預(yù)測模型,運用隨機梯度下降算法[10]、丟棄法[11]等方法解決過擬合問題,提高模型的泛化能力,并評估模型性能.
國內(nèi)外學(xué)者對出行方式選擇行為的相關(guān)研究結(jié)果顯示,影響出行方式選擇的因素主要分為個人屬性、家庭屬性、交通特性3類.其中,個人屬性包括性別、年齡、受教育程度、收入、職業(yè)等,家庭屬性包括是否擁有私家車等,交通特性包括出行目的、出行距離、出行時間和出行費用等[11].
本文根據(jù)影響居民出行的3個主要因素設(shè)計調(diào)查問卷,采用紙質(zhì)和網(wǎng)絡(luò)問卷相結(jié)合的方式收集廣州市居民出行方式選擇數(shù)據(jù).共發(fā)放問卷3 000份,回收2 984份,有效問卷2 978份.從信度和效度2個角度檢驗數(shù)據(jù),采用 Cronbach α信度系數(shù)檢驗信度.總量表的α為0.864,大于0.7,說明具有很好的內(nèi)部一致性(信度);檢驗得總量表KMO值為0.72,大于0.5,說明量表具有很好的效度.
根據(jù)廣州市的實際情況,本次問卷調(diào)查共有5種出行方式供受訪者選擇,分別為地鐵、公交車、出租車、私家車和共享汽車.共享汽車的單位出行成本設(shè)定為略高于私家車,但低于出租車.樣本屬性結(jié)構(gòu)見表1.
表1 樣本屬性結(jié)構(gòu)Tab.1 Attribute structure of samples /%
本文將構(gòu)建基于深度神經(jīng)網(wǎng)絡(luò)的出行方式選擇模型.模型輸入為影響出行者出行方式選擇的主要因素,輸出為出行者每種出行方式的選擇概率.中間層為隱藏層,采用的深度神經(jīng)網(wǎng)絡(luò)包含3個隱藏層,具有很強的函數(shù)擬合能力,能夠?qū)τ绊懗鲂姓哌x擇的主要因素和出行選擇結(jié)果之間存在的非線性關(guān)系進行高精度擬合.
深度神經(jīng)網(wǎng)絡(luò)(DNN)是人工神經(jīng)網(wǎng)絡(luò)(ANN)的一種,與多層感知器(MLP)結(jié)構(gòu)相似,不同之處在于深度神經(jīng)網(wǎng)絡(luò)的隱藏層多于多層感知器,而更多的層數(shù)帶來更深入的表示特征以及更強的函數(shù)擬合能力.
本文建立的深度神經(jīng)網(wǎng)絡(luò)預(yù)測模型由輸入層、3個隱藏層和輸出層構(gòu)成,結(jié)構(gòu)見圖1.
圖1 深度神經(jīng)網(wǎng)絡(luò)總體結(jié)構(gòu)Fig.1 Overall structure of deep neural network model
圖1中,輸入層輸入為xi(i=1,2,…,8),X為影響出行者出行方式選擇主要因素的向量表示,本文設(shè)定為8個影響因素,因此輸入層為8個神經(jīng)元;Wi和bi分別為深度神經(jīng)網(wǎng)絡(luò)中第i層的權(quán)重矩陣和偏置向量;ai表示第i層的輸出向量;隱藏層采用ReLU作為激活函數(shù),與sigmoid激活函數(shù)相比,ReLU的計算速度快,并且ReLU的非飽和性可以有效解決梯度消失的問題,減緩過擬合的產(chǎn)生,有
a1=φh1(W1X+b1),
a2=φh2(W2a1+b2),
a3=φh3(W3a2+b3),
輸出層輸出為預(yù)測出行者各種出行方式的選擇概率,因此輸出層為5個神經(jīng)元.Pr(*)表示選擇該出行方式的概率,概率最大的出行方式即為預(yù)測結(jié)果.本文選擇softmax函數(shù)作為輸出層的激活函數(shù),則有
選擇對數(shù)似然損失函數(shù)(log-likelihood cost function)作為網(wǎng)絡(luò)的損失函數(shù),則有
C=-∑kyklogak,
其中:ak為第k個神經(jīng)元的輸出值;yk為第k個神經(jīng)元對應(yīng)的真實值,取0或1.
采用隨機梯度下降算法(stochastic gradient descent,SGD)進行網(wǎng)絡(luò)權(quán)重變量的更新.梯度下降算法的基本思想是沿著損失函數(shù)J(θ)梯度▽θJ(θ)的反方向更新模型參數(shù)θ,以達到最小化損失函數(shù)的目的,并通過設(shè)定學(xué)習(xí)率η的大小來決定每次參數(shù)更新時步伐的大小.普通梯度下降算法每次更新模型參數(shù)都使用整個數(shù)據(jù)集計算損失函數(shù)關(guān)于參數(shù)θ的梯度,計算速度慢.本文采用小批量隨機梯度下降算法,每次參數(shù)更新時,從訓(xùn)練集中抽取n個樣本的小批量數(shù)據(jù)計算損失函數(shù)的梯度.目前,在神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程中經(jīng)常使用小批量梯度下降法,并習(xí)慣稱之為隨機梯度下降法(SGD),有
θ=θ-η·▽θJ(θ;x(i:i+n);y(i:i+n)).
同時,由于隨著隱藏層的增加,深度神經(jīng)網(wǎng)絡(luò)模型會出現(xiàn)過擬合的問題,導(dǎo)致模型在驗證集上準(zhǔn)確率很高,而在測試集上準(zhǔn)確率較低,模型的泛化能力較差.因此,為解決過擬合問題,采用丟棄法.丟棄法是指在深度學(xué)習(xí)網(wǎng)絡(luò)的訓(xùn)練過程中,對于神經(jīng)網(wǎng)絡(luò)單元,按照一定概率將其暫時從網(wǎng)絡(luò)中丟棄,即在前向傳播時,讓某個神經(jīng)元的激活值以一定的概率p停止工作.對于隨機梯度下降來說,由于是隨機丟棄,故每一個mini-batch都在訓(xùn)練不同的網(wǎng)絡(luò),這樣網(wǎng)絡(luò)權(quán)重的更新便不再依賴于有固定關(guān)系隱藏節(jié)點的共同作用,提高了模型的泛化能力.同時,為確保測試模型的準(zhǔn)確性,丟棄法的使用只發(fā)生在訓(xùn)練模型時,在測試模型時則不使用.當(dāng)神經(jīng)網(wǎng)絡(luò)的某一層使用丟棄法時,該層的神經(jīng)元將有一定概率被丟棄掉,如圖1中隱藏層中標(biāo)記為“×”的神經(jīng)元.
輸入層神經(jīng)元數(shù)為8,等于影響出行者出行方式選擇的8個主要因素:性別、年齡、受教育程度、月收入、是否擁有私家車、出行目的、出行距離以及出行時間;輸出神經(jīng)元為5個,表示5種出行方式:共享汽車、地鐵、公交、私家車和出租車.輸入變量及數(shù)值定義見表2.如果一個出行者的輸入變量為(1、3、3、3、1、2、3、3),輸出變量為(0、0、0、1、0),代表該出行者為男性,31~40歲,大學(xué)本科,月收入10 000~20 000元,擁有私家車,公務(wù)外出,出行距離11~20 km,出行時間31~45 min,他選擇的出行方式為私家車.
表2 輸入變量Tab.2 Input variables
由于數(shù)據(jù)能夠直接影響深度神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練和性能,所以在模型訓(xùn)練之前要進行數(shù)據(jù)預(yù)處理.訓(xùn)練前對數(shù)據(jù)進行清洗,保證不同類別的樣本能夠交叉輸入.由于樣本數(shù)據(jù)不在同一個數(shù)量級,因此有必要限定在一個合適的范圍,進行歸一化處理,同時也能夠加快模型的訓(xùn)練速度.本文采用離差標(biāo)準(zhǔn)化進行歸一化處理,將輸入變量和輸出變量歸一化處理為[0,1]之間:
式中:xmax為樣本數(shù)據(jù)最大值;xmin為樣本數(shù)據(jù)最小值.
選取有效問卷中的2 900個樣本數(shù)據(jù)為總數(shù)據(jù)量,通過調(diào)用sklearn庫的train_test_split函數(shù)分割總的樣本數(shù)據(jù),其中80%為訓(xùn)練數(shù)據(jù)集,10%為驗證數(shù)據(jù)集,10%為測試數(shù)據(jù)集.處理后每一條數(shù)據(jù)的輸入是一個長度為8的一維數(shù)組,標(biāo)簽(label)為長度為5的一維數(shù)組.設(shè)定學(xué)習(xí)率η(learning rate)為0.1,丟棄法(dropout)值為0.5.dropout值過高和過低都將導(dǎo)致模型預(yù)測準(zhǔn)確率下降.使用python2.7和Tensorflow計算環(huán)境進行模型訓(xùn)練,采用隨機梯度下降算法(SGD)方法訓(xùn)練,每次訓(xùn)練都會隨機獲取樣本數(shù)據(jù),而不是整個數(shù)據(jù)集.與普通梯度下降相比,訓(xùn)練次數(shù)要更多,但是每次時間更短,訓(xùn)練效率更高.本文設(shè)定batch size為128,即每次從訓(xùn)練集中讀取128條數(shù)據(jù)作為一個小批量進行訓(xùn)練,一般batch size設(shè)定為50~256.設(shè)置迭代次數(shù)(epoch)為2 000次,隨機初始化神經(jīng)網(wǎng)絡(luò)模型的權(quán)重值,開始訓(xùn)練.通過隨機梯度下降算法更新模型權(quán)重,最小化損失函數(shù)值.訓(xùn)練集和驗證集的誤差曲線見圖2.
圖2訓(xùn)練和驗證誤差曲線Fig.2Training and validation loss curve圖3模型出行方式預(yù)測結(jié)果Fig.3Prediction results of DNN model
圖4 不同迭代次數(shù)下測試集和驗證集上的準(zhǔn)確率Fig.4 Test accuracy and validation accuracy in different numbers of epochs
通過模型預(yù)測的正確率來衡量模型的性能.對比不同迭代輪數(shù)下深度神經(jīng)網(wǎng)絡(luò)模型在驗證集和測試集上的準(zhǔn)確率,應(yīng)用訓(xùn)練好的深度神經(jīng)網(wǎng)絡(luò)模型在驗證集和測試集上測試.模型出行方式預(yù)測結(jié)果見圖3,驗證集和測試集的模型預(yù)測準(zhǔn)確率見圖4.由預(yù)測結(jié)果可見:經(jīng)過訓(xùn)練后的模型在驗證集上準(zhǔn)確率為91.74%,在測試集上為88.97%,模型預(yù)測準(zhǔn)確率較高.由此可知,深度神經(jīng)網(wǎng)絡(luò)模型對于出行方式選擇的預(yù)測具有較好的效果及很好的泛化能力,能夠有效解決深層神經(jīng)網(wǎng)絡(luò)導(dǎo)致的過擬合問題,可以應(yīng)用于出行方式選擇預(yù)測的研究中.
本文提出了一種用于出行方式選擇預(yù)測的深度神經(jīng)網(wǎng)絡(luò)模型,該模型能夠很好地擬合出行方式選擇與其影響因素間復(fù)雜的非線性關(guān)系.采用隨機梯度下降算法、丟棄法、ReLU激活函數(shù)有效地解決了出行方式選擇深度神經(jīng)網(wǎng)絡(luò)模型的過擬合問題.預(yù)測結(jié)果表明,該模型具有較高的預(yù)測精度.由于影響出行方式選擇的因素眾多,且本文的樣本集數(shù)據(jù)量較小,未能充分發(fā)揮深度神經(jīng)網(wǎng)絡(luò)的優(yōu)勢.因此,在后續(xù)研究中,將采用更多的數(shù)據(jù)、引入更多的影響因素進一步提高深度神經(jīng)網(wǎng)絡(luò)模型預(yù)測的準(zhǔn)確性.