鄧文杰
(四川大學 計算機學院,四川 成都 610065)
基于聚粒子群算法的神經網絡權值優化方法
鄧文杰
(四川大學 計算機學院,四川 成都 610065)
神經網絡作為機器智能分支中一種優秀的分類算法,在圖像分類、人臉識別等領域中都有非常廣泛的應用。但由于其參數過多,所以容易陷入局部最優解。針對BP神經網絡易陷入局部最優的問題,提出了一種粒子群算法和聚類算法結合的優化神經網絡權值的方法。該方法通過把神經網絡的權值作為粒子群算法的初始粒子并利用粒子群算法的隨機性全局搜索神經網絡的待選初始權值,然后利用C均值算法找出包含權值較多的那一類,并把其聚類中心作為BP神經網絡的初始權值。仿真結果表明,利用這種新的融合算法在防止BP神經網絡易陷入局部最優的問題上能比普通的粒子群算法更加優秀。
BP神經網絡;粒子群優化;聚類;權值;局部最優
人工神經網絡(Artificial Neural Networks,ANNs)的研究最早可以追溯到19世紀50年代末。F·Rosenblatt設計的“感知機”[1]在當時便引發了神經網絡的研究熱潮,各大實驗室紛紛制作出感知機模型并應用在文字識別、聲音識別等領域。但是,感知機只有輸出層神經元進行激活處理,即只擁有一層功能神經元(functional neuron),其學習能力非常有限。于是科學家們開始嘗試訓練多層網絡,但感知機的學習規則就捉襟見肘了。為了解決這個問題,以Rumelhart和McCelland為首的科學家小組于1986年提出了誤差逆傳播(Error Back Propagation)算法[2],現已成為最熱的神經網絡學習算法。
BP算法通過對網絡的均方誤差求導得到權值和閾值的梯度,并依梯度方向修正權值和閾值,簡單有效卻存在局部最優和初值敏感問題[3-4]。為了解決這些問題,學者們提出通過遺傳算法[5-6]、粒子群算法[7-9]和蟻群算法[10]改進神經網絡的參數和結構。
針對BP神經網絡易陷入局部最優的問題,文中提出一種融合K-means[11]與傳統粒子群算法特性的群智能方法—聚粒子群算法,直接得到接近全局最優的網絡權值,并利用BP使網絡快速收斂。
給定訓練集(xk,yk),k=1,2,…,N,組成了擁有n個輸入神經元,m個隱藏神經元,l個輸出神經元的典型BP神經網絡。其中隱藏層第i個神經元的閾值為b1i,輸出層第i個神經元的閾值為b2i,輸入層第i個神經元和隱藏層第j個神經元的權值為wij,隱藏層第i個神經元和輸出層第j個神經元的權值為vij,第j個隱藏層神經元接收的輸入和第j個輸出層神經元接收的輸入分別為:
(1)
(2)

(3)
因為BP算法基于梯度下降策略,以目標梯度的方向對參數進行調整,給定學習率η,有:

(4)
而根據求導的鏈式法則有:

(5)
根據式(1)、(2)和式(5)有:

(6)
將式(6)帶入式(5)再帶入式(4),就得到了BP算法中的權值更新公式:
Δvij=nhjbi
(7)
同理,可計算出:
Δb2j=-ηhj,Δb1j=-ηej,Δwij=-ηejxi
(8)
其中
(9)
BP神經網絡任意參數θ的更新公式為:
θ=θ+Δθ
(10)
從以上推導可知,BP神經網絡算法是根據均方誤差的梯度方向修正權值和閾值,這就意味著如果初始權值選擇不當,BP神經網絡在學習過程中很容易陷入局部最優,由于均方誤差曲面比較復雜,故滿足條件的解不唯一,這就使得選擇初始權值非常困難。
通過PSO確定網絡權值的一般思路是:先將神經網絡的性能函數作為粒子群的性能函數,粒子代表網絡中的權值和閾值[12],然后通過式(11)和式(12)分別對粒子的位置和速度進行更新。
vij(t+1)=vij(t)+c1×r1j(t)×(pij(t)-xij(t))+c2×r2j(t)×(pgj(t)-xij(t))
(11)
xij(t+1)=xij(t)+vij(t+1)
(12)
其中,i表示第i個粒子;j表示第i個粒子的維度;c1和c2表示學習因子;r1和r2表示[0,1]范圍內的隨機數;vij(t)和xij(t)分別表示t時刻i粒子的第j維的速度和位置。
PSO算法雖然能利用自己的隨機性以大概率將神經網絡的初始權值定位在全局最優值附近,但是其計算出的權值依然會有部分概率收斂到局部最優值[13]。不過經以上實驗不難發現,PSO得到的網絡權值要大概率靠近全局最優,小概率靠近局部最優。所以,文中采用改進的PSO算法(CPSO)。將這種使用CPSO確定神經網絡權值結合BP算法的方法稱為CPSO-BP算法。
CPSO-BP算法流程為:
Step1:將網絡的權值向量化作為粒子群每個粒子個體;

Step3:按PSO算法更新,并記錄下更新結束后最優的粒子個體;
Step4:重復N次Step2-Step3并且得到N個粒子個體;
Step5:將N個粒子個體用C均值方法進行聚類,并設聚類中心數C=log2N+1。將包含結果較多的類別的聚類中心作為神經網絡的初始權值和閾值;
Step6:利用Step5計算出的權值和閾值創建神經網絡,然后用BP算法訓練神經網絡,對其權閾值進行微調;
Step7:輸入測試數據,驗證網絡誤差。
為了說明CPSO-BP的優越性,對其進行仿真實驗,并與BP算法進行比較。圖1是一個1-2-1的網絡,具有如下權值和閾:w1=10,w2=10,w3=1,w4=1,w5=5,w6=-5,w7=-1。輸入P在[-2,2]中采樣。

