劉志勇,王小紅
(1.咸陽職業技術學院,陜西 咸陽 712000;2.陜西省委黨校,陜西 西安 710061)
粒子群優化算法PSO (particle swarm optimization)是1995年由Eberhart和Konnedy提出的一種模擬鳥類覓食行為的優化算法[1],該方法是以群體智能為基礎,通過群體中不同個體之間的相互影響與協作,基于數學迭代方法來進行全局最優解的求解。與其他優化算法相比較,粒子群算法具有實現簡單,算法收斂快,逼近能力強,而且算法精度高等特點。因此粒子群算法成為眾多科研工作者研究的熱點。經過多年研究,對粒子群優化算法的研究應用領域已經涉及到函數優化[2-3]、模糊系統控制[4-5]以及其他遺傳算法[6-7]等。近年來,基于如何處理好控制系統解的可行性,有學者將PSO算法應用于控制系統的約束優化問題。但是,在實際工程應用中,如果對控制系統中約束條件處理不夠恰當,往往會出現優化結果不收斂,或者優化結果是空集的現象。造成該結果的因素是由于粒子群算法是以數學迭代為基礎的優化算法,而在算法優化的起始階段,優化系統會隨機初始化1組初始解,其次,粒子會根據一定的迭代和優化規則進行最優粒子參數更新,直至得到粒子的全局最優。而群中粒子在進行各自尋優過程中,由于沒有粒子的交叉和變異,粒子尋優的整個優化過程是隨機的,單個粒子在移動的過程中沒有一定的方向性,進而影響了整個系統的收斂速度和精度。
本文通過引入交叉權重因子和粒子個體運動速度權值,設計了一種變權值粒子群算法,并將其應用于小波神經網絡控制器,以驗證該算法的有效性。
傳統粒子群算法的優化過程是來自于對覓食過程中鳥群的聚集和分散行為的模仿[8]。在現實中,鳥群覓食的關鍵是鳥群中個體之間的相互幫助與協作,粒子群算法的優化思路對應于鳥群的覓食過程。在粒子群優化算法中,參加求解的初始解群,類似于鳥的種群。而群中的粒子個體被看作是鳥群中的個體,粒子種群的優化過程類似于覓食過程中地點的變化。粒子群中局部最優解被視為鳥個體找到的食源,而全局最優解是整個鳥群的最優食源。在實際工程應用中,粒子群優化模型都應該存在一個多維的搜索空間和若干個參加優化的個體粒子,優化過程就是對搜索空間中粒子最優位置與移動速度的搜索與求解,其中粒子的移動速度可以決定粒子在種群中的位置和方向,而每個粒子自身的位置和速度都根據其他群中粒子經驗進行調整,每個粒子的最優位置都是由粒子適應度曲線(優化函數)來決定。
在利用粒子群算法進行優化的初始階段,粒子群體的大小、個體粒子的初始速度和位置都是隨機產生。傳統粒子群優化算法中,粒子的速度和位置會按照式(1)和式(2)進行更新迭代,直至找到合適的全局最優解。
v(t+1)=αv(t)+β1(p(t)-
x(t))+β2(g(t)-x(t))
(1)
x(t+1)=x(t)+v(t+1)
(2)
x(t)、x(t+1)分別為第t、t+1時刻粒子的位置;v(t)、v(t+1)分別為第t、t+1時刻粒子的移動速度;p(t)為第t時刻粒子的個體最優;g(t)為第t時刻粒子的全局最優;α為粒子的慣性權值;β1和β2為粒子的學習權值。
在式(1)中,包含著3種不同功能的公式部分:αv(t)是用來記錄群中粒子的當前狀態的速度,α可以用來調節粒子自身速度的慣性值;β1(p(t)-x(t))部分是粒子對自身狀態的認知項,它只與粒子自身的經驗值有關,是實現局部最優的基礎;β2(g(t)-x(t))是粒子狀態信息之間的相互合作與共享的信息項,也稱之為社會項,是群中其他粒子個體運行狀態的借鑒基礎。3個部分在算法的優化過程中,相互平衡,相互制約,共同控制著群體、個體的運行狀態優化方向。
傳統粒子群算法在優化開始階段,收斂速度性能較好,但很容易陷入局部最優解。隨著優化時間推移,粒子個體移動狀體信息值越來越大,求解精度與算法收斂速度變得越來越低。原因是在傳統粒子群優化算法中,由于粒子在調整移動速度和位置過程中,沒有準確的方向性和靈活的移動能力,粒子在尋優過程中存在著相互干擾與制約,很難在短時間內逼近各自的最優位置。鑒于傳統粒子群算法存在的問題,本文通過引入粒子個體移動速度權值來擴大粒子在運動過程中的自我認知范圍,使粒子在移動過程中利用更多的信息來調整各自的移動方向。
由于在粒子群中,粒子維持當前移動速度的能力影響著下一次粒子的移動方向和全體最優解。而粒子移動速度慣性權值因子α是維持粒子移動速度狀態的決定性因素,它的取值直接影響著算法性能的優劣程度[9]。權值因子α值較小時,粒子群優化算法的精度較高,收斂速度較快。因此,為了提高傳統粒子群算法的精度與收斂速度,將其他粒子的速度狀態也作為對當前粒子速度狀態優劣評價的因素,可以將粒子速度權值因子α進行重新定義為
(3)
αi(t)為第i個粒子在t時刻的慣性權值因子。根據式(3),可以將其進一步理解為t時刻第i個粒子對整個系統的全局最優解的貢獻力。根據式(1)對傳統粒子群算法中全局最優解定義,進而在第i時刻粒子全局最優可以定義為
(4)
pi(t)為第t時刻第i個粒子的個體最優。針對傳統粒子群算法容易陷入局部最優解的缺點,考慮將群中粒子自我的認知范圍能力擴大,使其不再受限于粒子個體本身的狀態經驗,而是群中所有粒子的共同影響與協作下的最優自我認知范圍。由此,根據群中粒子個體最優解之間的關系,可以將其重新定義為
(5)
n為粒子個數。將式(3)~式(5)代入式(1),則可以得到改進后的粒子群速度與位置的優化公式為:
(6)
x(t+1)=x(t)+v(t+1)
(7)
由式(3)可觀察到,在利用優化后的粒子速度優化公式優化過程中,粒子速度的慣性權值是變化的,它會根據群中所有粒子個體的局部最優解的貢獻率來進行實時調整,不再是受限于某個粒子個體的局部最優,進而解決了傳統粒子群算法容易陷入局部最優的困惑,提高了算法的收斂速度。其次,在利用改寫后的粒子群算法進行控制器優化過程中,為了保持優化過程中運算綱量上的統一,可以在式(7)中粒子移動速度的基礎上,乘以單位時間量T,則粒子位置公式可以進一步改寫為
x(t+1)=x(t)+v(t+1)·T
(8)
通過聯立式(6)和式(8),可以進一步得到具有變權值粒子群優化算法模型:
(9)
x(t+1)=x(t)+v(t+1)·T
(10)
根據上述數學模型可知,改進后的變權重粒子群優化算法與傳統算法相比較,變權重粒子群優化算法將中,粒子個體狀態信息的最優選擇,不再是受自我調節因素的影響,全局最優是整個粒子個體最優評價的加權綜合。因而,其具有收斂速度快、精度高等優點。為進一步驗證變權重粒子群優化算法解決實際問題的能力,本文將其應用于小波神經網絡模型優化。
小波神經網絡WNN (wavelet neural network)是一種人工智能網絡,它是在小波分析的基礎上提出的[10]。WNN是在小波分析理論的基礎上,利用小波變換所構造的如圖1所示的一種分層多分辨率的人工神經網絡模型。

