葉擴會,張永夜++孫左芬++趙興梅++滕彩坤
摘要: BP神經(jīng)網(wǎng)絡已成為研究相關預測的有效工具之一。該文利用近20年全國旅行收入數(shù)據(jù),通過BP神經(jīng)網(wǎng)絡相關理論建立了全國旅行收入預測模型。并針對2006—2015年數(shù)據(jù)進行預測,誤差分析表明相對誤差很小。模型能很好地反映全國旅行收入的變化趨勢。
關鍵詞: BP神經(jīng)網(wǎng)絡;預測模型;全國旅行收入
中圖分類號:TP18 文獻標識碼:A 文章編號:1009-3044(2017)03-0184-03
1 BP 神經(jīng)網(wǎng)絡模型
BP神經(jīng)網(wǎng)絡為誤差反向傳播神經(jīng)網(wǎng)絡,它是一種含有隱含層的前饋網(wǎng)絡,若網(wǎng)絡的輸入節(jié)點數(shù)為M、輸出節(jié)點數(shù)為L,那么可將這個神經(jīng)網(wǎng)絡視為一個M 維歐式空間到L 維歐式空間的映射[1-4]。 其采用誤差逆?zhèn)魉惴ǎ珺P 神經(jīng)網(wǎng)絡通常由輸入層、輸出層和隱含層構成,層與層之間的神經(jīng)元采用全互聯(lián)的連接方式,通過相應的網(wǎng)絡權系數(shù)w 相互聯(lián)系,每層內(nèi)的神經(jīng)元之間不連接,見圖1 所示。
BP算法建模步驟[2]:
設有m 個訓練樣本,每一個訓練樣本有n個指標,則初始數(shù)據(jù)矩陣為
[][Z=zijm×n]
其中: [ziji=1,2,…,m,j=1,2,…n]表示第i 個訓練樣本的第j 個指標的數(shù)值。
步驟1 預處理:對輸入數(shù)據(jù)進行歸一化處理,消除各個指標之間的不同量綱,利用
[xij=-1+2zij-mjzij-Mji=1,2,…,m,j=1,2,…n]
進行歸一化處理。其中[xij∈-1,1]為處理后方的數(shù)據(jù),且
[mj=mini=1mzij,Mj=mini=1mzij,j=1,2,…n]
分別表示第[jj=1,2,…n]個指標值的最小值和最大值。
步驟2 計算輸出層及隱含層
隱含層計算為:
[uj=fi=1nw1(i,j)xij=1,2,…k]
[w1i,j]為輸入層第i (i=1,…,n)個神經(jīng)元到隱含層第j (j=1,…,m) 個神經(jīng)元連接權重。通常取激活函數(shù)[f(x)=11+e-x]。
輸出層計算為:
[y=fj=1kw2(j)uj]
[w2j]為隱含層第j (j=1,…,k)個神經(jīng)元到輸出層的連接權重。
步驟3 網(wǎng)絡訓練
記wij為從輸入向量的第j (j=1,…,m) 個分量到輸出向量的第i (i=1,…,n)個分量的連接權重。通常理論值與實際值有一誤差,網(wǎng)絡學習則是指不斷地把與比較,并根據(jù)極小原則修改參數(shù)wij,使誤差平方和達最小。
1) 計算網(wǎng)絡誤差
若網(wǎng)絡輸出與期望輸出不等,則存在輸出誤差
[Ep=12k(dpk-ypk)2]。
2)從輸出層開始修正每個權值,直到第一隱層。
[wt+12(j)=wt2(j)+ηδjuj+αwt+12(j)-wt2(j).],
[wt+11(i,j)=wt1(i,j)+ηδjxi+αwt+11(i,j)-wt1(i,j).]。
若j是輸出層神經(jīng)元,[δj=uj(1-uj)(dj-uj)]。若j是隱層神經(jīng)元,則:[δj=xj(1-xj)kδkwjk]。其中 [η,α∈0,1]分別為學習率和平滑因子。
步驟4 轉到第二步,循環(huán)至權值穩(wěn)定為止。
步驟5 用網(wǎng)絡進行預測,求出誤差并進行誤差分析。
2 BP神經(jīng)網(wǎng)絡運用案例:國內(nèi)旅游收入預測模型
1)輸入神經(jīng)元選取及數(shù)據(jù)來源
影響國內(nèi)旅游收入因素比較多,本文選取以下重要指標作為模型的輸入神經(jīng)元:城鎮(zhèn)居民家庭人均可支配收入([z1])、 農(nóng)村居民家庭人均純收入([z2]) 、國民總收入([z3])、 國內(nèi)游客([z4]) 、鐵路營業(yè)里程([z5]) 、公路里程([z6])、定期航班航線里程([z7]),輸出神經(jīng)元為國內(nèi)旅游總收入([y])。本文選取1995—2015年相關數(shù)據(jù),數(shù)據(jù)見表1。 數(shù)據(jù)來源于《中國統(tǒng)計年
2)將表1樣本數(shù)據(jù)進行歸一化處理
由步驟1的方法,利用matlab中的函數(shù)[X,minX,maxX,Y,minY,maxY]=premnmx(X,Y),將表1的數(shù)據(jù)進行歸一化處理。
3)輸出層、輸出層、隱含層的選取
以城鎮(zhèn)居民家庭人均可支配收入([z1])、 農(nóng)村居民家庭人均純收入([z2])等七個元作為輸入層,以國內(nèi)旅游總收入([y])作為輸出層。BP神經(jīng)網(wǎng)絡建立需提供輸入值與期望輸出值以及各層節(jié)點數(shù)、傳遞函數(shù)、訓練方法等網(wǎng)絡結構參數(shù)。現(xiàn)有理論已證明對于任意閉區(qū)間上的任何連續(xù)函數(shù)都可以用一個隱含層的BP 神經(jīng)網(wǎng)絡來逼近【5】,因此本文隱含層數(shù)選為1個,即網(wǎng)絡層數(shù)共3 層,分別為1 個輸入層、1 個隱含層、1 個輸出層,網(wǎng)絡初始結構為7 - 11 - 1,并根據(jù)訓練結果確定隱含層節(jié)點數(shù)量,測試最終隱含層節(jié)點數(shù)量為7。即最終網(wǎng)絡結構為7 - 7 - 1。
4)網(wǎng)絡訓練
該BP神經(jīng)網(wǎng)絡模型輸入層至隱含層采用tansig函數(shù)傳遞,隱含層至輸出層采用purelin 函數(shù)傳遞,訓練BP 神經(jīng)網(wǎng)絡用traingd,其收斂速度快于trainbp 及trainpx,網(wǎng)絡目標誤差net.trainparam.goal 為0.00001; 其中學習速度net.trainparam.lr 最終為0. 6。 訓練步數(shù)net.trainparam.epochs為20000,性能函數(shù)為mse。
5)BP神經(jīng)網(wǎng)絡模型預測及誤差分析
利用matlab函數(shù)an=sim(net,pnn) 對訓練好的模型進行仿真,調(diào)用函數(shù)
a=postmnmx(an,minY,maxY)
對網(wǎng)絡的輸出an=sim(net,pn)作變換。并作相對誤差
[er=yi-yiyi.]
2006—2015年數(shù)據(jù)如表2。
表2 BP神經(jīng)網(wǎng)絡模型預測及誤差分析
[年份\&國內(nèi)旅游總收入真實值(億元)\&網(wǎng)絡預測值(億元)\&相對誤差%\&年份\&國內(nèi)旅游總收入真實值(億元)\&網(wǎng)絡預測值(億元)\&相對誤差%\&2006\&6229.74\&6408.9\&2.876\&2011\&19305.39\&19193\&0.58216\&2007\&7770.6\&7739\&0.40674\&2012\&22706.2\&22661\&0.20121\&2008\&8749.3\&8720.7\&0.32706\&2013\&26276.12\&26435\&0.6035\&2009\&10183.7\&9938.4\&2.4092\&2014\&30311.86\&30223\&0.29464\&2010\&12579.77\&12841\&2.0771\&2015\&34000\&32736\&3.7181\&]
可見,最大相對誤差只占實際值的3.7%,該模型能夠很好地描述國內(nèi)旅游總收入。效果圖如圖2所示:
圖2 模型預測效果圖
3 結論
本文通過介紹及建立國內(nèi)旅游總收入BP神經(jīng)網(wǎng)絡模型,并對模型進行誤差分析,從表2中誤差分析可知BP神經(jīng)網(wǎng)絡模型仿真值的相對誤差波動較小,顯示該模型能夠很好地描述國內(nèi)旅游總收入,并依據(jù)該模型可以得到較高的預測精度。因此,將BP 神經(jīng)網(wǎng)絡應用于國內(nèi)旅游總收入預報是簡單可行并且有效的。
參考文獻:
[1] 王芳,程水源,李明君,等.遺傳算法優(yōu)化神經(jīng)網(wǎng)絡用于大氣污染預報[J].北京工業(yè)大學學報,2009,35(9):1230-1234.
[2] 張景陽,潘光友.多元線性回歸與BP神經(jīng)網(wǎng)絡預測模型對比與運用研究[J].昆明理工大學學報:自然科學版,2013(6):63-67.
[3] 白鶴鳴,沈潤平,等.基于BP神經(jīng)網(wǎng)絡的空氣污染指數(shù)預測模型研究[J].環(huán)境科學與技術,2013,36(3):186-189.
[4] 姚亞夫,劉侃.基于遺傳神經(jīng)網(wǎng)絡的交通流量預測研究[J].公路與汽運,2007(6):28-30.
[5] 吳昕慧.基于神經(jīng)網(wǎng)絡的鐵路客運量優(yōu)化預測[J].計算機仿真,2010,27(10):168-172.