薛明,韋波,楊祿,李景文,姜建武
(1.桂林理工大學 廣西空間信息與測繪重點實驗室,廣西 桂林 541004;2.桂林理工大學 測繪地理信息學院,廣西 桂林 541004)
在改善遙感影像分類效果的研究中,BP神經網絡算法被越來越廣泛地運用到不同類型影像的分類中[1],但與此同時,BP神經網絡也存在著容易陷入局部極值、收斂速度慢等缺點[2]。因此,在使用BP神經網絡進行遙感影像分類的研究過程中,提出了大量改進BP神經網絡的方法。這些改進的方法可以分為2類:第一類是對BP神經網絡自身的網絡結構或超參數進行改進;第二類則是采用其他方法,如數學統計、模糊數學、智能尋優算法等,結合BP神經網絡,用于影像分類以達到改善影像的分類效果、提高網絡執行效率的目的[3]。
在第一類方法中,王崇倡[4]在BP算法中采用添加動量自適應學習速率的方法加快了BP神經網絡的訓練速度。可華明[5]采用量化共軛梯度的方法,對BP神經網絡的標準最速梯度下降法進行改進,網絡的收斂速度得到了提高,并將其應用到了Landsat-7 ETM+影像數據的高原山地地區土地覆蓋分類。這些方法對BP神經網絡自身的網絡結構或超參數進行了改進,雖然能加快神經網絡的訓練速度,但仍存在BP網絡易陷入局部極值的問題。
在第二類方法中,Benediktsson等[6]提出了將統計方法和神經網絡模型2種方法融合的多源遙感影像分類方法。Atkinson等[7]使用人工神經網絡對多源數據進行分類時,采用模糊數學的方法改進了神經網絡模型。駱成鳳[8]使用遺傳算法(genetic algorithm,GA)優化BP神經網絡(GA-BP),使用GA在神經網絡所有權閾值解空間中,迭代搜索出全局最優的值,然后通過使用梯度下降算法搜索局部最優權值。童小華等[9]提出了變長實數編碼的遺傳算法,將其運用到BP神經網絡權閾值的優化中,有效提高了遺傳算法的全局搜索能力。這些方法在一定程度上加強了BP神經網絡的全局搜索能力,提高了分類精度,但如何更好避免BP神經網絡易陷入局部極值和網絡處理時間過長等問題,依然是這類方法需要解決的問題。
基于以上分析,且考慮到遺傳算法是一種自適應的全局尋優算法[10],而粒子群算法(particle swarm optimization,PSO)是一種具有較快收斂速度的算法[11],本文提出了一種遺傳算法結合粒子群算法對BP神經網絡進行優化(GA-PSO-BP)的遙感影像分類方法,并應用于Landsat-8和GF-2遙感影像分類,同時將分類結果與最大似然法(maximum likelihood method,ML)、支持向量機(support vector machine,SVM)、傳統BP、GA優化BP(GA-BP)、PSO優化BP(PSO-BP)和AlexNet卷積神經網絡分類結果相比較,以驗證提出方法的可行性和有效性。
Landsat-8衛星于2013年2月11日由NASA成功發射。Landsat計劃有著40年的輝煌歷史,Landsat-8衛星的發射也為Landsat計劃注入了新鮮血液[12]。本次實驗使用的Landsat-8遙感影像數據,空間分辨率為30 m,其中,由432波段合成的真彩色圖像,較接近地物真實色彩,色調灰暗,圖像平淡,如圖1所示。為了能夠取得更好的遙感影像分類效果,選取543波段進行組合得到標準假彩色圖像。假彩色圖像地物之間的色彩差異更加明顯,有利于對林地、湖泊和河流等地物進行識別與分類。因此,將543波段組合而成的標準假彩色圖像作為實驗的準備數據,該數據圖像如圖2所示。

圖1 真彩色影像(432波段)

