宋晗,楊煒暾,耿修瑞,趙永超
(中國科學院電子學研究所,北京 100190;中國科學院空間信息處理與應用系統(tǒng)技術重點實驗室,北京 100190;中國科學院大學,北京 100049)
高光譜圖像分類技術是高光譜遙感領域中的研究熱點之一,被廣泛應用于地表分類、農業(yè)監(jiān)測、國土資源調查等領域,在經濟發(fā)展、國防工業(yè)中發(fā)揮著重要的作用[1]。隨著機器學習研究的發(fā)展,目前已有許多基于機器學習理論的高光譜圖像分類算法,如卷積神經網絡[2]、半監(jiān)督學習[3]和自編碼器[4]等。對這類高光譜圖像分類方法而言,其分類效果非常依賴于標注樣本的數(shù)量,而對高光譜圖像數(shù)據(jù)進行標注需要耗費大量人力物力[5],這就需要在有限的標注樣本的前提下提高分類器的分類性能。在高光譜數(shù)據(jù)中,通常存在較少的標注樣本和大量的未標注樣本,而這些未標注樣本的信息往往不能得到有效利用。因此,如何利用未標注的數(shù)據(jù)輔助標注數(shù)據(jù)進行高精度的圖像分類是目前的一個重要研究方向[6]。
針對標注樣本量較少的問題,許多研究采用主動學習算法徹底挖掘未標注樣本中的有價值信息,并以此獲得更好的分類性能。文獻[7]采用最優(yōu)比次優(yōu)(best versus second-best,BvSB)的主動學習方法,并結合堆棧式稀疏自編碼器設計分類器。但是該方法在利用自編碼器提取高光譜圖像的空間特征時,破壞了鄰域樣本的空間相似性。文獻[8]將主動學習和半監(jiān)督分類進行結合,通過給未標注樣本打上偽標簽來擴大標注樣本集,但文中采用的分類器為支持向量機(support vector machine,SVM),在高光譜圖像數(shù)據(jù)復雜的空間特征和光譜特征下,其分類性能往往不能令人滿意。
針對上述問題,本文提出一種基于卷積神經網絡(convolutional neural network,CNN)和主動學習的高光譜圖像分類算法。為了克服SVM等傳統(tǒng)機器學習方法分類效果不佳的缺點,本文采用卷積神經網絡作為主動學習的分類器,實現(xiàn)高光譜圖像空-譜特征的同時提取。同時,該方法結合最優(yōu)比次優(yōu)策略、空間相似性以及光譜相似性進行未標注樣本的篩選和標注,在保證樣本標注正確性的情況下,將標注后的樣本加入訓練集中構成新的訓練樣本集,從而解決了高光譜圖像標注樣本量較少以及需要人工標注的問題。
近些年來,卷積神經網絡在計算機視覺領域得到越來越廣泛的應用,而在高光譜圖像分類領域中,卷積神經網絡同樣取得了非常好的效果[9-11]。Zhong等[9]借鑒ResNet網絡結構的思想,利用多層殘差網絡結構搭建高光譜圖像分類網絡,實現(xiàn)高光譜圖像的空-譜特征的同時提取。Jacopo等[10]通過修改卷積神經網絡的損失函數(shù),使得網絡能充分反映高光譜圖像的空間鄰域特征。文獻[11]結合GoogleNet中的Inception結構與跨層連接思想,利用不同大小的卷積核實現(xiàn)對高光譜圖片的多尺度特征提取。
本文設計的3層卷積神經網絡如圖1所示。假設高光譜圖像有n個波段,包含N種標簽,那么其原始樣本集X為{x1,x2,…,xN}∈1×1×n,為了充分利用高光譜圖像數(shù)據(jù)的空間相似性,對于圖像上的每一個像素,都取其周圍l像素×l像素范圍內的數(shù)據(jù)作為一個訓練樣本,這樣數(shù)據(jù)增強之后的輸入樣本集Y為{y1,y2,…,yN}∈l×l×n。由于分類所用的高光譜圖像往往空間分辨率有限,鄰域像素范圍取得過大可能會包含與中心像素標簽不同的地物,而太小的話又不能充分利用空間鄰域信息。實驗結果表明,l取5可以得到最好的分類結果。利用卷積神經網絡的三維卷積特點,高光譜數(shù)據(jù)樣本的空間信息和光譜信息能同時得到學習,從而實現(xiàn)樣本空-譜特征的同時提取。
圖1 本文采用的卷積神經網絡Fig.1 The proposed convolutional neural network
在網絡參數(shù)設置方面,該卷積神經網絡由卷積層、池化層、全連接層和softmax層組成。卷積層共有3層,前兩層采用3×3大小的卷積核,卷積步長為1,padding大小為2;第3層則采用1×1大小的卷積核,側重提取光譜信息。之后采用maxpooling方式進行池化,輸出維數(shù)為N的softmax層。網絡中的激活函數(shù)均采用Relu函數(shù)。
Angluin[12]于1998年提出主動學習的概念,其核心思想是利用無標注樣本數(shù)據(jù)提升分類模型的分類效果。主動學習是一種在機器學習領域解決樣本量不足的有效方法,目前該方法在機器學習的各個領域都得到了廣泛應用。
主動學習算法的主要流程如圖2所示。首先利用標注樣本集L訓練一個分類器C,利用查詢函數(shù)Q對樣本進行篩選,然后利用專家標注S對這些選中的樣本進行標注,之后將新標注好的樣本加入到標注樣本集L中組成新的訓練集,并參與下一輪的分類器C的訓練。該過程不斷循環(huán),直到分類器的分類精度達到目標精度或達到設置的最大迭代次數(shù)。
圖2 主動學習流程Fig.2 Flow chart of the active learning
BvSB方法是主動學習中一種常用的樣本選擇方法,其思想是利用最優(yōu)標號和次優(yōu)標號進行未標注樣本的篩選[13]。該方法由Joshi等[14]提出,其優(yōu)點是只關注樣本所屬概率最高的兩個類別,即最優(yōu)類別和次優(yōu)類別,忽略小概率類別對查詢結果的干擾,適用于多類別分類的情況。若樣本最優(yōu)類別和次優(yōu)類別的概率相差很小,意味著分類器對該樣本的分類效果很差,即該樣本有著更高的標注價值。
在BvSB方法中,選擇待標注樣本的依據(jù)為條件概率。如果樣本xi屬于最優(yōu)類別和次優(yōu)類別的條件概率分別為p(yBest|xi)和p(ySecond-Best|xi),那么BvSB方法可以表示為
(1)
現(xiàn)有研究中,該方法往往與SVM結合使用。為了克服SVM方法分類精確度不高的問題,本文將BvSB方法與卷積神經網絡結合使用。卷積神經網絡中softmax層的輸出結果可以看作樣本屬于每一類地物的條件概率p(y|xi)。假設全連接層最終輸出的是一個一維數(shù)組v,vi表示v中的第i個元素,那么該元素對應的softmax輸出可以表示為
(2)
相應地,BvSB方法可以表示為
(3)
式中:Smax和Ssecond-max分別為softmax層輸出數(shù)組中的極大值與次極大值。
通過之前的樣本選擇策略,主動學習方法可以從未標注樣本集中篩選出一部分具有標注價值的樣本組成待標注樣本集W,接下來需要對這些樣本進行標注,然后將新標注的樣本加入到標注樣本集中組成新的訓練集。這些待標注樣本的標注可靠性直接影響著后續(xù)主動學習的效果,一旦標注錯誤,那么這些帶有錯誤標簽的樣本就會在接下來的分類器訓練過程中給出完全錯誤的標簽信息。這樣不僅不會提高分類器的分類精度,其分類性能反而會隨著迭代的進行而越來越差。在樣本量不大的情況下,為了保證標注的準確性,可以采用人工標注的手段,但是這樣往往會耗費大量人力物力。
針對上述問題,本文利用高光譜圖像的空間相似性和光譜相似性提出一套可靠的樣本自動標注策略。由于高光譜圖像相鄰像素往往屬于同一類地物,鄰近像元之間具有空間一致性特性,故對于每一個待標注的樣本,選取其周圍3像素×3像素范圍的8個樣本作為其鄰域樣本。為了保證標注的正確性,接下來利用光譜相似性對這些樣本進行進一步篩選。我們選擇每個鄰域樣本與待標注樣本的光譜角[15]作為光譜相似性依據(jù),從中選取4個光譜相似性最高的樣本作為待標注樣本的參考標注樣本,并將這4個樣本輸入本輪迭代得到的分類器中進行分類,如果分類標簽一致,則將待標注樣本標注為該標簽。否則該樣本不滿足標注條件,不進行標注。標注過程如圖3所示。
圖3 自動標注過程Fig.3 The automatic labeling process
這種自動標注方法既考慮高光譜圖像的空間相似性,又考慮其光譜相似性,保證了標注的可靠性。
綜上所述,對于給定的一個高光譜數(shù)據(jù)集,其包含標注樣本集L和未標注樣本集U,本文算法流程如下:
1) 對于標注樣本集L,將其作為訓練集訓練本文給出的卷積神經網絡;
2) 根據(jù)步驟1)中的分類結果,運用BvSB準則對未標注樣本集U中的樣本進行篩選,不滿足條件的樣本放回未標注樣本集U,滿足條件的樣本組成待標注樣本集W;
3) 按照2.3節(jié)中的描述,利用高光譜圖像的空間相似性和光譜相似性,對步驟2)中得到的標準樣本集W進行標注,形成新的標注集合N;
4) 利用集合N更新標注樣本集L和未標注樣本集U,L=L∪N,U=UN;
5) 重復步驟1)~4),直到達到設置的迭代次數(shù)。
本實驗選取的高光譜圖像數(shù)據(jù)為Salinas、Pavia University(以下簡稱PaviaU)和Indian Pines數(shù)據(jù)。
Salinas高光譜數(shù)據(jù)于1998年由AVIRIS采集于美國加利福尼亞州的薩利納斯谷,其原始數(shù)據(jù)包含224個光譜通道,數(shù)據(jù)波段覆蓋范圍為400~2 500 nm。其空間分辨率較高,可達到3.7 m,每個波段包含512像素×217像素,且地物空間分布相對均勻,共有16種地物覆蓋類型。
PaviaU高光譜數(shù)據(jù)由ROSIS采集于意大利北部地區(qū),帕維亞大學及其周邊場景,該數(shù)據(jù)波段覆蓋范圍為430~860 nm,原始數(shù)據(jù)包含115個波段,去除噪聲和水吸收波段后剩余103個可用光譜通道,空間分辨率為1.3 m,每個波段包含610像素×340像素,共有9種地物覆蓋類別。
Indian Pines高光譜數(shù)據(jù)由美國國家航空航天局(NASA)在1992年利用AVIRIS采集于美國印第安納州,其波長覆蓋范圍為400~2 500 nm,原始數(shù)據(jù)為220個波段,剔除20個水吸收波段后剩余200個波段??臻g分辨率約為20 m,每個波段包含145像素×145像素,共包含16種地物覆蓋類別。
3個數(shù)據(jù)集的偽彩色圖像和真實地物分布見圖4。
圖4 3個數(shù)據(jù)集的偽彩色圖像和真實地物標記Fig.4 The false color images for three datasets and the ground truths
本文中的卷積神經網絡設置10個樣本為一個batch進行訓練,權重衰減為0.001。初始學習率為0.001,經過30 000次迭代后學習率降為0.000 1,經過60 000次迭代后學習率降為0.000 01,一共進行70 000次學習。卷積層的初始參數(shù)通過標準差為0.01的高斯分布生成,所有層的偏置都設置為0。
從3個數(shù)據(jù)集中各取50個標注樣本作為初始的訓練集,迭代5次,每次迭代中每類地物都有30個未標注樣本得到標注,并送入訓練集中。由于PaviaU和Indian Pines數(shù)據(jù)有的地物數(shù)量太少,故選取9類地物進行分類實驗。本文提出方法的迭代分類結果如圖5所示。
本文采用總體分類精度(OA)、平均分類精度(AA)和Kappa系數(shù)作為評價指標。表1給出3個指標隨迭代次數(shù)的變化情況。每一次迭代都會使分類精度上升1%~3%,5次迭代之后,Salinas數(shù)據(jù)的總體分類精度從87.79%提升到98.85%,PaviaU數(shù)據(jù)的總體分類精度從89.42%提升到97.76%,Indian Pines數(shù)據(jù)的總體分類精度從86.05%提升到98.72%,3個數(shù)據(jù)集的總體分類精度分別有著11.06%、8.34%和12.67%的提升。
表1 隨迭代次數(shù)變化的分類精度Table 1 Changes in the classification accuracy with the numbers of iterations
圖5 3個數(shù)據(jù)集多次迭代分類結果圖Fig.5 Classification results of the three datasets after several iterations
在初次分類效果不好的地物種類上,這種提升更加明顯。對于Salinas數(shù)據(jù)中的Grapes untrained和Vineyard untrained兩種地物而言,其在初次利用卷積神經網絡分類時準確率很低,兩種地物交叉混雜在一起,總體分類精度分別只有66.54%和78.49%,而最后一次迭代,兩類地物基本得到了正確分類,其分類精度分別達到89.47%和92.26%。這種分類精度的提升在PaviaU高光譜數(shù)據(jù)中的裸土(Bare soil)上也有明顯的體現(xiàn)。初次分類時,裸土中混雜著一部分草地(Meadow)。但隨著迭代次數(shù)的增加,裸土的分類效果變得越來越好,到第5次迭代時已經基本可以將其全部正確分類,分類精度提升24.39%。
在Salinas、PaviaU和Indian Pines數(shù)據(jù)集上的實驗結果證明主動學習算法可以在標注樣本量較少的情況下有效提高高光譜圖像分類的精確度,同時驗證了本文自動標注策略的有效性。
本文還將該方法與使用SVM、結合邊緣采樣策略(margin sampling,MS)[16]的支持向量機(SVM_MS)、堆棧式自編碼器(stacked auto-encoder,SAE)[17]、堆棧降噪自編碼機(stacked denoise auto-encoder,SDAE)[18]和無監(jiān)督稀疏自編碼機(unsupervised convolutional sparse auto-encoder,UCSAE)[19]的主動學習方法進行對比實驗,用以驗證卷積神經網絡方法的優(yōu)越性。SVM使用的核函數(shù)為徑向基核函數(shù),并利用網格搜索法在0.001~1 000之間尋找核函數(shù)參數(shù)σ和懲罰參數(shù)C的最優(yōu)值。SAE包含3個隱藏層,正則化參數(shù)λ和稀疏懲罰項參數(shù)μ分別設置為5×10-3和4,平均激活度ρ為0.2。SDAE包含3個隱藏層。高光譜數(shù)據(jù)的選取與3.2節(jié)中的實驗設置相同,初始時每類地物選擇50個標注樣本,每次迭代選擇30個樣本進行自動標注,各分類器的分類精度隨迭代次數(shù)的變化情況如圖6所示。
圖6 不同分類器的精度變化曲線Fig.6 The changing curves of accuracy for different classifiers
從圖6可以看出,隨著迭代次數(shù)的增加,6種方法的分類精度都在上升。這說明對于任何有效的分類器,主動學習方法都具有提升分類精度的作用。表2給出6種方法在3個數(shù)據(jù)集上的3種分類評價指標。在3個數(shù)據(jù)集上,帶有邊緣采樣的SVM方法比隨機選擇樣本的SVM方法總體分類精度分別提高2.44%、2.51%和2.31%,可知邊緣采樣方法對于高光譜圖像分類結果具有明顯的改善作用。而4種神經網絡方法對比SVM方法都有明顯的提升,精度提升的幅度在4%~11%之間,這說明在處理高光譜圖像這種高維數(shù)據(jù)時,神經網絡方法相比于SVM這種淺層學習模型有著明顯的優(yōu)勢。
表2 不同分類器的精度比較Table 2 The accuracy comparison among different classifiers
采用卷積神經網絡作為分類器的主動學習方法有著最高的分類正確率,3個數(shù)據(jù)集上的總體分類正確率分別達到98.85%、97.76%和98.72%,比SAE方法分別提升3.50%、3.57%和2.78%。這是因為SAE的輸入是一維向量,往往不能同時兼顧光譜特征和空間特征,而卷積神經網絡可以同時對光譜特征和空間特征進行提取,從而提升了其分類精度。SDAE方法在輸入上同樣為一維向量,其分類精度與SAE方法比較接近。與SDAE方法相比,卷積神經網絡在3個數(shù)據(jù)集上的總體分類精度分別提升2.81%、2.97%和4.48%。UCSAE方法結合SAE和卷積神經網絡,其分類精度與本文中的方法非常接近,兩者的總體分類精度分別相差1.01%、0.95%和0.12%,表明在標注樣本量充足的情況下,結合卷積神經網絡的方法基本可以實現(xiàn)非常好的分類效果。而本文中的方法相比UCSAE精簡了利用SAE提取特征的部分,更加簡便實用。綜合以上實驗結果,可以看出本文采用卷積神經網絡進行空-譜特征提取的主動學習方法有著最好的分類性能。
本文針對高光譜圖像分類中標注樣本量較少的問題,提出一種結合卷積神經網絡的主動學習方法。該方法與傳統(tǒng)的主動學習方法相比,優(yōu)勢主要體現(xiàn)在兩個方面:1)將卷積神經網絡與主動學習結合起來,借助卷積神經網絡可以同時提取高光譜圖像光譜特征和空間特征的優(yōu)點,實現(xiàn)對高光譜圖像更精確的分類。2)結合BvSB準則、高光譜圖像的空間相似性和光譜相似性,實現(xiàn)主動學習過程中樣本的自動標注,省去了人工標注的過程。本文在Salinas,PaviaU和Indian Pines高光譜數(shù)據(jù)集上的實驗也驗證了這種標注方法的有效性,同時驗證了使用卷積神經網絡作為主動學習的分類器有著比其他方法更高的準確性。