喻寶祿 段 迅 吳 云
(貴州大學計算機科學與技術學院 貴陽 550025)
?
BP神經網絡數據預測模型的建立及應用*
喻寶祿段迅吳云
(貴州大學計算機科學與技術學院貴陽550025)
摘要針對BP神經網絡輸入節點、初始權值的選取和激勵函數問題,討論BP神經網絡預測模型的建立與改進。然后構建改進后的BP神經網絡預測模型,并以貴陽市1998年~2013年的房價及其影響因素的數據為基礎,通過實驗驗證該改進模型的有效性和精確性;結果表明采用論文模型預測結果相對誤差不超過0.6%。
關鍵詞BP神經網絡; 遺傳算法; PCA算法; 激勵函數; 房價; 數據預測模型
Establishment and Application of Data Prediction Model Based on BP Neural Network
YU BaoluDUAN XunWU Yun
(College of Computer Science and Technology, Guizhou University, Guiyang550025)
AbstractAiming at the problem of input node, initial connection weights and excitation function. the establishment and improvement of the prediction model of BP neural network are discussed. The generation reasons and influencing factors of house price based on the data of house price in Guiyang (1998~2013) are analyzed, then the prediction model of house price in Guiyang is built, using the improved BP neural network. Finally the model’s effectiveness and accuracy are validated by experiments. The results show that the relative error of the model prediction results is less than 0.6%.
Key WordsBP neural network, genetic algorithms, PCA algorithms, excitation function, house price, data prediction model
Class NumberTP311.1
1引言
BP神經網絡(Back Propagation Neutral Network,BPNN)模型是最為人熟知的神經網絡模型。由于BP神經網絡能夠從樣本中學習其中隱含的規律,對于難以用數學建模描述的非線性問題,神經網絡表現出了強大的學習能力和泛化能力[1];因此神經網絡被廣泛應用于智能檢測、非線性預測、數據分類、最優預測等領域[2]。
本文利用PCA(主成分分析)算法對數據進行簡約降維,優化輸入變量的個數,然后將BP神經網絡的連接矩陣作為遺傳算法的染色體,有效優化BP神經網絡,并對BP神經網絡激勵函數進行改進,最后構建神經網絡模型,進行實驗驗證。
2BP神經網絡的原理
典型的BP神經網絡包括輸入層、一個或多個隱藏層和一個輸出層,其網絡結構如圖1所示,BP神經網絡的算法學習過程主要是由輸入正向傳播和誤差反向傳播構成,正向傳播過程是輸入樣本由輸入層傳入,經隱含層單元處理,根據權值和閾值計算每個單元實際輸出值,若此時實際輸出值與期望值達到預定的誤差范圍,則學習過程成功結束;反向傳播法是反向通過網絡誤差來調整權重,根據實際輸出與期望輸出修改權值矩陣,以減小神經網絡結構的誤差[3~4]。

圖1 典型的BP神經網絡模型結構圖
3BP神經網絡算法描述
標準的BP神經網絡算法[5]內容和步驟描述如下,先定義以下變量和自變量:
輸入層向量:X=(x1,x2,…,xi,…,xn);
隱含層輸出向量:H=(h1,h2,…,hj,…,hm);
輸出層輸出向量:Y=(y1,y2,…,yk,…,yl);
期望值輸出向量:D=(d1,d2,…,dk,…,dl);
輸入層到隱含層之間的權值連接矩陣:V=(V1,V2,…,Vj,…,Vm);
隱含層到輸出層之間的權值連接矩陣:W=(W1,W2,…,Wk,…,Wl)。
BP神經網絡具體實現步驟如下:
1) 網絡初始化W,V矩陣,賦值區間由激活函數值域決定。確定最大訓練次數M和學習精度值ε,選擇激活函數f(x),通常選用單極性sigmoid函數:
f(x)=1/(1+e-x)
(1)
2) 數據預處理,選擇樣本數據輸入,得到隱含層hj和輸出層yk的輸出:
(2)
(3)
3) 利用網絡的實際輸出值yk和期望輸出值dk計算誤差:
(4)
(5)
(6)