圖1 小波神經網絡結構
迄今為止,小波神經網絡模型因其深厚的理論基礎在各行業中也得到了廣泛的應用,特別是在科技資訊產業領域的應用取得了豐碩的成果[11-13]。在實際工程中,小波神經網絡模型也會因不同的工程領域在模型結構上也有著細微的差別與變化。目前,小波神經網絡大致可分為松散型和緊密型2大類[14],其中,緊密型神經網絡處理數據的能力強于松散型網絡。本文利用VWPSO算法對小波神經網絡進行優化,優化過程可以描述為:在小波神經網絡中,為促使全局解收斂于全局最優解,在優化過程中通過高斯函數進行參數加權,并且使輸入向量的高斯加權隨著算法的迭代靠近最優解的個體極值。此時,輸入向量的權重越大,它們的乘積越快速地收斂至全局最優解。利用VWPSO算法對如圖1所示的小波神經網絡參數進行訓練,訓練過程如下所述。
首先,定義圖1中輸入層的n個輸入向量為x1,x2,…,xn,則通過回溯運算可以得到小波神經網絡第2層(隱含層)的第i個小波神經元的輸入為
(11)
ψi為第i個小波神經元的輸入。經過小波基的伸縮平移,則第3層(輸出層)第i個小波神經元的輸出φi可以表示為
φi=ψi(di)
(12)
di為第i個小波神經元的期望輸出。則小波神經網絡第i個輸出yi為
(13)
根據式(13),可以定義小波神經網絡輸出誤差e為
(14)
根據式(3)~式(10)可以觀察到,VWPSO算法在傳統PSO算法的基礎上加入了粒子移動速度的慣性權重因子,以及高斯加權的全局極值。進而,可以根據式(11)~式(14)來進行小波神經網絡各參數的優化。具體優化步驟如圖2所示。