圖1 1-2-1神經網絡
為做出權值分布圖,只調整參數w1和w3。設BP算法最大運算步數為5 000,學習速率eta=0.5,目標誤差為1e-9。CPSO-BP算法選用的粒子數為30,迭代次數為30。圖2顯示了不同算法優化出的權值所處的位置分布,(a)是標準PSO優化出的權值位置,可見依然會陷入局部最優,而(b)是CPSO算法優化出的權值分布,其很明顯地分布在全局最優周圍。
表1是對參數w1和w2進行20次訓練后的誤差平均值和平均迭代次數。

圖2 使用不同算法優化出的初始權值

表1 對參數w1和w2進行20次訓練后的平均誤差和平均迭代次數
當訓練整個網絡的參數時,設BP算法最大運算步數為10 000,學習速率eta=0.5,目標誤差為0.001。CPSO-BP算法選用的粒子數為30,迭代次數為30。表2是對整個網絡進行20次訓練后得到的誤差平均值和平均迭代次數,圖3為不同優化結果的輸出和期望輸出。

表2 對整個網絡20次訓練得到的誤差平均值和迭代次數

圖3 使用不同的算法對網絡的擬合
由上述對比結果可以看出,CPSO選出的初始權值明顯優于PSO,其訓練后的誤差和收斂速度也優于普通PSO算法。
針對BP神經網絡容易陷入局部最優等缺點,利用CPSO算法將神經網絡權值和閾值作為粒子進行全局優化,然后通過C均值算法將粒子族群數較多的族群的聚類中心作為神經網絡的初始權值。仿真實驗表明,CPSO-BP算法能極大限度地克服BP神經網絡對初始值敏感,容易陷入局部極小值等缺點。
[1] Rosenblatt F.The perceptron:a probabilistic model for information storage and organization in the brain[J].Psychological Review,1958,65(6):386-408.
[2] Rumelhart D E,Hinton G E,Williams R J.Learning internal representation by back-propagation errors[J].Nature,1986,323(323):533-536.
[3] 余本國.BP神經網絡局限性及其改進的研究[J].山西農業大學學報:自然科學版,2009,29(1):89-93.
[4] 王美玲,王念平,李 曉.BP神經網絡算法的改進及應用[J].計算機工程與應用,2009,45(35):47-48.
[5] 王 晶.蟻群算法優化前向神經網絡的一種方法[J].計算機工程與應用,2006,42(25):53-55.
[6] Trelea I C.The particle swarm optimization algorithm:convergence analysis and parameter selection[J].Information Processing Letters,2003,85(6):317-325.
[7] 高海兵,高 亮,周 馳,等.基于粒子群優化的神經網絡訓練算法研究[J].電子學報,2004,32(9):1572-1574.
[8] 劉洪波,王秀坤,孟 軍,等.神經網絡基于粒子群優化的學習算法研究[J].小型微型計算機系統,2005,26(4):638-640.
[9] 王崇駿,于汶滌,陳兆乾,等.一種基于遺傳算法的BP神經網絡算法及其應用[J].南京大學學報:自然科學版,2003,39(5):459-466.
[10] 翟宜峰,李鴻雁,劉寒冰,等.用遺傳算法優化神經網絡初始權重的方法[J].吉林大學學報:工學版,2003,33(2):45-50.
[11] 孫吉貴,劉 杰,趙連宇.聚類算法研究[J].軟件學報,2008,19(1):48-61.
[12] 楊 維,李歧強.粒子群優化算法綜述[J].中國工程科學,2004,6(5):87-94.
[13] 吳曉軍,楊戰中,趙 明.均勻搜索粒子群算法[J].電子學報,2011,39(6):1261-1266.
ANeuralNetworkWeightsOptimizationMethodBasedonClusteringParticleSwarmOptimization
DENG Wen-jie
(School of Computer Science,Sichuan University,Chengdu 610065,China)
Neural network is a kind of excellent classification algorithm in the branch of machine intelligence,which has a wide range of applications in the field of image classification,face recognition and so on.However,because of its excessive parameters,it is easy to fall into the local optimal solution.According to this problem,a method combining particle swarm algorithm and clustering algorithm to optimize the weights of neural networks is proposed,which takes the neural network weights as the initial particle of particle swarm algorithm and uses the random of particle swarm algorithm to search the initial weights of neural network.Then the class contains more weight is found using C-means algorithm and its clustering center is regarded as the initial weights of BP neural network.The simulation results show that it is more excellent than the conventional particle swarm optimization algorithm in preventing the BP neural network from falling into local optimum.
BP neural networks;particle swarm optimization;clustering;weight;local optimum
TP183
A
1673-629X(2017)10-0016-03
2016-10-24
2017-02-15 < class="emphasis_bold">網絡出版時間
時間:2017-07-19
國家自然科學基金資助項目(61571312)
鄧文杰(1993-),男,碩士研究生,CCF會員(200051867G),研究方向為神經網絡優化。
http://kns.cnki.net/kcms/detail/61.1450.TP.20170719.1109.026.html
10.3969/j.issn.1673-629X.2017.10.004