(7)
(8)
6) 計算全局誤差E:
(9)
7) 比較全局誤差E和精度值,如果全局誤差小于給定精度值,或者訓練次數超過最大次數M,此時結束算法;否則,繼續進行學習。
4BP神經網絡預測模型的改進
4.1權值和閾值選取
對于初始的權值和閾值的選取并沒有理想的公式和方法,通常采用隨機產生大量的權值矩陣和閾值,然后利用BP神經網絡進行訓練產生最優值。這種方法具有全局性,但是效率不高,而且具有一定的隨機不確定性和盲目性。在進行BP神經網絡訓練之前,將BP神經網絡的連接值作為遺傳算法的染色體,利用遺傳算法(Genetic Algorithms,GA)對神經網絡的權值和閾值進行優化,目的是利用遺傳算法的全局搜索和優化能力篩選出潛在的最優權值和閾值[6];遺傳算法優化的BP神經網絡具有較高的自組織、自適應能力和強大的容錯率。
4.2輸入節點的確定
在問題研究的過程中,由于問題模型的復雜性,會選取盡可能多的變量表示影響因素。造成實驗數據極其復雜和冗余,如果將所有因素都作為神經網絡模型的輸入節點,網絡結構會變得復雜,網絡性能會下降,從而增加計算運行的時間,影響計算的精度。
運用PCA算法[7~8]對數據進行處理,主成分分析是一種統計過程,利用正交變換將一組可能相關的變量觀測值轉化為一組線性不相關的變量值,轉化得到的變量被稱為觀測值的主成分?;舅枷隱9]是: 1) 將所有影響因素構成一個高維度的整數矩陣(變量個數即維數); 2) 根據協方差公式計算協方差,構成一個協方差矩陣; 3) 計算該矩陣的特征向量以及特征值; 4) 根據實驗要求,對主成分進行篩選。
4.3激活函數的確定
除了權值和閾值,激勵函數也是影響誤差值的大小以及神經網絡收斂性的主要因素。在訓練初期,激勵函數變化趨于平坦,可以防止網絡陷入局部最優;隨著訓練的次數增加,激勵函數作用效果變大可以使網絡盡快收斂;當神經網絡接近訓練最優值(即收斂)的時候,激勵函數產生的影響過大又會使得網絡訓練產生震蕩,誤差函數不能夠趨于穩定,致使網絡收斂比較困難,此時又需要降低其作用效果。因此本文對激勵函數進行改進,定義新的激勵函數為
f(x)=α(1/(1+e-Kx))
(10)
其中(0<α≤1),α為常數,α=1,當連續兩次權值的修正值的乘積小于零時,α=0.5;K=ρt*(1/K0)(K0=0.01,Kmin=10),ρ=0.8,ρ為常數,t是神經網絡迭代的次數。
當神經網絡模型在進行訓練過程中,K的變化能很好地調整網絡的收斂速度和準確性,因為K隨著迭代次數的增加而減小,激勵函數越發陡峭,此時激勵函數的作用效果也變大,從而避免網絡陷入局部最優,還可以加快網絡的收斂;而當進入到系統靈敏或者接近收斂的時候,α可以減少激勵函數的作用效果,從而減小網絡訓練的震蕩,使網絡趨于穩定。
5神經網絡數據預測模型步驟
根據2、3節,建立改進的BP神經網絡數據預測模型的步驟如下:
1) 針對研究的問題模型,確定輸入、隱含、輸出結點個數,構建一個合適的三層網絡模型;
2) 樣本數據歸一化處理,利用PCA算法對數據進行分析,得到符合條件的成分,作為輸入節點;
3) 根據實際情況和訓練經驗,確定輸出層節點的個數,并初始化學習精度ε,確定最大訓練次數M,學習訓練參數學習率α;
4) 將BP神經網絡的連接值作為遺傳算法的染色體,迭代得到優化的權值和閾值,并帶入到神經網絡模型中;
5) 按照BP神經網絡算法重新訓練,然后判斷誤差或訓練次數,如果誤差小于學習精度,或者訓練次數超過M,則終止訓練,否則,返回第4)步;
6) 對驗證組數據進行預測,并對比試驗結果。
6網絡模型應用實例
房地產業是基礎設施建設產業,隨著經濟的快速發展,房價成為人們日益關注的熱點社會問題。房價受到許多因素的影響,根據文獻[10~12]的研究,得到11個影響貴陽市房價的可度量主要影響因素:地區生產總值、地區人口總數、居民人均可支配收入、居民人均消費支出、單位從業人員平均工資、房地產開發投資總額、商品房竣工面積、商品房銷售面積、社會消費品零售總額、居民消費價格指數,公共財政支出。建立貴陽市房價與這些相關因素的關系,并對房價進行預測。本文選取貴陽市1998年~2013年的房價及其影響因素的數據作為實驗樣本數據,詳細數據如表1所示。