圖2 VWPSO算法優化流程
圖2中,在利用VWPSO算法進行小波神經網絡參數優化的過程中,首先,確定群中粒子的維數,并對群中各粒子所處位置、移動速度、慣性權值、最大迭代次數及系統誤差進行初始化;其次,利用小波神經網絡的回溯計算公式計算小波神經網絡的實際輸出及適應度值,通過計算每個粒子的全局最優來更新粒子的位置與速度。
為進一步驗證VWPSO算法對小波神經網絡參數優化,本文選擇仿真函數解析式為
y=3cos(2x)·e-0.3x2
(15)
設定隱含層節點數m=10,粒子群種群個數為n=20,粒子速度權重初值為α∈[0.1 0.8],粒子學習因子β1=1,β2=2,為防止粒子自我調節速度,將速度初值作如下限定:v(0)∈[0,1]。利用傳統的PSO算法對小波神經網絡進行優化調整,調整逼近效果曲線如圖3所示,調整誤差曲線如圖4所示。
根據圖3和圖4可以觀察到,利用傳統的PSO算法對小波神經網絡進行參數優化逼近,由于群中粒子沒有自我調整能力,調整誤差曲線出現了振蕩,但經過20多次調整,獲得全局最優解,調整誤差為0.2。為驗證VWPSO算法對小波神經網絡優化效果,在同樣仿真函數解析式下,利用VWPSO算法對神經網絡參數進行優化,最終優化曲線如圖5所示,VWPSO算法網絡優化誤差曲線如圖6所示。

圖3 PSO調整逼近曲線

圖4 PSO調整逼近誤差曲線

圖5 VWPSO調整逼近曲線

圖6 VWPSO調整逼近誤差曲線
對比圖3和圖5可知,VWPSO由于對傳統PSO中的粒子移動速度權值進行了處理,使速度權值能夠進行粒子的實時狀態進行調節,從而使得粒子個體狀態信息能夠進行最優選擇,淡化了粒子自身因素的影響,提高了算法優化的收斂速度和精度。對比圖4與圖6可知,VWPSO算法的逼近誤差精度比傳統PSO算法的誤差精度提高了10%,進而說明VWPSO算法不僅具有較強的曲線逼近能力,而且還具有較高的收斂精度和較快的收斂速度。
本文針對傳統粒子群算法易陷入局部最優解的缺點,通過引入交叉權重因子和粒子個體狀態最優權值,對傳統PSO算法進行了改進優化。通過粒子個體狀態最優權值來擴大粒子在運動過程中的自我認知范圍,使粒子在移動過程中利用更多的信息來調整各自的移動方向;通過交叉權重因子提高了粒子群算法的收斂精度和收斂速度。最后,利用VWPSO算法對小波神經網絡控制器進行優化,通過仿真實驗有效地驗證了VWPSO算法的穩定性和抗干擾性。為了提高粒子速度交叉權重因子的準確性,以后研究中可以考慮利用自組織模糊算法對其進行逼近。