PSOBP神經(jīng)網(wǎng)絡(luò)研究論文

時(shí)間:2022-03-12 09:49:00

導(dǎo)語:PSOBP神經(jīng)網(wǎng)絡(luò)研究論文一文來源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

PSOBP神經(jīng)網(wǎng)絡(luò)研究論文

摘要基于粒子群優(yōu)化的算法具有全局隨機(jī)搜索最優(yōu)解的特點(diǎn)。本文嘗試把PSO算法和神經(jīng)網(wǎng)絡(luò)權(quán)值訓(xùn)練的常用算法BP算法結(jié)合起來進(jìn)行數(shù)據(jù)的訓(xùn)練,實(shí)現(xiàn)對(duì)一組數(shù)據(jù)的訓(xùn)練,并對(duì)結(jié)果與BP算法的訓(xùn)練結(jié)果進(jìn)行了對(duì)比,得到了較好的效果。

關(guān)鍵詞神經(jīng)網(wǎng)絡(luò);反向傳播算法;PSO算法;適應(yīng)度函數(shù)

人工神經(jīng)網(wǎng)絡(luò)是由人工神經(jīng)元互連而成的網(wǎng)絡(luò),它從微觀結(jié)構(gòu)和功能上實(shí)現(xiàn)對(duì)人腦的抽象和簡化,具有許多優(yōu)點(diǎn)。對(duì)神經(jīng)網(wǎng)絡(luò)的權(quán)值系數(shù)的確定,傳統(tǒng)上采用反向傳播算法(BP算法)。BP網(wǎng)絡(luò)是一種多層前向反饋神經(jīng)網(wǎng)絡(luò),BP算法是由兩部分組成:信息的正向傳遞與誤差的反向傳播。在反向傳播算法中,對(duì)權(quán)值的訓(xùn)練采用的是爬山法(即:δ算法)。這種方法在諸多領(lǐng)域取得了巨大的成功,但是它有可能陷入局部最小值,不能保證收斂到全局極小點(diǎn)。另外,反向傳播算法訓(xùn)練次數(shù)多,收斂速度慢,使學(xué)習(xí)結(jié)果不能令人滿意。

粒子群優(yōu)化算法(ParticleSwarmOptimizer,PSO)是一種進(jìn)化計(jì)算技術(shù)(evolutionarycomputation)。源于對(duì)鳥群捕食的行為研究,PSO中,每個(gè)優(yōu)化問題的解都是搜索空間中的一只鳥,我們稱之為粒子。所有的粒子都有一個(gè)由被優(yōu)化的函數(shù)決定的適應(yīng)值(fitnessvalue),每個(gè)粒子還有一個(gè)速度決定他們飛翔的方向和距離。然后粒子們就追隨當(dāng)前的最優(yōu)粒子在解空間中搜索。如果用粒子群算法對(duì)神經(jīng)網(wǎng)絡(luò)的權(quán)值進(jìn)行訓(xùn)練,會(huì)得到較快的收斂速度,而且可以避免局部最值得出現(xiàn)。研究表明PSO是一種很有潛力的神經(jīng)網(wǎng)絡(luò)算法。

本文提出了一種基于PSO算法的BP網(wǎng)絡(luò)學(xué)習(xí)算法,并通過MATLAB7.0實(shí)現(xiàn)對(duì)一組簡單的向量進(jìn)行訓(xùn)練對(duì)PSO—BP算法和BP算法進(jìn)行了對(duì)比,試驗(yàn)結(jié)果說明PSO—BP算法適合訓(xùn)練BP網(wǎng)絡(luò),并且也有希望應(yīng)用于其他種類的前向網(wǎng)絡(luò)的訓(xùn)練。

1PSO算法

PSO中,每個(gè)優(yōu)化問題的解都是搜索空間中的一只鳥。我們稱之為“粒子”。所有的例子都有一個(gè)由被優(yōu)化的函數(shù)決定的適應(yīng)值(fitnessvalue),每個(gè)粒子還有一個(gè)速度決定它們飛翔的方向和距離。然后粒子們就追隨當(dāng)前的最優(yōu)粒子在解空間中搜索。

D維搜索空間中,有m個(gè)粒子,其中第i個(gè)粒子的位置是,m,其速度為。將帶入目標(biāo)函數(shù)可計(jì)算出適應(yīng)值。記第i個(gè)粒子搜索到的最優(yōu)位置為,整個(gè)粒子群搜索到的最優(yōu)位置為。離子狀態(tài)更新操作為:

其中,i=1,2…,m,d=1,2…,D;是非負(fù)常數(shù),稱為慣性因子。也可以隨著迭代線性減??;學(xué)習(xí)因子,是非負(fù)常數(shù);r1,r2是介于[0,1]之間的隨機(jī)數(shù);是常數(shù)。

迭代中止條件一般選為最大迭代次數(shù)和粒子群迄今為止搜索到的最有位置滿足適應(yīng)閾值。

2基于PSO的BP網(wǎng)絡(luò)學(xué)習(xí)算法

BP網(wǎng)絡(luò)是一種多層結(jié)構(gòu)的前向網(wǎng)絡(luò),其隱層神經(jīng)元的激活函數(shù)為S型函數(shù),而輸出神經(jīng)元的激活函數(shù)可以是S型函數(shù),也可以實(shí)線性函數(shù),典型的S型函數(shù)為:

(3)

其中:s為神經(jīng)元的加權(quán)輸入函數(shù)。

