張 琪
(蘭州交通大學 數理學院,甘肅 蘭州 730070)
陜西省的GDP一直處于我國的中上游水平,1999年陜西省的GDP為1592.64億元,而在2019年,GDP高達25793.17億元,可以看出陜西省的GDP增長速度高于全國水平。2020年不僅是全面建成小康社會也是“十三五”規(guī)劃的最后一年,這一期間的經濟增長水平也是陜西省乃至全國的聚焦問題。
在所有的人工神經網絡中,BP神經網絡使用最為廣泛,它是一種誤差逆向傳播的前饋神經網絡[1],具有良好的容錯性、魯棒性、泛化能力。文章擬采用BP神經網絡對陜西省近5年的GDP數值進行預測。
BP神經網絡屬于一種誤差反向傳遞的神經網絡,它包括輸入層,一個或多個隱含層,和輸出層等多層。數據傳入輸入層,經過輸出層傳出,而隱含層則為存儲數據的功能。當輸出誤差大于給定誤差時,誤差反向傳播,途徑隱含層最終傳向輸入層,各層的權值和閾值進行迭代更新,直到輸出值不斷逼近期望值停止訓練。
BP神經網絡進行預測前要訓練網絡,訓練過程如下。
2.1 確定網絡參數以及初始化。網絡輸入層節(jié)點數n由輸入維數決定,輸出層節(jié)點數m由輸出維數決定,隱含層節(jié)點數l,輸出層節(jié)點數m通過計算得到,接著初始化各層之間的神經元的權值,輸入層隱含層閾值a,輸出層的閾值b,給出學習速率和神經元激活函數[2]。
2.2 得出隱含層的輸出值。由輸入變量x,以及它與隱含層之間的權值Wij,還有隱含層閾值a,得出輸出H。
2.3 得出預測值。由隱含層的輸出值H,權重Wij,閾值b,可以得到網絡的預測值0。
2.4 得出誤差。由預測值O和期望的Y值,計算BP網絡的誤差值e。
2.5 將權值進行更新。由誤差e來更新權值Wij和Wjk。
式中,η為學習速率。
2.6 將閾值進行更新。由預測誤差e逐層更新網絡的所有閾值a和b。
2.7 確定BP神經網絡迭代是否完成,如果沒有,返回(2),直到誤差達到要求停止訓練。
實驗所用數據來源于2020年《國家統(tǒng)計年鑒》,選取2000年到2019年的陜西省近20年的GDP數據。
在訓練過程中為了避免變量間量綱差異較大,需要對數據進行歸一化處理,以達到提高預測精度的目的,本文用到的歸一化公式為:
其中xi為原始數據,x'i為歸一化后的數值。
實驗借助于MatlabR2018a軟件,構建一個單隱含層的BP神經網絡,從2000年開始,連續(xù)3年的陜西省GDP數據作為值,第4年的GDP數據作為輸出。輸入層維數因而確定為3,輸出層維數為1。其中2000年到2014年的樣本作為訓練集,2015年到2019年的樣本作為測試集,隱含層節(jié)點個數通過多次嘗試以及經驗公式得出,常見的經驗公式如下:
這里m表示輸入層的節(jié)點個數,n表示輸出層的節(jié)點個數,l為隱含層節(jié)點個數,其中a∈[0,1]的常數,由試湊法和經驗公式,將隱含層節(jié)點數設為10。最大迭代次數設為50000次,學習率設為0.01,目標誤差為0.0001,激活函數選擇為s型函數,其中f(x) ∈∈[0,1]。
在對GDP進行預測時,常見的誤差評價指標通常有。
均方誤差(MSE)
2015到2019年,這5年的GDP預測值相對誤差依次為0.867%,-0.539%,-0.058%,0.092%,0.020%,5年的平均相對誤差為0.382%,誤差較小,預測值曲線和實際值曲線幾乎完全重合,說明預測具有一定的準確性。
文章根據2000年到2019年陜西省20年的國內生產總值數據,建立了BP神經網絡模型,借助于Matlab軟件對BP神經網絡進行訓練,對陜西省近5年的GDP數值進行了預測,得到的預測數值和實際數值誤差較小,說明模型有著較強的擬合能力,達到了較好的預測效果。