圖2 標準假彩色影像(543波段)
GF-2衛星是我國自主研發的民用光學遙感衛星,于2014年8月19日發射,搭載的全色相機分辨率為1 m,多光譜相機分辨率為4 m。GF-2衛星于2015年3月6日正式投入使用,主要面向用戶有自然資源部、住房和城鄉建設部、交通運輸部和國家林業局等部門,它的成功運作使我國的衛星綜合觀測技能達到了國際先進水平。本次選取GF-2遙感影像作為實驗數據,其空間分辨率為4 m,影像數據如圖3所示。

圖3 GF-2遙感影像
BP神經網絡是一種網絡層數在3層或3層以上的前饋神經網絡。誤差反向傳播算法是BP神經網絡的支持算法,通常叫作BP算法。BP算法主要體現了梯度下降的思想,運用隨機梯度下降技術,使網絡的實際輸出值和正確輸出值的誤差達到最小。
BP神經網絡算法由2個部分組成,分別為輸入數據的正向傳播部分和誤差的反向傳播部分。正向傳播為輸入的數據按照輸入到輸出方向傳輸,并計算輸出值與正確值之間的誤差;而反向傳播部分則依據正向傳播得到的誤差,從輸出到輸入的方向調整網絡的權閾值[13]。在BP神經網絡的輸入層和輸出層之間,可以設置一層或者一層以上的隱藏層。這些隱藏層雖然不能直接與外界聯系,但它們的屬性信息的變化能影響整個神經網絡的輸出結果,每一層隱藏層的節點數可以有若干個。最簡單的結構為3層BP神經網絡,常用來解決較為簡單的分類問題,如圖4所示。

圖4 3層BP神經網絡結構
遺傳算法是一種具有全局搜索能力的迭代優化算法,它主要從生物界的物種進化法則得到啟發,是一種效仿了生物圈“物競天擇,適者生存”的智能算法[14]。遺傳算法將所要解決問題的解空間參數,轉碼為生物遺傳學上的染色體,通過迭代的方法將染色體進行選擇、遺傳、交叉和變異操作,通過適應度函數評價新種群中染色體的好壞,最終進化篩選出最優染色體。在得到最優染色體后,通過對其進行解碼操作,恢復為問題解空間的參數形式,進而對問題進行求解。
PSO優化算法首先是初始化隨機產生一群基于所要求解具體問題的解空間范圍內的粒子。每個粒子對應著可行解空間的一組解,通常使用適應度值、位置和速度來表示粒子的屬性特征[15]。
在每一次粒子群的迭代更新中,粒子的速度和位置通過式(1)、式(2)進行更新[16]。
Vi d(k+1)=ωVi d(k)+c1r1(Pi d(k)-Xi d(k))+
c2r2(Pg d(k)-Xi d(k))
(1)
Xi d(k+1)=Xi d(k)+Vi d(k+1)
(2)
式中:ω表示慣性權重用常數;i=[1,n],d=[1,D],其中,n和D為整數,n為粒子的數量,D為粒子的搜素維度;Vid(k)表示當前粒子的運動速度;k為當前迭代次數;Pid為第i個粒子迄今為止搜索到的最優位置;Pgd為整個粒子群搜索到的最優位置;Xid(k)表示當前粒子的運動位置;c1與c2表示加速度因子,通常是取正值的常數;r1與r2為大小在0到1之間的隨機常數。由于粒子具有盲目搜索性,通常會設定區間[-Xmax,Xmax]和[-Vmax,Vmax]分別限制粒子運動的位置和速度。算法的具體流程如圖5所示。

圖5 粒子群算法基本流程圖
遺傳算法的優點主要體現在它的全局優化性,這種算法具有較強的全局搜索能力。然而,遺傳算法在進行迭代過程時,一旦種群的信息進行了更新,上一代的信息就會丟失[17],在種群迭代更新中并不會將個體的信息進行保存。粒子群算法相對遺傳算法,其算法結構更為簡單,它能加快網絡參數的收斂速度,并且在每一次迭代過程中保存個體極值和群體極值,具有記錄每一代新粒子信息的特性,但粒子群優化算法的缺點是易陷入局部最優解。本文將以上2種智能尋優算法相結合,使2種算法實現優勢互補。以粒子群算法為主,遺傳算法為輔,在粒子群算法對所要解決問題的解空間進行迭代尋優的同時,將粒子群中的粒子個體轉化為遺傳算法的染色體,并將遺傳算法的迭代遺傳操作復制、交叉和變異引入到種群里所有染色體的尋優過程中,所得到的GA-PSO-BP算法同時具備了遺傳算法的全局收斂和粒子群算法收斂速度快的優點。GA-PSO-BP算法流程如圖6所示。