用PSO算法訓(xùn)練BP網(wǎng)絡(luò)時(shí),定義粒子群的位置向量的元素是BP網(wǎng)絡(luò)的全體連接權(quán)和閾值。首先初始化位置向量,然后用PSO算法搜索最優(yōu)位置,使如下均方誤差指標(biāo)(適應(yīng)值)達(dá)到最小

(4)

其中,N是訓(xùn)練集的樣本數(shù);是第i個(gè)樣本的第j個(gè)網(wǎng)絡(luò)輸出節(jié)點(diǎn)的理想輸出值;是第i個(gè)樣本的第j個(gè)網(wǎng)絡(luò)輸出節(jié)點(diǎn)的實(shí)際輸出值;C是網(wǎng)絡(luò)輸出神經(jīng)遠(yuǎn)的個(gè)數(shù)。

基于PSO算法的BP網(wǎng)絡(luò)學(xué)習(xí)算法流程如下:

1)選定粒子數(shù)m;適應(yīng)值閾值ε;最大允許迭代步數(shù);、和;初始化X和V為(0,1)間的隨機(jī)數(shù)。

8)endfor

9)fori=1:1:m

10)按式(1)計(jì)算;按式(2)計(jì)算;

11)endfor

12)endwhile

13)以所得權(quán)值閾值為初始值用BP算法對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練

上述流程中,1)到12)用標(biāo)準(zhǔn)PSO算法對(duì)權(quán)值和閾值進(jìn)行訓(xùn)練,13)對(duì)PSO輸出的權(quán)值和閾值作為初始值用BP算法訓(xùn)練網(wǎng)絡(luò)(MATLAB中有集成的訓(xùn)練函數(shù))。另外,,其中是第I個(gè)粒子的位置;V=,其中是第I個(gè)粒子的速度;是m個(gè)粒子迄今搜索到的最優(yōu)適應(yīng)值,其對(duì)應(yīng)的粒子位置矩陣是p=;是粒子群迄今搜索到的最優(yōu)適應(yīng)值,對(duì)應(yīng)的最優(yōu)粒子位置是,粒子數(shù)m選定為30個(gè)。

3結(jié)果分析

本實(shí)例中隨機(jī)選取機(jī)輸入和輸出矩陣,如:p=[00000;10001;01001;00100;00010];t=[0000;1000;0100;0010;0001]。由于P是五行的矩陣,所以網(wǎng)絡(luò)輸入層的神經(jīng)元個(gè)數(shù)為:5個(gè),T為五行矩陣,故輸出層神經(jīng)元個(gè)數(shù)為:5個(gè),隱含層神經(jīng)元個(gè)數(shù)為:6個(gè)。

首先觀察一下PSO算法中的適應(yīng)值(fitness)的變化過程,圖1中,實(shí)線表示適應(yīng)值的平均值,虛線表示是最優(yōu)適應(yīng)值。從圖中可以看出適應(yīng)值迅速的選擇過程。

圖2為用PSO—BP算法和BP算法在訓(xùn)練誤差精度為0.002的情況下的誤差演化曲線:(a)為PSO—BP算法訓(xùn)練誤差演化曲線,所用時(shí)間是20.422000s。(b)為常用BP算法訓(xùn)練誤差演化曲線,對(duì)權(quán)值的訓(xùn)練采用的是梯度下降法,所用時(shí)間是27.172000s。從圖中可以看到:PSO—BP算法的迭代次數(shù)遠(yuǎn)遠(yuǎn)小于BP算法,并且訓(xùn)練時(shí)間也縮短了。

(a)

(b)

圖2

為了充分說明實(shí)驗(yàn)結(jié)果,筆者做了多次反復(fù)實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如下表:在訓(xùn)練誤差精度為0.002的情況下,十次試驗(yàn)中PSO—BP算法的平均迭代次數(shù)遠(yuǎn)小于BP算法,收斂時(shí)間較接近。

算法

次數(shù)BP算法PSO—BP算法

迭代次數(shù)收斂時(shí)間迭代次數(shù)收斂時(shí)間

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結(jié)論

本次試驗(yàn)中對(duì)BP算法和PSO—BP算法進(jìn)行了對(duì)比試驗(yàn),試驗(yàn)結(jié)果證明:PSO—BP算法優(yōu)于BP算法。具體表現(xiàn)在:學(xué)習(xí)算法的收斂速度有所提高;BP算法中的局部極小問題常令學(xué)習(xí)結(jié)果不滿意,PSO的全局優(yōu)化能力使問題得到解決。

參考文獻(xiàn)

[1]MartinT.Hagan,HowardB.Demuth,MarkH.Beale,著,戴葵,等譯.《神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)》.機(jī)械工業(yè)出版社,2002年9月

[2]徐麗娜編著.《神經(jīng)網(wǎng)絡(luò)控制》.電子工業(yè)出版社,2003年2月

[3]高雋編著.《人工神經(jīng)網(wǎng)絡(luò)原理及仿真實(shí)例》.機(jī)械工業(yè)出版社,2003年8月

[4]ZbigniewMichalewicz,DavidB.Fogel著,曹宏慶,李艷,董紅斌,吳志健,譯.《如何求解問題——現(xiàn)代啟發(fā)式方法》.中國水利水電出版社,2003年2月

[5]陽明盛,熊西文,林建華,編著.《MATLAB基礎(chǔ)及數(shù)學(xué)軟件》.大連理工大學(xué)出版社,2003年8月

[6]TomM.Mitchell,著,曾華軍,張銀奎等譯.《機(jī)器學(xué)習(xí)》.機(jī)械工業(yè)出版社,2003年1月