表1 1998~2013貴陽市房價及影響因素數據[13~14]
6.1使用PCA方法選擇網絡模型網絡輸入節點
選取表1樣本數據,利用PCA方法提取貴陽市房價有關因素的主成成分,作為BP神經網絡模型的的輸入變量,輸入PCA方法的變量為表1中的11個變量,經過分析,得到五個主成分(累計平方和達到98.6%),成分矩陣如表2所示(X1~X11表示樣本數據的相關因素)。
6.2遺傳算法優化神經網絡步驟
其優化的步驟如下:
1) 遺傳算法編碼采用實數編碼,個體包含所有權值和閾值[15]。其編碼長度下:
S=n*m+m*l+m+l
(11)
其中,n、m、l分別為輸入節點、隱含節點、輸出節點個數,初始種群規模為50;
2) 適應度函數為神經網絡均方差的倒數:
f=1/MSE
(12)
3) 個體選擇操作方法是概率值選擇法,又稱輪盤法,其概率公式如下[16]:
(13)
4) 設定交叉的概率為pc=0.4,變異的概率為pm=0.04,遺傳代數100次。然后進行循環訓練,直至達到目標。
6.3建立BP神經網絡模型

表2 PCA分析成分矩陣
經過PCA分析得到五個主成分,輸入節點簡化為5個,輸出變量為平均房價,確定輸出節點個數為1,根據經驗公式以及訓練分析,當隱藏節點個數為6時,網絡訓練誤差結果最好。這樣就可以建立5-6-1結構的BP神經網絡模型。設置最大訓練次數M=20000,誤差上限ε=0.0001,學習率η=0.01。將優化得到的權值和閾值帶入到建立的神經網絡模型中,并利用改進的激勵函數作為訓練函數,訓練得到用來預測的最優連接矩陣。
6.4模型的分析-預測
為了驗證模型的實用性,將表1中前12組作為樣本數據輸入到BP神經網絡中,得到最優的連接矩陣,預測2011年~2013年貴陽市的房價。預測方法是輸入上一年的數據預測下一年的房價,比如用1998年計算后得到的五個成分作為BP神經網絡輸入變量預測1999年的房價。
7實驗結果分析
根據表1的數據,傳統BP神經網絡模型結構如下:輸入節點為11個,隱含層節點為9個,輸出節點為1個,設置最大訓練次數M=20000,誤差上限ε=0.0001,學習率η=0.01。將1998年~2009年12組樣本數據輸入到BP神經網絡中,剩下的三組作為測試驗證樣本,訓練之后得到最優的連接矩陣。傳統BP神經網絡和本文建立的神經網絡模型預測結果及誤差分析如表3所示;由表3對比可知,相比傳統BP神經網模型,采用本文網絡預測模型預測房價的誤差更小,精度較高,相對誤差不超過0.6%,說明本文的網絡模型比傳統算法更具優越性;由圖2可知預測的結果更加接近真實的值,而且預測數據的誤差比較平均,沒有出現跳躍式波動,這說明本文模型預測的結果具有更好的穩定性。此外,實驗中發現,本文神經模型的收斂速度也較前者更快,但是運行時間較前者有所增加。兩種預測模型的花費的運行時間平均分別為3min和20min。其原因是遺傳算法迭代花費較長時間。

表3 兩種模型預測結果及誤差分析

