張宏亮,顧文燦,李增,魏斌,黃雷
(空軍工程大學(xué)航空航天工程學(xué)院,西安710038)
混合蛙跳算法神經(jīng)網(wǎng)絡(luò)在諧波檢測中的應(yīng)用
張宏亮,顧文燦,李增,魏斌,黃雷
(空軍工程大學(xué)航空航天工程學(xué)院,西安710038)
BP神經(jīng)網(wǎng)絡(luò);混合蛙跳算法;諧波檢測
神經(jīng)網(wǎng)絡(luò)檢測算法因其具有計算量小、檢測精度高、實(shí)時性好、魯棒性高的優(yōu)點(diǎn)被廣泛應(yīng)用于電力系統(tǒng)的諧波檢測。其中又以BP神經(jīng)網(wǎng)應(yīng)用最為廣泛。但被廣泛采用的BP神經(jīng)網(wǎng)絡(luò)存在諸如收斂時間長、易陷入局部最小值、對非線性問題優(yōu)化求解困難的缺點(diǎn)。為解決BP神經(jīng)網(wǎng)絡(luò)上述缺點(diǎn),文獻(xiàn)[7]提出用遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值設(shè)置以防止神經(jīng)網(wǎng)絡(luò)陷入局部最小值,但遺傳算法調(diào)節(jié)參數(shù)多、收斂速度慢給實(shí)際應(yīng)用帶來不便。受文獻(xiàn)[2]啟發(fā),本文將一種新的智能化算法——混合蛙跳算法(SFLA)與神經(jīng)網(wǎng)絡(luò)相結(jié)合,提出了一種混合蛙跳算法神經(jīng)網(wǎng)絡(luò)(SFLA-ANN),將其應(yīng)用到電力系統(tǒng)的諧波檢測中。為解決蛙跳算法容易早熟的問題,進(jìn)一步提出了一種變跳躍步長的改進(jìn)的混合蛙跳算法神經(jīng)網(wǎng)絡(luò)。通過仿真發(fā)現(xiàn)經(jīng)改進(jìn)的混合蛙跳算法神經(jīng)網(wǎng)絡(luò)相比原始的BP神經(jīng)網(wǎng)絡(luò)在收斂速度、檢測精度方面有顯著提升。
1.1電力系統(tǒng)諧波的特點(diǎn)
一般電力系統(tǒng)中所含諧波成分主要是低次諧波且大都是奇次,所占比重不大,次數(shù)越高幅值越小。電力系統(tǒng)中非正弦周期電流的傅里葉級數(shù)如下:
由式(4)-式(5)可看出各次諧波的幅值和相位是An和Bn的非線性函數(shù),而神經(jīng)網(wǎng)絡(luò)對非線性函數(shù)具有良好的逼近的能力,因而用神經(jīng)網(wǎng)絡(luò)檢測諧波的思路是可行的。
1.2用于諧波檢測的ANN網(wǎng)絡(luò)構(gòu)建
本文所采用的神經(jīng)網(wǎng)絡(luò)是在BP神經(jīng)網(wǎng)絡(luò)基礎(chǔ)上改進(jìn)而來的,如圖1所示。
圖1 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
該網(wǎng)絡(luò)結(jié)構(gòu)的特點(diǎn)是各次諧波的正弦和余弦分量都有獨(dú)立的隱含層,這種結(jié)構(gòu)的好處是所測得的各次諧波的數(shù)據(jù)相互間不會產(chǎn)生干擾,而且網(wǎng)絡(luò)的權(quán)值和閾值數(shù)目大大減少,減少了網(wǎng)絡(luò)的記憶負(fù)擔(dān),加快了計算速度。當(dāng)隱含層的數(shù)目足夠多時,檢測精度會非常高,但計算量太大將導(dǎo)致訓(xùn)練時間和檢測時間會很長,給實(shí)際應(yīng)用帶來困難。為使網(wǎng)絡(luò)訓(xùn)練速度更快,本文所采用的神經(jīng)網(wǎng)絡(luò)只有一個隱含層。
BP神經(jīng)網(wǎng)絡(luò)中的權(quán)值和閾值搜索方法是梯度下降法,雖然較為簡單但它易陷入局部極小值,而且在輸入維數(shù)較大時易出現(xiàn)“維數(shù)災(zāi)”,進(jìn)而導(dǎo)致收斂速度變慢?;旌贤芴惴ㄊ且环N在模因算法和粒子群算法基礎(chǔ)上演變而來的新型群體智能優(yōu)化算法,其良好的全局優(yōu)化性可以有效地對解空間搜索,而且其固有的并行性能夠較快的尋找到最優(yōu)解[2]。因此本文提出將BP神經(jīng)網(wǎng)絡(luò)中的搜索算法用混合蛙跳算法代替的想法?;净旌贤芴惴ú襟E這里不作贅述請參考文獻(xiàn)[8]。
2.1改進(jìn)的混合蛙跳算法(MSFLA)
針對混合蛙跳算法在求解最優(yōu)化問題時存在早熟的問題,廣大科研工作者提出了許多改進(jìn)的方法。目前混合蛙跳算法改進(jìn)的研究主要集中在更新策略方面,對初始種群的設(shè)置研究處于起步階段,初始種群的設(shè)置好壞對算法的搜索性能有很大影響,基本蛙跳算法的初始種群是隨機(jī)設(shè)定的,算法在搜索時帶有很大的偶然性,這會導(dǎo)致算法的搜索效率不高,本文從初始種群的設(shè)置和更新策略兩方面入手對混合蛙跳算法進(jìn)行改進(jìn)。
(1)初始種群設(shè)置
對于群體智能優(yōu)化算法而言,高質(zhì)量的初始解可以使得算法迅速搜索到最優(yōu)解,節(jié)省搜索時間,提高算法的精度。文獻(xiàn)[6]提出用隨機(jī)均勻設(shè)計的方法優(yōu)化遺傳算法,取得了良好的效果,文獻(xiàn)[9]采用混沌擾動的方法初始種群的方法也取得了很好的效果。本文針對混合蛙跳算法的初始解總是隨機(jī)產(chǎn)生的具有較大的盲目性,引入對立學(xué)習(xí)的策略提高初始蛙群的質(zhì)量。對立學(xué)習(xí)的基本思想是:尋找最優(yōu)解時,既要考慮當(dāng)前的解,又要考慮其對立點(diǎn)的解。
對立點(diǎn)的定義如下:假設(shè)D(e1,e2,…,eZ)是Z維空間中的一個點(diǎn),那么該點(diǎn)的對立點(diǎn)為D`(e1`,e2`,…,eZ`)。
其中,ai和bi為ei的上界和下界,將它引入混合蛙跳算法的步驟為:隨機(jī)產(chǎn)生N只青蛙個體,根據(jù)式(6)再計算這N個蛙的對立青蛙,計算這2N個蛙的適應(yīng)度值,然后根據(jù)這2N個蛙的適應(yīng)度值大小從中選擇N只蛙作為新的初始蛙群。
(2)改進(jìn)的更新策略
①為解決算法出現(xiàn)過早收斂,檢測精度降低的問題,本文的改進(jìn)策略是在更新完所有子種群內(nèi)的最差蛙后計算每個蛙適應(yīng)度值,統(tǒng)計上次迭代(Fi-1)和本次更新迭代(Fi)中適應(yīng)度值相等的蛙的數(shù)目,若相等蛙的數(shù)目超過所設(shè)定的值(Max)即if((Fi-1==Fi)>Max)則對所有子種群內(nèi)的最差蛙隨機(jī)更新,如此便可跳出早熟使算法向著更好解搜索逼近。
②在分析基本的混合蛙跳算法的跳躍距離時發(fā)現(xiàn),蛙的跳躍距離中含有隨機(jī)數(shù),若隨機(jī)數(shù)過大這會導(dǎo)致蛙在搜索時可能會跳過最優(yōu)值收斂至其他值,若隨機(jī)數(shù)過小算法的收斂速度變慢降低算法的收斂效率。為進(jìn)一步擴(kuò)大算法的尋優(yōu)能力,本文的改進(jìn)策略:采用變跳躍步長的方法,將式(6)代替參考文獻(xiàn)[8](基本混合蛙跳算法)中的式(2),變跳躍步長公式如下:
則最差蛙的更新公式為:
其中:μ是變步長因子,gmax是設(shè)定的每個分組的最大進(jìn)化代數(shù),gi是第i個分組當(dāng)前進(jìn)化代數(shù)。β≤α∈(0,1],通過多次實(shí)驗(yàn)得知當(dāng)α=0.8,β=0.2時算法的收斂速度最好。采用變跳躍步長的好處是算法在初期跳躍步長大,解的全局尋優(yōu)能力強(qiáng);算法后期跳躍步長小,解的局部尋優(yōu)能力強(qiáng)。
2.2改進(jìn)的混合蛙跳算法神經(jīng)網(wǎng)絡(luò)模型(MS-FLA-ANN)
用改進(jìn)的SFLA對由神經(jīng)網(wǎng)絡(luò)的各個連接權(quán)值以及相應(yīng)的閾值組成的D維空間進(jìn)行優(yōu)化,提高神經(jīng)網(wǎng)絡(luò)的收斂速度和學(xué)習(xí)能力。MSFLA-ANN的運(yùn)行步驟如下:
(1)按本文提出的方法初始D維的蛙群空間,每個蛙由神經(jīng)網(wǎng)絡(luò)的隱含層和輸出層的連接權(quán)值以及閾值組成,為減少計算,量網(wǎng)絡(luò)中所有閾值恒為零。
(2)計算每個蛙的適應(yīng)度值,適應(yīng)度函數(shù)定義如下:
Fitness=(k.i)=1/((E(k,i)+1)),k=1,2…,Ne(12)
其中:E(k,i)為第i個蛙在第k次迭代后的神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)誤差,F(xiàn)itness(k,i)是第i個蛙在第k次迭代后的適應(yīng)度值,n是訓(xùn)練樣本的數(shù)目,ym,i是第i個蛙的第m個樣本輸入的網(wǎng)絡(luò)目標(biāo)輸出值是第i個個體在第k次迭代時的第m個樣本輸入的網(wǎng)絡(luò)實(shí)際輸出值,Ne為每個分組的最大進(jìn)化次數(shù)。
(3)將F個蛙按適應(yīng)度值(即神經(jīng)網(wǎng)絡(luò)輸出的誤差)按由大到小排序并分組。
(4)對每個子種群內(nèi)的最差蛙按本文改進(jìn)的蛙跳算法更新策略更新。
(5)當(dāng)所有分組中的最差蛙都更新完畢后,計算適應(yīng)度值,若本次適應(yīng)度值相同的蛙的個數(shù)與上次迭代適應(yīng)度值相同的蛙的個數(shù)相等且大于所設(shè)定的值(Max),則隨機(jī)更新所有分組內(nèi)的最差蛙,重復(fù)(2)~(5)直至滿足算法終止條件。
算法的終止條件:(1)當(dāng)網(wǎng)絡(luò)的輸出小于給定的誤差ε時,算法終止。(2)當(dāng)算法的全局進(jìn)化大于設(shè)定的最大全局進(jìn)化代數(shù)時,算法終止。
2.3訓(xùn)練樣本的形成
電力系統(tǒng)諧波主要由奇次諧波組成且幅值隨諧波次數(shù)的增加而減小,諧波最大幅值不超過基波的50%。在構(gòu)建訓(xùn)練樣本時以3次諧波為例,設(shè)基波幅值為1,以基波幅值的10%為間隔逐漸增加,則訓(xùn)練樣本為:
其中ω0=2πf0,f0為工頻頻率。則A3和B3的目標(biāo)值為:
(-A3,B3),(A3,-B3)和(-A3,-B3)的創(chuàng)建與之類似,共計83組訓(xùn)練樣本。
按2.1-2.2所述構(gòu)建混合蛙跳算法神經(jīng)網(wǎng)絡(luò),在MATLAB 2009b環(huán)境下編寫仿真程序,為驗(yàn)證算法的性能首先對改進(jìn)的混合蛙跳算法進(jìn)行測試,算法參數(shù)設(shè)置如下:每個蛙的維數(shù)為50,子種群數(shù)目為10,每個子種群內(nèi)蛙的數(shù)目20,子種群進(jìn)化代數(shù)20,全局最大進(jìn)化代數(shù) 100。分別用 Sphere、Rastrigin、Ackley、Griewangk、Rosenbrock函數(shù)對改進(jìn)的混合蛙跳算法和基本混合蛙跳算法進(jìn)行測試。仿真結(jié)果如圖2-6,橫軸為全局進(jìn)化代數(shù),縱軸為尋優(yōu)精度的對數(shù)值。由仿真結(jié)果可以看出改進(jìn)后的混合蛙跳算法相比于基本混合蛙跳算法而言在優(yōu)化精度上和優(yōu)化速度上均有所提高。再用改進(jìn)的混合蛙跳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)。
圖2 Sphere函數(shù)進(jìn)化曲線
圖3 Rosenbrock函數(shù)進(jìn)化曲線
圖4 Rastrigin函數(shù)進(jìn)化曲線
圖5 Griewank函數(shù)進(jìn)化曲線
圖6 Ackley函數(shù)進(jìn)化曲線
神經(jīng)網(wǎng)絡(luò)訓(xùn)練時輸入為2.3所述的訓(xùn)練樣本,輸出為對應(yīng)的(A3,B3)的值。當(dāng)訓(xùn)練樣本輸入時,由于神經(jīng)網(wǎng)絡(luò)是離散輸入,因此神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù)是是在一個基波周期對輸入信號內(nèi)采樣50個點(diǎn)所得。取隱含層節(jié)點(diǎn)數(shù)50,輸出層節(jié)點(diǎn)數(shù)2,訓(xùn)練誤差設(shè)置為ε=10-3。當(dāng)神經(jīng)網(wǎng)絡(luò)訓(xùn)練完成后,用所構(gòu)造的10組檢測樣本對文獻(xiàn)[7]的所提算法、基本BP-ANN、SFLA-ANN和本文所提的MSFLA-ANN進(jìn)行對比檢測。從表1的檢測結(jié)果可以看出本文所提出的算法相比較其他三個算法而言在達(dá)到相同檢測誤差精度時所用的迭代次最小。從表2的仿真結(jié)果可以看出本文所提出的MSFLA-ANN對這10組檢測樣本在幅度和相位兩方面具有非常高的檢測精度,仿真結(jié)果表明本文所以算法行之有效,其他奇次諧波檢測方法與三次諧波的檢測方法相同,只要訓(xùn)練樣本足夠多那么所得到的檢測結(jié)果精度就會非常高。
表1 不同算法之間迭代次數(shù)
提出了一種基于混合蛙跳算法神經(jīng)網(wǎng)絡(luò)的諧波檢測方法,針對BP神經(jīng)網(wǎng)絡(luò)收斂速度慢,易陷入局部最小值等缺點(diǎn),將BP神經(jīng)網(wǎng)絡(luò)中的權(quán)值搜索方法用混合蛙跳算法代替,針對混合蛙跳算法容易早熟的問題,提出了一種變跳躍步長的混合蛙跳算法,從而得到了一種改進(jìn)的混合蛙跳算法神經(jīng)網(wǎng)絡(luò)。從仿真結(jié)果可以看出蛙跳算法神經(jīng)網(wǎng)絡(luò)具有較快的收斂速度和較好的檢測精度?;旌贤芴惴ú介L更新策略、種群規(guī)模以及其他相關(guān)參數(shù)的設(shè)置對檢測結(jié)果的有何影響是下一步的研究方向。
表2 混合蛙跳算法神經(jīng)網(wǎng)絡(luò)對測試樣本測量結(jié)果
[1]湯勝清,程小華.一種基于多層前向神經(jīng)網(wǎng)絡(luò)的諧波檢測方法[J].中國電機(jī)工程學(xué)報,2006,26(18):90-94.
[2]余華,黃程偉,張瀟丹,趙力,金斌.混合蛙跳算法神經(jīng)網(wǎng)絡(luò)及其在語音識別中的應(yīng)用[J].南京理工大學(xué)學(xué)報,2011,35(5):659-663.
[3]肖雁鴻,毛筱,羅瑞瓊等.神經(jīng)網(wǎng)絡(luò)理論在諧波檢測中的應(yīng)用[J].電工技術(shù)學(xué)報.2002,17(2):101-104.
[4]王小華,何怡剛.一種新的基于神經(jīng)網(wǎng)絡(luò)高精度電力系統(tǒng)諧波分析方法[J].電網(wǎng)技術(shù),2005,29(3):67-70.
[5]柴旭崢,習(xí)文山,關(guān)根志,等.一種高精度的電力系統(tǒng)諧波分析算法[J].中國電機(jī)工程學(xué)報,2003,23(9):67-70.
[6]李建軍,郁濱,陳武平.混合蛙跳算法的改進(jìn)與仿真[J].系統(tǒng)仿真學(xué)報,2014,26(4):755-760.
[7]侯世英,汪瑤,祝石厚.遺傳算法該進(jìn)神經(jīng)網(wǎng)絡(luò)的電力系統(tǒng)諧波檢測法[J].重慶大學(xué)學(xué)報.2008,31(5):490-494.
[8]崔文華,劉曉冰,王偉,王介生.混合蛙跳算法研究綜述[J].控制與決策.2012,27(4):481-486.
BP Neural Network;SFLA;Harmonic Measuring
Application of Shuffled Frog-Leaping Algorithm Based Neural Network in Harmonic Measuring
ZHANG Hong-liang,GU Wen-can,LI Zeng,WEI Bin,HUANG Lei
(Aeronautics and Astronautics Engineering College,Air Force Engineering University,Xi'an 710038)
1007-1423(2015)32-0015-06
10.3969/j.issn.1007-1423.2015.32.003
張宏亮(1990-),男,陜西西安人,碩士研究生,研究方向?yàn)樾盘柼幚砼c檢測
2015-10-15
2015-11-10
針對傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)用于諧波檢測時存在收斂速度慢、易陷入局部最小值的缺點(diǎn),提出用混合蛙跳算法代替BP神經(jīng)網(wǎng)絡(luò)中梯度搜索算法的混合蛙跳算法神經(jīng)網(wǎng)絡(luò),并將其用于電力系統(tǒng)諧波幅值與相位測量。根據(jù)電力系統(tǒng)所含諧波特點(diǎn),構(gòu)建諧波檢測的神經(jīng)網(wǎng)絡(luò)模型,闡述混合蛙跳算法神經(jīng)網(wǎng)絡(luò)的基本原理。以三次諧波為例,給出神經(jīng)網(wǎng)絡(luò)訓(xùn)練方法以及訓(xùn)練樣本如何構(gòu)建。仿真結(jié)果驗(yàn)證所提方法的可行性,其收斂速度、檢測精度均優(yōu)于BP神經(jīng)網(wǎng)絡(luò)。最后用訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)檢測未訓(xùn)練的樣本,實(shí)驗(yàn)結(jié)果驗(yàn)證該網(wǎng)絡(luò)具有良好的泛化能力。
According to the harmonic measuring for traditional BP neural network,compares the problems of slow convergence speed,easily falling into local minimum value.Proposes a Shuffled Frog-leaping algorithm neural network using Shuffled Frog-leaping Algorithm,instead of a Gradient Search Algorithm in BP neural network method for Harmonic amplitude and phase measurements of power of system.The neural network model is developed according to the requirements of measuring harmonic.Expounds the basic principle of Shuffled Frog-leaping Algorithm neural network.Gives the training method of SFLA neural network and how to construct the training sample in the three harmonic as an example.The simulation results verify the feasibility of the proposed method.SFLA neural network convergence speed and detection accuracy is better than the BP neural network.Uses the neural network detection trained without training samples,the result proves that the neural network has good generalization ability.