圖6 GA-PSO-BP算法基本流程圖
具體實現步驟如下。
1)對種群進行初始化。用pop表示種群,即所有待求解的樣本集合,sizepop為種群規模,種群pop中的每個粒子包含了BP神經網絡所要優化的全部參數集合,GA-PSO-BP算法進行尋優過程中的初始化參數就是神經網絡的權閾值參數,maxgen為該算法迭代的最大次數。
2)使用粒子群算法對種群pop進行初始尋優,更新粒子的位置和速度。將BP神經網絡算法輸出的訓練樣本仿真誤差范數作為GA-PSO-BP算法中粒子好壞的評價,訓練樣本仿真誤差的范數與粒子的適應度值成反比。
3)在每一代種群的粒子更新后,根據適應度由大到小將它們平均分成3份,分別用SelCh1、SelCh2和SelCh3表示,對3份子種群引入遺傳算法的遺傳操作。由于適應度大小排列為SelCh1>SelCh2>SelCh3,因此對子種群SelCh1直接執行復制操作;子種群SelCh2的粒子隨機兩兩配對執行交叉操作,交叉概率為px;適應度最小的子種群SelCh3執行變異操作,變異概率為pm。
4)重新計算經遺傳算法操作后得到的新粒子的適應度大小,對個體和群體的極值進行更新。
5)迭代循環上述步驟2)~步驟4),當適應度函數滿足神經網絡事先設置的收斂精度δ或迭代次數達到GA-PSO-BP算法的maxgen,停止迭代。
將通過GA-PSO-BP算法迭代尋優得到的最優權閾值參數直接賦給BP神經網絡,作為初始權閾值參數對網絡進行訓練,把遙感影像數據直接輸入到BP神經網絡進行仿真測試,就能輸出網絡仿真預測結果。
采用提出的GA-PSO-BP遙感影像分類方法對圖2和圖3的遙感影像進行分類。同時,為了比較結果,還進行了最大似然法、支持向量機、傳統BP、GA-BP、PSO-BP、AlexNet卷積神經網絡的影像分類實驗。
本文所采用的BP神經網絡拓撲結構為3-13-3,主要是因為對于一般的模式識別問題,3層網絡就可以很好地解決問題。神經網絡包含了3個輸入節點,主要取決于彩色遙感影像的紅(R)、綠(G)、藍(B)3個顏色通道,包含1個隱藏層和3個輸出節點,隱藏層包括13個神經元節點,主要是根據配湊法和先驗公式確定。采用彈性梯度下降算法trainrp作為BP神經網絡的全局訓練函數;S型正切函數tansig和S型對數函數logsig分別作為隱藏層神經元和輸出層至隱藏層的傳遞函數;epochs表示網絡的最大訓練次數,設置為1 000;網絡訓練的精度目標goal設置為0.001;設置梯度下降法的學習率lr=0.1。
在MATLAB中讀入待分類的遙感影像數據,對彩色影像進行降維處理,并將灰度值進行歸一化處理。將數據輸入傳統BP、GA-BP、PSO-BP、AlexNet卷積神經網絡和GA-PSO-BP中進行訓練預測,同時使用最大似然法和支持向量機對相同的影像數據進行分類,進而得到本文方法與對比方法的影像分類圖(圖7、圖8)。

圖7 7種方法的Landsat-8影像分類圖