圖2 兩種模型預測結果相對誤差絕對值
8結語
本文分別采用傳統BP神經網絡模型和本文模型對2011年~2013年貴陽市房價進行預測。由實驗結果可知,后者取得了更好的效果,在預測房價上更具真實性。此外,利用PCA對數據進行簡約,能夠簡化網絡的結構,提高性能。但是在引入GA算法之后,會增加計算運行的時間,而且還會存在一些難于量化的影響因素影響房價走勢,從而影響預測結果的穩定性與客觀性。
參 考 文 獻
[1] 朱晨杰,楊永麗.基于MapReduce的BP神經網絡算法研究[J].微型電腦應用,2012,28(10):9-12,19.
ZHU Chengjie, YANG Yongli. Research of MapReduce Based on BP Neural Network Algorithm[J]. Microcomputer Applications,2012,28(10):9-12,19.
[2] 徐麗娜.神經網絡控制[M].北京:電子工業出版社,2003:5-60.
XU Lina. Neural Network Contro[M]. Beijing: Publising House of Electronics Industry,2003:5-60.
[3] Mohammed E, Sudhakar K V. ANN Back-propagation Prediction Model for Fracture Toughness in Micro Alloy Steel[J]. International Journal of Fatigue,2002,24(9):1003-1010.
[4] 李曉峰,徐玖平,王蔭清,等.人工神經網絡自適應學習算法的建立及其應用[J].系統工程理論與實踐,2004,24(5):1-8.
LI Xiaofeng, XU Jiuping, WANG Yinqing, et al. The Establishment of Self-adapting Algorithm of BP Neural Network and Its Application[J]. Systems Engineering — Theory & Practice,2004,24(5):1-8.
[5] Kandel E R, Schwarts J. Principles of Neural Science[M]. Amsterdam: Elsevier,1985:1-56.
[6] 高玉明,張仁津.基于遺傳算法和BP神經網絡的房價預測分析[J].計算機工程,2014,40(4):187-191.
GAO Yuming, ZHANG Renjin. Analysis of House Price Prediction Based on Genetic Algorithm and BP Neural Network[J]. Computer Engineering,2014,40(4):187-191.
[7] 楊開睿,孟凡榮,梁志貞.一種自適應權值的PCA算法[J].計算機工程與應用,2012,48(3):189-191.
YANG Kairui, MENG Fanrong, LIANG Zhizhen. Adaptively weighted PCA algorithm[J]. Computer Engineering and Applications,2012,48(3):189-191.
[8] 于成龍.基于PCA的特征選擇算法[J].計算機技術與發展,2011,21(4):123-125.
YU Chenglong. Features Selection Algorithm Based on PCA[J]. Computer Technology and Development,2011,21(4):123-125.
[9] 劉迎,董興輝,李元源,等.KPCA法在風電機組齒輪箱故障診斷中的應用[J].機械工程與自動化,2012(5):130-132.
LIU Ying, DONG Xinghui, LI Yuanyuan, et al. Application of KCPA Method in Fault Diagnosis for Wind Turbine Gearbox[J]. Mechanical Engineering & Automation,2012(5):130-132.
[10] 許光建,魏義方,戴李元,等.中國城市住房價格變動影響分析[J].經濟理論與經濟管理,2010(8):5-14.
XU Guangjian, WEI Yifang, DAI Liyuan, et al. An Analysis on The Influential Factors in The Changes of Chinese Housing Price[J]. Economic Theory and Business Management,2010(8):5-14.
[11] 趙煜明,朱紅梅,羅寅,等.城市住宅價格影響因素分析——以長沙市為例[J].價值工程,2011,30(15):158-159.
ZHAO Yuming, ZHU Hongmei, LUO Yan, et al. Regression Analysis of Influencing Factors of House Price: Taking Changsha as an Example[J]. Value Engineering,2011,30(15):158-159.
[12] 陸麗麗,胡斌,李輝,等.中國房價構成與預測的仿真分析[J].計算機仿真,2014,31(3):230-238.
LU Lili, HU Bin, LI Hui, et al. Simulation Analysis of China’s Housing Prices Constitution and Prediction[J]. Computer Simulation,2014,31(3):230-238.
[13] 貴陽市統計局,國家統計局貴陽調查隊,貴陽統計年鑒[M].北京:中國統計出版社,2013:1-109,403-414.
Guiyang Statistical Bureau, Guiyang Statistical Yearbook[M]. Beijing: China Statictics Press,2013:1-109,403-414.
[14] 貴州省統計局,國家統計局貴州調查總隊,貴州統計年鑒[M].北京:中國統計出版社,2014:1-134,435-442.
Guiyang Statistical Bureau, Guiyang Statistical Yearbook[M]. Beijing: China Statictics Press,2014:1-134,435-442.
[15] Montana D J, Davis L. Training Feed forward Neural Networks Using Neural Networks and Genetic Algorithm[C]//Proc. of International Conference on Computing, Communication and Control Technologies. Austin, USA: [s.n.],1989:762-767.
[16] 張良均,曹晶,蔣世忠.神經網絡實用教程[M].北京:機械工業出版社,2008:93-97.
ZHANG Liangjun, CAO Jing, JIANG Shizhong. Neural Network Trial Tutorial[M]. Beijing: China Machine Press,2008:93-97.
中圖分類號TP311.1
DOI:10.3969/j.issn.1672-9722.2016.03.022
作者簡介:喻寶祿,男,碩士研究生,研究方向:云計算及其應用,計算機網絡。段迅,男,博士,副教授,研究方向:對等網絡與覆蓋網,無線傳感器網絡及其應用。吳云,男,博士,副教授,研究方向:云計算及其應用。
基金項目:貴州省科學技術基金項目《組播覆蓋網性能度量及優化技術研究》(編號:黔科合J字[2010]2256號);醫療云平臺的設計與研究(編號:聯科(合)20130901);貴州省科學技術基金項目(編號:黔科合J字[2010]2100號);貴州大學引進人才科研項目(編號:貴大人基合字(2009)029號)資助。
收稿日期:2015年9月10日,修回日期:2015年10月25日