黃余
摘 要: 為克服傳統BP神經網絡在運算過程的不足,提出一種基于高維粒子群算法的神經網絡優化方法。通過在高維PSO算法中引入隨機變化的加速常數來獲得最優權值,對BP神經網絡進行優化和訓練,再將優化好的高維BP神經網絡運用到交通事件自動檢測中,通過檢測訓練算法,并對訓練后的數據進行分類測試,把分類測試的結果與傳統BP神經網絡和經典事件檢測算法比較。結果顯示,經過優化后的高維粒子群BP神經網絡的檢測率、算法性能均優于BP神經網絡算法和經典算法,其中97,50個測試樣本中僅有2個測試樣本與應該達到的數值不一致,其他樣本都滿足測試要求,并且平均優化測試時間是傳統BP神經網絡檢測時間的一半,因此,優化后的BP神經網絡算法的性能十分優越。
關鍵詞: 高維BP神經網絡; 粒子群算法; 神經網絡; 結構優化
中圖分類號: TN711?34; TP311 文獻標識碼: A 文章編號: 1004?373X(2017)03?0157?03
Research on a neural network structure optimization method based on
high?dimensional particle swarm optimization
HUANG Yu1, 2
(1. College of Computer Science, Chongqing University, Chongqing 400044, China; 2. Yibin Vocational and Technical College, Yibin 644003, China)
Abstract: In order to eliminate the shortcomings of the traditional BP neural network in the operation process, a neural network optimization method based on the high?dimensional particle swarm optimization algorithm is proposed. The acceleration constant with random variation is introduced into the high?dimensional PSO algorithm to acquire the optimal weight to optimize and train the BP neural network. The optimized high?dimensional BP neural network is applied to the automatic detection of the traffic incident. The trained data is performed with class test with the detection and training algorithm, and its result is compared with those tested with the traditional BP neural network algorithm and classical event detection algorithm. The results show that the detection rate and performance of the algorithm optimized with high?dimensional particle swarm optimization BP neural network algorithm are better than those optimized with BP neural network algorithm and classical algorithm, the values of 2 test samples are different with the expected values of 97 and 50 test samples, the rest samples can meet the test requirement, and the average optimal testing time is half of the detection time of the traditional BP neural network. The optimized BP neural network algorithm has excellent performance.
Keywords: high?dimensional BP neural network; particle swarm optimization; neural network; structure optimization
0 引 言
目前關于高維多目標優化問題的理論和方法大都限于少數幾種算法,如NSGA?II算法,粒子群優化(PSO)算法。粒子群優化算法是Kennedy等受到飛鳥集群活動的啟發而提出的一類新興的基于集群智能優化算法[1?5]。相比進化算法,PSO具有易于實現和收斂速度快等優勢。近年來PSO在多目標優化領域的研究上取得了較大進展[6?9],在神經網絡訓練、復雜函數優化、圖像處理、工業系統優化等領域應用廣泛[10],PSO在特性的函數優化問題上更是發揮著重要作用,這些特性函數通常具備維數高、非線性、規模大、非凸和不可微等特點,一般計算方法運算困難。針對粒子群優化算法的優點以及傳統BP神經網絡存在的諸如較慢的收斂速度、較低的學習效率,并且在計算過程中較難計算出局部極小值等問題[11?14],提出一種基于高維粒子群算法的神經網絡優化方法,結合二者優點使其更好地應用于實際中。
1 基于高維PSO算法的BP神經網絡優化
1.1 高維PSO算法簡介
粒子群算法是一種集群行為的計算方法,在不局限于二維空間,考慮高維時,即是高維PSO算法。設搜索空間為[D]維,粒子集群是由[M]個粒子組成,其中,第[i]個粒子的空間位置表示為[Xi=xi1,xi2,…,xiD,i=][1,2,…,M,]其飛行速度應表示為[Vi=][vi1,vi2,…,viD。]將空間位置和飛行速度數值代入優化目標函數中,從而計算出用于衡量[x]優劣的適應值。假設粒子[i]搜索到的最優位置為[Pi=pi1,pi2,…,piD,]整個粒子群搜索到的最優位置記為[PK=pK1,pK2,…,pKD。]此時,對于每一代粒子,其第[d]維[1≤d≤D]的速度和位置根據式(1),式(2)迭代:
[vktt+1=ut?vitt+c1r1pid-xidt+c2r2pid-xidt] (1)
[xidt+1=xidt+vidt+1] (2)
[ut=umax-umax-umintitmax] (3)
式中:[ut]代表慣性權值數值,一般為線性慣性權值,慣性權值的作用是提高粒子群算法的全局、局部優化能力;[t]代表現在的迭代次數;[itmax]代表迭代的最大次數;[c1]和[c2]代表學習因子;[r1,r2]代表在[0,1] 范圍內變化的兩個隨機數值。
粒子位置的更新如圖1所示。
1.2 BP神經網絡
BP神經網絡在結構上一般由輸入層、隱含層、輸出層三層構成,屬于多層前饋神經網絡,包括輸入信號前向傳遞和誤差反向傳播兩個過程。BP神經網絡廣泛應用在各種預測模型中。網絡結構一般只需單個隱含層就能以任意精度逼近任意有理函數。訓練樣本的輸入、輸出向量的維數分別決定了網絡的輸入、輸出層神經節點個數,典型的只有單個隱含層、單個輸出的BP神經網絡結構如圖2所示。
在圖2中,[xi=x1,x2,…,xn]代表一組BP神經網絡的輸入向量;[y]代表一組BP神經網絡的目標輸出值;[wij]代表輸入層和隱含層兩層級之間的連接權值;[wj1]代表隱含層和輸出層兩層級之間的連接權值。[aj,b]分別為隱含層和輸出層的節點閾值。若設隱含層節點個數為[m,]則[j=1,2,…,m=1,]在輸入信號前向傳遞過程中,[xi]從輸入層逐層傳輸到隱含層和輸出層,由傳輸過程中各層連接權值矢量、閾值矢量和相應的激勵函數計算,得出輸出層的預測輸出值[Y,]若預測值[y]與目標值[Y]之間有誤差,則誤差部分轉入反向逐層傳遞,沿誤差減小的方向調整網絡各層連接的權值、閾值。反復執行以上過程,使得BP神經網絡的預測值不斷逼近實際輸出值。
1.3 PSO算法的優化
在實驗過程中,種群的中間粒子更容易得到全局最優位置而不是PSO算法中的所有粒子。因此,本文基于PSO算法并采用慣性因子[σ,]慣性因子更容易追蹤種群中最優粒子的位置并確保速度連續變化,即粒子下一時段的運行速度是在上一時段運行速度的基礎上迭代產生的,提高了PSO算法的性能,該優化算法稱為帶慣性項的粒子群算法。采用慣性因子[σ]后,新的粒子速度公式為:
[Vidt+1=σVidt+c1r1Pid-Xidt+c2r2Pgd-Xidt] (4)
優化后的PSO算法更容易找到最優位置。在最優位置找尋過程中,如果粒子探索的程度是在新的方向則被稱為探測,而仍然在原始軌跡搜索則稱為開發。探測和開發是找尋最優位置的必經過程,調整粒子探測和開發程度可以更好地找尋最優位置并達到優化效果。所以,常將隨機變化的加速常數[c1]和[c2]應用到帶慣性項的粒子群算法,代表粒子向個體極值和全局極值推進過程中的隨機加速權值,從而動態改變探測和開發所占的比例,使其盡快找到全局最優位置,該優化算法稱為引入慣性項和隨機加速常數的粒子群算法。其中,加速常數[c1]和[c2]定義為:
[c1=random(a)+tTmax] (5)
[c2=random(b)-tTmax] (6)
式中:[random(a)]和[random(b)]代表系統隨機生成的數;[t,Tmax]代表當前進化代數和最大進化代數。
1.4 BP網絡權值優化方法
由BP網絡的三層結構可知,用[ujht]代表輸入層和隱含層的網絡權值,[wkj(t)]代表隱含層和輸出層的網絡權值,[θk]代表輸出節點閾值,[θj]代表隱含層節點閾值。具體更新公式如下:
[wkjt+1=wkjt+αδkHj] (7)
[ujht+1=ujht+αkσjIh] (8)
[θKt+1=θKt+βδk] (9)
[θjt+1=θjt+βσj] (10)
式中:[Hj]代表隱含層節點[j]的輸出信號;[Ih]代表輸入層節點[h]的輸入信號;[δk]代表輸出層節點[k]的誤差;[σj]代表隱含層節點[j]的誤差;[α, β]代表學習參數,參數取值范圍為0.1~0.9。
1.5 高維粒子群BP的算法實現
高維粒子群優化BP神經網絡需要確定網絡的拓撲結構,根據網絡的拓撲結構確定粒子搜索空間的維數,即粒子長度,以誤差均方值作為基準調節BP網絡中的權值和閾值,以粒子群優化的適應度函數作為BP網絡誤差的反傳函數,據此建立誤差均方值與粒子群優化的適應度函數的對等關系,目標函數的表達式如下:
[fi=1Nk=1Nyk-ymk2] (11)
式中:[N]代表總訓練樣本數;[fi]代表目標函數的誤差平方和;[y(k)]代表目標函數的目標輸出值;[ym(k)]代表目標函數的實際輸出值。
改進粒子群算法尋優的具體步驟如下:
(1) 初始化粒子群參數。初始化粒子群規模、最大迭代次數[Tmax、]學習因子[c1]和[c2、]慣性權重[wmax]和[wmin]在特定位置與速度范圍內隨機初始化位置向量和速度向量。
(2) 初始化BP神經網絡。由實際情況確定BP神經網絡的拓撲結構,并建立下一步運算的網絡模型,進一步明確粒子維度。
(3) 輸入網絡訓練樣本。通過步驟(1),步驟(2)初始化的位置向量輸入網絡訓練樣本,確定網絡的權值和閾值,計算出期望輸出的誤差均方值和實際輸出的誤差均方值,由二者的誤差均方值可以得到粒子群的適應度函數。在粒子群適應度函數的基礎上結合位置和慣性因子可以計算粒子新的運動位置和運動速度。
(4) 迭代運算。確定每個粒子的個體極值和全局極值:粒子[i]的適應度值[fi]與個體最優值[Pbest]比較,如果小于[Pbest]則取代它作為當前的個體最優;適應度值[fi]與全局極值[gbest]比較, 如果小于[gbest]則取代它作為當前的全局最優。當停止迭代時,會得到粒子在全局的最優位置,此時需要把該數值作為BP網絡的最后權重值,映射為BP神經網絡的權值和閾值。
(5) 將樣本數據源中訓練樣本輸入到已確定的網絡模型中進行訓練,用測試樣本做預測。
2 高維粒子群BP算法實例仿真
高維粒子群BP算法仿真實驗的實驗數據采集自沈陽市和平區易發生交通擁堵的某一路段,采集方式是在測試車輛上安裝激光測距儀和 GPS設備,采樣時間設置為2 s,采樣時間段為早、中、晚高峰期三小時的時間區間,并多次測量采集數據,選擇每組中發生事件的實驗數據為6 rain,參照上述標準共采集150組樣本數據,把樣本數據歸一化。將100組訓練數據、50組測試數據輸入到Matlab進行運算,電腦內存為8 GB,利用本文的高維粒子群算法的BP神經網絡優化算法訓練,最后將測試樣本分類判別,檢驗最后的計算性能。部分原始樣本數據見表1。
設置高維粒子群算法的參數,其中,種群數量設置為[m=30,]維數設置為[D=12×13+13×4+4=212,]加速因子設置為[c1=c2=1.50,]慣性因子設置為[ω=0.720,]速度最大值[Vmax=1,]速度最小值[Vmin=-1,]位置最大值為5,位置最小值為?5,最大迭代次數[N=100。]當計算循環過程達到終止迭代次數時則終止計算。
通常采用交通事件的檢測率(DR)、平均檢測時間(MTTD)、誤判率(FAR)評價交通事件自動檢測的算法效率。通過采用本文優化的計算方法對采集到的數據進行分類訓練等一系列計算分析,并將最終分析結果和經典事件檢測算法、BP神經網絡算法比較。結果表明,經過優化后的高維粒子群BP神經網絡的檢測率、算法性能均優于經典算法和BP神經網絡算法,其中97,50個測試樣本中僅有2個測試樣本與應該達到的數值不一致,其他樣本都滿足測試要求,并且平均優化測試時間是傳統BP神經網絡檢測時間的一半,結果對比見表2。
3 結 語
本文基于高維粒子群算法的BP神經網絡結構優化方法,改進了傳統運算方法的檢測時間長、收斂速度慢的缺點,且容易實現,是一種新興的群智能優化算法,優化全面,適用范圍廣泛,具有較高的精度和較好的擬合性能。
參考文獻
[1] 姚爾果,閆秋粉,南振岐,等.基于改進粒子群算法的BP神經網絡模型研究[J].佳木斯大學學報(自然科學版),2012,31(1):107?109.
[2] 謝錚桂,鐘少丹,韋玉科.改進的粒子群算法及收斂性分析[J].計算機工程與應用,2011,47(1):46?49.
[3] 閏紀如.粒子群優化的神經網絡在交通流預測中的應用[D].杭州:浙江工業大學,2013.
[4] 劉洪波,王秀坤,孟軍.神經網絡基于粒子群優化的學習算法研究[J].小型微型計算機系統,2005,26(4):638?640.
[5] 胡衛東,曹文貴.基于改進粒子群算法的BP神經網絡在邊坡穩定性評價中的應用[J].湖南理工學院學報(自然科學版),2014,27(2):71?77.
[6] 劉坤,譚營,何新貴.基于粒子群優化的過程神經網絡學習算法[J].北京大學學報(自然科學版),2011,47(2):238?244.
[7] 徐以山,曾碧,尹秀文,等.基于改進粒子群算法的BP神經網絡及其應用[J].計算機工程與應用,2009,45(35):233?235.
[8] 張德慧,張德育,劉清云,等.基于粒子群算法的BP神經網絡優化技術[J].計算機工程與設計,2015,36(5):1322?1328.
[9] 肖俊生,任諱龍,李文濤.基于粒子群算法優化BP神經網絡漏鋼預報的研究[J].計算機測量與控制,2015,23(4):1302?1305.
[10] 沈學利,張紅巖,張紀鎖.改進粒子群算法對BP神經網絡的優化[J].計算機系統應用,2010(2):57?61.
[11] 江麗,王愛平.基于粒子群與BP混合算法的神經網絡學習方法[J].計算機應用,2012,32(z2):13?15.
[12] 徐大明,周超,孫傳恒,等.基于粒子群優化BP神經網絡的水產養殖水溫及pH預測模型[J].漁業現代化,2016,43(1):24?30.
[13] 許兆美,劉永志,楊剛,等.粒子群優化BP神經網絡的激光銑削質量預測模型[J].紅外與激光工程,2013,42(9):2370?2374.
[14] 關玉梅,李清江,張淑瑋,等.基于粒子群優化的RBF神經網絡模型研究[J].計算機光盤軟件與應用,2013(3):150?151.