摘 要:針對目前采用BP神經(jīng)網(wǎng)絡(luò)模型進(jìn)行遙感影像分類時(shí)存在的對初始權(quán)閾值敏感、易陷入局部極值和收斂速度慢的問題,為了提高BP模型遙感影像分類精度,將粒子群算法引入到BP網(wǎng)絡(luò)模型參數(shù)選擇中。首先運(yùn)用粒子群算法對BP模型權(quán)閾值參數(shù)進(jìn)行初始尋優(yōu),再用改進(jìn)BP算法對優(yōu)化的網(wǎng)絡(luò)模型權(quán)閾值進(jìn)一步精確優(yōu)化,隨后建立基于粒子群算法的BP網(wǎng)絡(luò)分類模型,并采用MATLAB語言實(shí)現(xiàn)了該算法,將其應(yīng)用到遙感影像數(shù)據(jù)分類研究中。仿真結(jié)果表明,新模型有效提高了遙感影像分類準(zhǔn)確性,為遙感影像分類提出了一種新的方法,具有廣泛研究價(jià)值。
關(guān)鍵詞:遙感;影像分類;BP神經(jīng)網(wǎng)絡(luò);粒子群算法
1 概述
自20世紀(jì)70年代以來,遙感技術(shù)伴隨著地理信息處理技術(shù)的飛速發(fā)展也得到了快速發(fā)展。遙感影像分類技術(shù)作為遙感技術(shù)中的研究重點(diǎn),更加得到了相關(guān)學(xué)者的關(guān)注。近年來,人工神經(jīng)網(wǎng)絡(luò)作為一種新型的信息處理技術(shù),已被廣泛應(yīng)用于遙感圖像分類,其中應(yīng)用最多最成功的當(dāng)數(shù)BP神經(jīng)網(wǎng)絡(luò)[1-3]。但是,BP神經(jīng)網(wǎng)絡(luò)由于其初始權(quán)閾值的不確定性,使得BP神經(jīng)網(wǎng)絡(luò)存在著訓(xùn)練速度慢,易陷入局部極小值的問題。因此,出現(xiàn)了大量對BP神經(jīng)網(wǎng)絡(luò)的改進(jìn)方法。改進(jìn)方法分為兩類,第一類是對BP神經(jīng)網(wǎng)絡(luò)算法的改進(jìn),如附加動(dòng)量法、帶有動(dòng)量項(xiàng)自適應(yīng)學(xué)習(xí)率法以及Levenberg-Marquard算法等[4-6]。第二類是引入新的智能算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)權(quán)閾值,然后結(jié)合改進(jìn)BP算法改進(jìn)BP神經(jīng)網(wǎng)絡(luò)運(yùn)行效果,提高BP模型運(yùn)行效率[7,8]。本文主要研究基于粒子群神經(jīng)網(wǎng)絡(luò)(PSO-BP)的遙感影像分類模型,并采用MATLAB語言實(shí)現(xiàn)了該模型,實(shí)驗(yàn)結(jié)果表明,該改進(jìn)模型不僅具有更好地分類穩(wěn)定性,同時(shí)也具有比BP神經(jīng)網(wǎng)絡(luò)模型更高的分類精度。
2 遙感影像分類模型的搭建
2.1 核心思想
遙感影像分類模型搭建的理論基礎(chǔ)是粒子群算法與BP神經(jīng)網(wǎng)絡(luò)的有效結(jié)合,相比遺傳算法,粒子群算法保留了種群基礎(chǔ)上的全局搜索策略,其采用的速度——位移進(jìn)化方式操作簡單,避免了復(fù)雜的選擇交叉變異操作。它特有的記憶能力使其可以根據(jù)當(dāng)前追蹤的搜索情況,動(dòng)態(tài)調(diào)整搜索策略,尋找到最優(yōu)解。因此,本文在構(gòu)建基于BP神經(jīng)網(wǎng)絡(luò)的遙感影像分類模型的基礎(chǔ)上,將粒子群算法引入到BP神經(jīng)網(wǎng)絡(luò)模型參數(shù)的優(yōu)化中,首先采用粒子群算法縮小BP模型權(quán)閾值的搜索范圍,然后再采用改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)算法進(jìn)行二次搜索,確定權(quán)閾值,得到模型最終權(quán)閾值,形成最終模型。這樣構(gòu)造的模型既可以避免由于權(quán)閾值的隨機(jī)性造成的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的穩(wěn)定性差、可靠性低與易陷入局部極小的問題,同時(shí)又可以提高模型的分類精度。
2.2 基于MATLAB的模型實(shí)現(xiàn)步驟
Step1——基本參數(shù)設(shè)定。取粒子個(gè)數(shù)N=30。對于搜索空間維度D,輸入層indim=3,隱層hiddennum=11,輸出層outdim=3,則D=(indim+1)*hiddennum+(hiddennum+1)*outdim=80。本文取每個(gè)微粒的加速項(xiàng)權(quán)重學(xué)習(xí)因子c1=c2=2。慣性因子W的取值直接影響粒子局部與全局搜索能力,為保持粒子對種群搜索空間的拓展能力,采用線性遞減權(quán)值策略,它能使W由wmax隨迭代次數(shù)線性遞減到wmin。
for iter=1:itmax
W(iter)=wmax-((wmax-wmin)/itmax)*iter;
end
式中,itmax=100為最大進(jìn)化代數(shù),iter為當(dāng)前進(jìn)化代數(shù)。wmax=0.9為初始慣性權(quán)值,wmin=0.4為迭代至最大代數(shù)時(shí)的慣性權(quán)值。
Step2——適應(yīng)度函數(shù)的編寫。PSO-BP神經(jīng)網(wǎng)絡(luò)模型算法運(yùn)行的目的是只要算法迭代停止時(shí)去噪后圖像與原始圖像的誤差最小,就說明此時(shí)的圖像去噪效果最好,此時(shí)粒子對應(yīng)位置即為所求最優(yōu)值。因此本模型的適應(yīng)度函數(shù)代碼如下:
function fitness=fitcal(pm,net,indim,hiddennum,outdim,D,Ptrain,Ttrain)
[x,y,z]=size(pm);
for i=1:x
for j=1:hiddennum
x2iw(j,:)=pm(i,((j-1)*indim+1):j*indim,z);
end
for k=1:outdim
x2lw(k,:)=pm(i,(indim*hiddennum+1):(indim*hiddennum+hiddennum),z);
end
x2b=pm(i,((indim+1)*hiddennum+1):D,z);x2b1=x2b(1:hiddennum)';
x2b2=x2b(hiddennum+1:hiddennum+outdim)';
net.IW{1,1}=x2iw;net.LW{2,1}=x2lw;
net.B{1}=x2b1;net.B{2}=x2b2;
error=sim(net,Ptrain)-Ttrain;
fitness(i,1,z)=mse(error);
end
Step3——速度與位置初始化。由于BP模型權(quán)閾值參數(shù)一般取[-1,1]之間的隨機(jī)數(shù),因此群體中每個(gè)粒子對應(yīng)的初始位置參數(shù)X和速度參數(shù)V均取為[-1,1]之間的隨機(jī)數(shù)。主要代碼如下:
X=-0.5+1*rand(N,D,1);
V=-0.5+1*rand(N,D,1);
Step4——速度位置更新。利用適應(yīng)度函數(shù)計(jì)算個(gè)體適應(yīng)度值,進(jìn)行局部最優(yōu)和全局最優(yōu)位置更新。其主要代碼如下:
V(:,:,j+1)=W(j)*V(:,:,j)+c1*rand*(pbest(:,:,j)-X(:,:,j))+c2*rand*(G(:,:,j)-X(:,:,j))+rand*(G(:,:,1)- pbest(:,:,1));
for ni=1:N
for di=1:D
if V(ni,di,j+1)>vmax
V(ni,di,j+1)=vmax;
elseif V(ni,di,j+1)<-vmax
V(ni,di,j+1)=-vmax;
else
V(ni,di,j+1)=V(ni,di,j+1);
end
end
end
X(:,:,j+1)=X(:,:,j)+V(:,:,j+1);
Step5——解碼。當(dāng)算法按照預(yù)設(shè)參數(shù)結(jié)束后,將參數(shù)解碼,并賦給BP神經(jīng)網(wǎng)絡(luò)模型。并其主要代碼如下:
for t=1:hiddennum
x2iw(t,:)=gbest(1,((t-1)*indim+1):t*indim,j);
end
for r=1:outdim
x2lw(r,:)=gbest(1,(indim*hiddennum+1):(indim*hiddennum+hiddennum),j);
end
x2b=gbest(1,((indim+1)*hiddennum+1):D,j);
x2b1=x2b(1:hiddennum)';
x2b2=x2b(hiddennum+1:hiddennum+outdim)';
net=newff(Pn_train,Tn_train,[hiddennum outdim],{'tansig','purelin'},'trainlm');
net.IW{1,1}=x2iw;net.LW{2,1}=x2lw;
net.b{1}=x2b1;net.b{2}=x2b2;
3 遙感影像分類仿真實(shí)驗(yàn)
3.1 實(shí)驗(yàn)數(shù)據(jù)處理
由于采集到的遙感影像數(shù)據(jù)不是模型可以直接利用的數(shù)據(jù)類型,所以在將遙感影像數(shù)據(jù)輸入模型之前先將其轉(zhuǎn)換為R,G,B三波段數(shù)據(jù),再將三波段數(shù)據(jù)轉(zhuǎn)換為3行,從而形成輸入矩陣。再自行定義目標(biāo)向量,并將其轉(zhuǎn)換為與輸入向量結(jié)構(gòu)相同的向量,構(gòu)成了神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練樣本對。本文采用LANDSAT衛(wèi)星崇明島遙感影像圖片作為實(shí)驗(yàn)數(shù)據(jù),圖1為實(shí)驗(yàn)中用到的圖片,圖2為轉(zhuǎn)換后計(jì)算機(jī)中存儲(chǔ)的矩陣數(shù)據(jù)。
3.2 仿真實(shí)驗(yàn)
表1給出了基于不同算法的分類結(jié)果對比,從表中可以看,由于對BP模型的權(quán)閾值進(jìn)行了2次優(yōu)化,基于PSO-trainlm BP算法的遙感影像分類模型具有更高的分類精度,且分類模型的穩(wěn)定性也要好于基本BP模型與改進(jìn)BP模型,圖3給出了某次分類的分類結(jié)果圖,從分類后的圖可以看出,如果有清晰的遙感影響圖片及采樣點(diǎn)精確的話,可以得到很高的分類精度。
4 結(jié)束語
本文主要研究了基于PSO-BP算法的神經(jīng)網(wǎng)絡(luò)遙感影像分類模型,并采用MATLAB語言進(jìn)行了仿真,在研究中發(fā)現(xiàn)在進(jìn)行遙感影像分類時(shí)采用梯度下降BP算法的模型存在訓(xùn)練速度慢,對初始權(quán)閾值參數(shù)敏感且易陷入局部極小值的問題。針對這個(gè)問題采用粒子群算法及改進(jìn)BP算法對權(quán)閾值進(jìn)行兩次優(yōu)化,將優(yōu)化后的權(quán)閾值作為分類模型的最終參數(shù)。實(shí)驗(yàn)結(jié)果表明這種設(shè)想是成功的,將粒子群算法引入到基于改進(jìn)算法的BP遙感影像分類模型后,不僅可以提高分類模型分類精度,同時(shí)也可以提高模型運(yùn)行的穩(wěn)定性。
參考文獻(xiàn)
[1]徐磊,林劍,李艷華.基于BP人工神經(jīng)網(wǎng)絡(luò)的遙感影像分類[J].地理空間信息,2012,10(4):83-86.
[2]王睿,韋春桃,馬云棟.基于BP神經(jīng)網(wǎng)絡(luò)的Landsat影像去云方法[J].桂林理工大學(xué)學(xué)報(bào),2015,35(3):535-539.
[3]麥格,童新華.基于BP神經(jīng)網(wǎng)絡(luò)的石漠化遙感影像分類方法的探討[J].廣西師范學(xué)院學(xué)報(bào):自然科學(xué)版,2013,30(1):70-77.
[4]馬麗霞,逄超,陳曉輝.BP神經(jīng)網(wǎng)絡(luò)的改進(jìn)算法及在大壩變形分析與預(yù)報(bào)中的應(yīng)用[J].吉林建筑大學(xué)學(xué)報(bào),2016,33(4).
[5]王軍.改進(jìn)BP網(wǎng)絡(luò)在瀝青路面構(gòu)造深度預(yù)測中的應(yīng)用[J].廈門理工學(xué)院學(xué)報(bào),2016,24(3).
[6]蔚治國.基于改進(jìn)BP神經(jīng)網(wǎng)絡(luò)的樣本分類方法[J].自動(dòng)化與儀器儀表,2016(6).
[7]游丹丹,陳福集.基于改進(jìn)粒子群和BP神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)輿情預(yù)測研究[J].情報(bào)雜志,2016,35(8).
[8]田亞鵬,鞠斌山.基于遺傳算法改進(jìn)BP神經(jīng)網(wǎng)絡(luò)的頁巖氣產(chǎn)量遞減預(yù)測模型[J].中國科技論文,2016(15).
作者簡介:王海軍(1982-),男,漢族,內(nèi)蒙古鄂爾多斯市人,鄂爾多斯應(yīng)用技術(shù)學(xué)院教師,高級工程師,工學(xué)碩士,研究方向:人工智能算法應(yīng)用。