圖8 7種方法的GF-2影像分類圖
為驗證影像分類的精度,以及對以上7種分類方法的2種遙感影像分類結果進行比較,采用混淆矩陣(confusion matrix)對分類結果進行定量分析。依據真實遙感影像通過目視解譯的方法提取驗證樣本,并建立混淆矩陣。混淆矩陣的計算在ArcGIS平臺上完成。首先,在原始的Landsat-8標準假彩色影像邊界范圍內生成500個隨機點,并對影像上的每個隨機點進行賦值。實驗中Landsat-8遙感影像地物共分為6個類,其生成隨機點的數量比值為94(河流)∶192(林地)∶44(湖泊)∶75(房屋)∶32(道路)∶63(未利用地)。然后,確定檢驗樣本點對應的分類結果的柵格像元值,并建立用于計算分類精度的混淆矩陣。表1為采用GA-PSO-BP分類建立的Landsat-8影像混淆矩陣。最后,采用相同的計算方法對GF-2遙感影像的分類結果建立混淆矩陣(表2)。

表1 Landsat-8影像GA-PSO-BP分類誤差矩陣

表2 GF-2影像GA-PSO-BP分類誤差矩陣
在Landsat-8和GF-2遙感影像分類實驗中,使用7種不同的方法對相同原始影像數據進行分類,得到了7種不同的分類誤差矩陣。因此,由不同的分類誤差矩陣可以進一步計算出各種分類方法的地物單一類別分類精度、總體分類精度(overall classification accuracy,OA)以及Kappa系數,并利用單一類別分類精度、總體分類精度和Kappa系數來衡量遙感影像的整體分類效果,以此作為7種分類方法分類效果的評價指標。Landsat-8和GF-2影像分類得到的7種分類方法的分類精度評估對比,見表3和表4。

表3 Landsat-8影像7種分類方法精度評估對比表

表4 GF-2影像7種分類方法精度評估對比表
從表3 Landsat-8影像分類精度對比表可看出,在單一類別分類精度上,由于道路與房屋容易混淆,所以7種分類方法在道路分類中精度偏低,其他地物分類精度從最大似然法(ML)到GA-PSO-BP分類方法均有提高,且GA-PSO-BP分類與AlexNet卷積神經網絡相近。在總體分類效果上,7種分類方法的總體分類精度都在81%以上,而Kappa系數也由最大似然法的0.767 8上升到GA-PSO-BP方法的0.860 9。從表4 GF-2影像分類精度對比表可看出,無論在單一類別分類精度、總體分類精度還是Kappa系數上,GA-PSO-BP方法相比于除AlexNet卷積神經網絡分類方法外的其他對比方法均有提升,與AlexNet卷積神經網絡分類接近。由此說明,使用GA-PSO-BP方法進行中、高分辨率遙感影像分類,相比于ML、SVM、傳統BP、GA-BP和PSO-BP分類,能夠在一定程度上提高分類精度,改善分類效果,而與AlexNet卷積神經網絡的分類效果較為接近,說明BP神經網絡經GA-PSO算法優化后,能夠使遙感影像分類的精度得到有效的提高。
遺傳算法具有較強的全局搜索能力,而粒子群算法能加快網絡參數的收斂速度,通過將GA算法與PSO算法相結合,將經過GA-PSO算法迭代尋優得到的初始權閾值直接賦給BP神經網絡,能夠使BP神經網絡易陷入局部極值的問題得到有效克服,同時網絡的訓練速率也能得到提升。中、高分辨率遙感影像分類實驗表明,本文提出的GA-PSO-BP遙感影像分類方法的總體分類精度和Kappa系數均優于最大似然法、支持向量機、傳統BP、GA-BP和PSO-BP分類方法,且與AlexNet卷積神經網絡較為接近,但GA-PSO-BP更簡便,更易于操作。
雖然本文提出的方法在實驗中取得了較好的分類效果,但粒子群算法的適應度函數選取、粒子群規模和加速度因子等基礎參數的確定,在很大程度上影響GA-PSO算法優化BP神經網絡的分類性能。而目前沒有形成確切的依據來確定這部分控制參數,下一步將重點研究參數的設置方法,以發揮智能尋優算法的最大作用。