PSOBP神經網絡研究論文
時間:2022-03-12 09:49:00
導語:PSOBP神經網絡研究論文一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。
摘要基于粒子群優化的算法具有全局隨機搜索最優解的特點。本文嘗試把PSO算法和神經網絡權值訓練的常用算法BP算法結合起來進行數據的訓練,實現對一組數據的訓練,并對結果與BP算法的訓練結果進行了對比,得到了較好的效果。
關鍵詞神經網絡;反向傳播算法;PSO算法;適應度函數
人工神經網絡是由人工神經元互連而成的網絡,它從微觀結構和功能上實現對人腦的抽象和簡化,具有許多優點。對神經網絡的權值系數的確定,傳統上采用反向傳播算法(BP算法)。BP網絡是一種多層前向反饋神經網絡,BP算法是由兩部分組成:信息的正向傳遞與誤差的反向傳播。在反向傳播算法中,對權值的訓練采用的是爬山法(即:δ算法)。這種方法在諸多領域取得了巨大的成功,但是它有可能陷入局部最小值,不能保證收斂到全局極小點。另外,反向傳播算法訓練次數多,收斂速度慢,使學習結果不能令人滿意。
粒子群優化算法(ParticleSwarmOptimizer,PSO)是一種進化計算技術(evolutionarycomputation)。源于對鳥群捕食的行為研究,PSO中,每個優化問題的解都是搜索空間中的一只鳥,我們稱之為粒子。所有的粒子都有一個由被優化的函數決定的適應值(fitnessvalue),每個粒子還有一個速度決定他們飛翔的方向和距離。然后粒子們就追隨當前的最優粒子在解空間中搜索。如果用粒子群算法對神經網絡的權值進行訓練,會得到較快的收斂速度,而且可以避免局部最值得出現。研究表明PSO是一種很有潛力的神經網絡算法。
本文提出了一種基于PSO算法的BP網絡學習算法,并通過MATLAB7.0實現對一組簡單的向量進行訓練對PSO—BP算法和BP算法進行了對比,試驗結果說明PSO—BP算法適合訓練BP網絡,并且也有希望應用于其他種類的前向網絡的訓練。
1PSO算法
PSO中,每個優化問題的解都是搜索空間中的一只鳥。我們稱之為“粒子”。所有的例子都有一個由被優化的函數決定的適應值(fitnessvalue),每個粒子還有一個速度決定它們飛翔的方向和距離。然后粒子們就追隨當前的最優粒子在解空間中搜索。
D維搜索空間中,有m個粒子,其中第i個粒子的位置是,m,其速度為。將帶入目標函數可計算出適應值。記第i個粒子搜索到的最優位置為,整個粒子群搜索到的最優位置為。離子狀態更新操作為:
其中,i=1,2…,m,d=1,2…,D;是非負常數,稱為慣性因子。也可以隨著迭代線性減小;學習因子,是非負常數;r1,r2是介于[0,1]之間的隨機數;是常數。
迭代中止條件一般選為最大迭代次數和粒子群迄今為止搜索到的最有位置滿足適應閾值。
2基于PSO的BP網絡學習算法
BP網絡是一種多層結構的前向網絡,其隱層神經元的激活函數為S型函數,而輸出神經元的激活函數可以是S型函數,也可以實線性函數,典型的S型函數為:
(3)
其中:s為神經元的加權輸入函數。
用PSO算法訓練BP網絡時,定義粒子群的位置向量的元素是BP網絡的全體連接權和閾值。首先初始化位置向量,然后用PSO算法搜索最優位置,使如下均方誤差指標(適應值)達到最小
(4)
其中,N是訓練集的樣本數;是第i個樣本的第j個網絡輸出節點的理想輸出值;是第i個樣本的第j個網絡輸出節點的實際輸出值;C是網絡輸出神經遠的個數。
基于PSO算法的BP網絡學習算法流程如下:
1)選定粒子數m;適應值閾值ε;最大允許迭代步數;、和;初始化X和V為(0,1)間的隨機數。
8)endfor
9)fori=1:1:m
10)按式(1)計算;按式(2)計算;
11)endfor
12)endwhile
13)以所得權值閾值為初始值用BP算法對網絡進行訓練
上述流程中,1)到12)用標準PSO算法對權值和閾值進行訓練,13)對PSO輸出的權值和閾值作為初始值用BP算法訓練網絡(MATLAB中有集成的訓練函數)。另外,,其中是第I個粒子的位置;V=,其中是第I個粒子的速度;是m個粒子迄今搜索到的最優適應值,其對應的粒子位置矩陣是p=;是粒子群迄今搜索到的最優適應值,對應的最優粒子位置是,粒子數m選定為30個。
3結果分析
本實例中隨機選取機輸入和輸出矩陣,如:p=[00000;10001;01001;00100;00010];t=[0000;1000;0100;0010;0001]。由于P是五行的矩陣,所以網絡輸入層的神經元個數為:5個,T為五行矩陣,故輸出層神經元個數為:5個,隱含層神經元個數為:6個。
首先觀察一下PSO算法中的適應值(fitness)的變化過程,圖1中,實線表示適應值的平均值,虛線表示是最優適應值。從圖中可以看出適應值迅速的選擇過程。
圖2為用PSO—BP算法和BP算法在訓練誤差精度為0.002的情況下的誤差演化曲線:(a)為PSO—BP算法訓練誤差演化曲線,所用時間是20.422000s。(b)為常用BP算法訓練誤差演化曲線,對權值的訓練采用的是梯度下降法,所用時間是27.172000s。從圖中可以看到:PSO—BP算法的迭代次數遠遠小于BP算法,并且訓練時間也縮短了。
(a)
(b)
圖2
為了充分說明實驗結果,筆者做了多次反復實驗,實驗結果如下表:在訓練誤差精度為0.002的情況下,十次試驗中PSO—BP算法的平均迭代次數遠小于BP算法,收斂時間較接近。
算法
次數BP算法PSO—BP算法
迭代次數收斂時間迭代次數收斂時間
1158735.79700071719.547000
2105123.17200079433.390000
391718.28100068327.813000
480916.28200087933.265000
5132333.125000109730.218000
6214643.76600093126.046000
7116123.64100056817.391000
853014.68700073625.782000
9141526.75000086927.625000
10122724.17200095329.422000
平均值1216.625.967300822.727.04990
4結論
本次試驗中對BP算法和PSO—BP算法進行了對比試驗,試驗結果證明:PSO—BP算法優于BP算法。具體表現在:學習算法的收斂速度有所提高;BP算法中的局部極小問題常令學習結果不滿意,PSO的全局優化能力使問題得到解決。
參考文獻
[1]MartinT.Hagan,HowardB.Demuth,MarkH.Beale,著,戴葵,等譯.《神經網絡設計》.機械工業出版社,2002年9月
[2]徐麗娜編著.《神經網絡控制》.電子工業出版社,2003年2月
[3]高雋編著.《人工神經網絡原理及仿真實例》.機械工業出版社,2003年8月
[4]ZbigniewMichalewicz,DavidB.Fogel著,曹宏慶,李艷,董紅斌,吳志健,譯.《如何求解問題——現代啟發式方法》.中國水利水電出版社,2003年2月
[5]陽明盛,熊西文,林建華,編著.《MATLAB基礎及數學軟件》.大連理工大學出版社,2003年8月
[6]TomM.Mitchell,著,曾華軍,張銀奎等譯.《機器學習》.機械工業出版社,2003年1月
- 上一篇:Wire網絡iButton設計論文
- 下一篇:學校有關通知