錢園園,劉進鋒,朱東輝
(寧夏大學 信息工程學院,銀川 750021)
遙感技術是一門綜合性的學科,主要通過遙感器在空中對地物進行測量等操作獲取信息,并對獲取的地物信息進行研究分析。分類作為一種基礎的遙感圖像處理手段備受關注,已經被廣泛應用于自然災害檢測、土地資源利用、資源勘測等各個領域中。根據遙感圖像分類時樣本的標簽是否參與,可將這些方法分為有監督分類、無監督分類、半監督分類。
有監督分類方法被廣泛應用于遙感圖像分類,并且取得了較好的成績。張浩等[1]利用支持向量機對建筑物進行識別并分類,達到了很好的分類效果?;贑ART決策樹[2]等的算法被相繼用于遙感圖像分類。Cheng等[3]將AlexNet、VGGNet和GoogleNet應用于遙感圖像場景的監督分類中,取得了良好的分類效果。Xu等[4]應用兩個深度神經網絡,以一定的加權融合方式進行遙感圖像分類并得到了令人滿意的分類精度。有監督分類方法雖然被廣泛應用并且獲得很好的分類精度,但是常見的遙感影像數據集中每個類別的圖像數量和圖像總數量都很少,因此不能滿足有監督分類需要用到大量標簽樣本的需求,分類精度不高。
無監督分類是在只知道圖像數據但不知道所屬類別的情況下,利用某種度量標準或一定的模型得到數據之間的關系?;贐oVW的方法[5],根據數據集學習特征得到相應特征的數據,再通過聚類對特征進行分類。Xu等[6]提出了一種具有知識編碼粒度空間的深層自動編碼器神經網絡體系結構,用于遙感圖像分類。Zhang等[7]首次對沒有標簽的遙感圖像進行分類時用到了生成式對抗網絡(generative adversarial network,GAN)模型。Lin等[8]提出一種無監督的多層特征匹配生成對抗網絡模型(MARTA GANs),為適應遙感數據的復雜特性,使用了一個特征融合層融合中間層和全局特征。由于遙感圖像中同種類別的圖像通常可能會顯示出不同的大小、顏色,或者不同類別的圖像表現出很大的相似性,因此,如果只使用無監督的方法進行遙感圖像分類就很難訓練出泛化能力較強的模型,進而影響分類的準確率。
半監督分類恰好可以彌補以上兩種分類方法的缺點,這種方法不僅通過有標記的樣本圖像進行模型的訓練,而且可以有效地利用大量的無標記樣本圖像,使模型見識到更多的圖像、更好的學習特征,得到泛化能力更好的模型。文獻[9-10]使用SVM分類器進行遙感圖像的半監督分類。Han等[11]將具有深度學習功能的半監督生成框架用在遙感圖像場景分類中。Xu等[12]提出了一種新型的半監督方法(SS-AIT2FCM),用于遙感圖像分類,使遙感圖像的分類精度獲得提高的同時對遙感圖像進行了清晰化處理。
GAN作為無監督模型[13],它主要由一個生成器和一個判別器兩部分組成,兩個模型之間通過零和博弈的思想對網絡進行訓練。在GAN的基礎上衍生出很多改進方法,如基于深度卷積生成對抗網絡的DCGAN[14]、對原始目標函數改進的WGAN[15]、加入條件信息提出的條件GAN(CGAN)[16]等。
GAN在半監督分類方面也有很多研究,Salimans等[17]提出的一種GAN改進模型——半監督生成對抗網絡(SSGAN)。Dai 等[18]基于生成式對抗網絡框架提出了一種新的生成模型,同時改變網絡訓練的過程,有效提高了半監督分類的效果。
目前基于GAN的半監督遙感圖像分類方法存在不足之處,GAN 的生成器生成樣本的真實度與清晰度不太高,生成樣本多樣性不夠,在有標簽數據過少時分類精度不足。
本文結合GAN與VGGNet-16設計了一個針對遙感圖像的半監督分類方法(classification based on semi-supervised learning,CSSL),該方法結合了自訓練和協同訓練的優勢,提高了遙感圖像分類的精度。
GAN作為一種無監督的生成模型,其基本架構如圖1所示,它由生成模型(生成器)和判別模型(判別器)兩部分組成。在訓練過程中,生成器的目的是生成質量較好的、與真實圖片差距較小的圖片,判別器的目的是將真假圖像分辨開來。
半監督學習[19]是結合了監督學習與無監督學習優勢的一種分類方法,半監督學習模型在訓練時可以利用海量的無標簽數據以及少量的有標簽數據學習到泛化能力較強的模型。常見的半監督分類方法有很多,本文提出的半監督方法主要基于自訓練算法[20]與協同訓練算法[21]。
結合自訓練與協同訓練的優勢,本文提出了一個半監督分類模型(CSSL)。在CSSL模型中借鑒了協同訓練的優勢,使用兩個模型cDCGAN和VGGNet-16對遙感圖像進行分類,從而使每個無標簽樣本被預測兩次,增強對標簽預測的精確度。同時借鑒自訓練方式,通過操作簡單、容易理解的多次訓練的方式進行遙感圖像分類。相比自訓練算法只對無標簽樣本進行一次預測,CSSL模型使用兩個分類器對每個無標簽樣本進行兩次預測,這樣可以減少模型預測錯誤的可能性。相比協同訓練算法而言,CSSL模型不需要根據圖像的特征將數據集分為兩個不同的子數據集,只需通過兩個分類器用多訓練的方式為無標簽樣本添加偽標簽,并使模型收斂,所以CSSL模型更適合對遙感圖像進行分類。
本文設計的CSSL模型包含cDCGAN和VGGNet-16兩個分類模型。其中cDCGAN是對DCGAN的改進。對DCGAN的改進主要包括兩部分:其一是將DCGAN的判別器的二分類器改為多分類器;其二是對DCGAN的生成器使用BatchNorm層+SELU激活函數進行改進。改進后的cDCGAN不僅可以對無標簽的圖像進行分類,而且可以生成無標簽的遙感數據集。然后,結合cDCGAN與VGGNet-16模型通過多次自訓練的方式進行遙感圖像的半監督分類。
1)將DCGAN模型改為cDCGAN。
(1)將DCGAN的判別器的二分類器改為多分類器。本文不僅使用DCGAN產生遙感場景樣本,而且要對它的判別器改進使它可以作為一個分類器用于多訓練。在普通DCGAN中,生成器(G)輸入的是噪聲,輸出的是生成的圖像。判別器(D)相當于一個二分類器,輸入的是真實圖像和生成的圖像,輸出的是對圖像真假的判斷。在本文中cDCGAN模型的生成器的功能沒有變,依舊是生成類似于真實圖像的假樣本,但判別器的功能發生變化,不僅要使判別器實現對真假圖像的判別,還要對生成的圖像進行預分類,因此,用softmax層替換了DCGAN模型中判別器的最后一層,其結構如圖2所示。softmax層有C+1維,前C維表示與遙感圖像訓練集類別相同的C維,第C+1維表示判斷圖像的真假。它是指將真實的遙感場景樣本與虛假遙感場景樣本區分后,再按圖像場景類別進行分類。最后判別器輸出一個離散概率分布P={p1,…,pC,pFake}。

圖2 判別器改進后的模型
(2)對DCGAN的生成器使用BatchNorm層+SELU激活函數進行改進。在人工神經網絡中,激活函數對于網絡學習復雜、非線性的問題都有很重大的意義。在卷積神經網絡中,激活函數保證了卷積運算過程各個神經元的非線性化,從而學習到更多的非線性特征,解決更加復雜的圖像問題。在DCGAN模型中,使用ReLU激活函數完成卷積的非線性化,ReLU激活函數的優點在于對梯度下降優化算法的收斂有巨大的加速作用,當輸入x小于等于0時,輸出0,當輸入x大于0時,才產生輸出,這使得ReLU激活函數具有一定的稀疏性,這從一定程度上可以使過擬合現象降低。但是ReLU激活函數也有很大的缺點,比如在運算過程中當梯度的變化非常大時,使用ReLU激活函數后,這個神經元就會失去活性,不會被激活。因此,如果這樣的現象頻繁發生,就會導致數據丟失,失去數據的多樣性,從而導致生成的圖像質量較差或者圖像的多樣性比較差。
SELU激活函數[22]被提出后,在理論上被證明比ReLU等激活函數有更多的優勢,可以提取到更多的圖像特征,被應用到GAN模型中[23],用于生成具有更高分辨率的人臉圖像。SELU激活函數的圖像如圖3所示。SELU激活函數包含了ReLU函數的優點,即通過設置λ略大于1即等于1.050 7時,對于輸入大于0的部分保持非飽和性,即保證了讓某些區域的斜率是大于1的,意味著當梯度變化較小時,通過乘以1.050 7,會使輸入稍微變大,保證對于變化不大的輸入值也使其梯度不會減小得太快或者消失。此外,SELU激活函數保留了輸入值小于0的計算結果,從而可以學習到更多的圖像特征,從而提高模型的分類精度。

圖3 SELU激活函數圖像
本文使用BatchNorm層+SELU激活函數對DCGAN進行改進。SELU激活函數可以使模型學習到更多的圖像特征,從而生成質量更好的圖像,提高半監督模型的分類精度。加入BatchNorm層是為了使模型學習到的數據分布在一個穩定的區域,不會出現梯度消失或者爆炸情況,加快收斂速度。
但是在圖3中可以看出SELU激活函數保留了小于0的部分,這在提供了更豐富的特征的同時,增多了網絡參數量,使計算量增加,因此在正向和反向傳播的過程中會相應地增長計算時間。所以本文只對DCGAN的生成器引入BatchNorm層+SELU激活函數,圖4顯示了改進后的cDCGAN模型的生成器結構。

圖4 改進后的cDCGAN生成器
(3)cDCGAN模型的損失函數。在cDCGAN模型中,生成器的損失函數如式(1)所示,其參數的含義與原始GAN 模型生成器的損失函數類似。
Ez~Pz[logDk+1(G(z))]
(1)
式中:z表示隨機噪聲;Ez~Pz表示在分布z上的數學期望;D為判別器;G為生成器。由于cDCGAN的判別器的輸出是多維的(圖2),所以該公式中判別器D加了個下標k+1,Dk+1(G(x))表示判別器輸入為生成圖像時輸出的第k+1維(最后一維)。
cDCGAN的判別器的損失函數與原始 GAN 的損失函數有一定的差別,分為有監督損失和無監督損失兩部分。其中的無監督損失與原始GAN 類似,即對圖像的真或者假判斷即可,不需要加入損失標簽。無監督損失函數如式(2)所示。
Lunsupervised=Ex~Pdata(x)[logDk+1(x)]+
Ez~Pz[log(1-Dk+1(G(z)))]
(2)
式中:x表示真實圖像;Ex~Pdata(x)表示在x分布上的數學期望,其他符號含義與式(1)相同。
有監督學習損失要判斷生成遙感圖像的類別,所以以交叉熵的形式給出(式(3))。

(3)
式中:真實數據的標簽y以獨熱向量(one-hot vector)的形式給出;yi表示標簽的第i維;Di(x)表示判別器輸入為真時其輸出的第i維,通過i=0到k的累加將除了最后一維(k+1維)的其他各類別的交叉熵計算出來。
判別器的總損失為無監督損失與有監督損失之和,如式(4)所示。

(4)
整個模型的優化目標與通常GAN類似,為最大化判別器D,最小化生成器G,如式(5)所示。

(5)
2)CSSL模型。CSSL模型由cDCGAN和VGGNet-16兩部分組成,如圖5所示。圖中上半部分為生成模型cDCGAN,主要目的是生成大量的無標記遙感樣本,擴充遙感數據集的不足并對生成樣本進行預分類。下半部分為分類模型VGGNet-16,主要負責對遙感數據集進行分類。本文選擇cDCGAN和VGGNet-16作為CSSL模型的組合主要有4個原因。第一,遙感圖像數據集中包括的有標簽遙感圖像數量較少,而改進后cDCGAN模型可以生成無標簽的遙感圖像,擴增數據集用于半監督分類。第二,本文提出的CSSL模型需要用到兩個分類器對生成的圖像進行分類,而cDCGAN的判別器恰好可以作為其中的一個分類器對生成圖像進行分類。第三,選擇VGGNet-16是因為相比于cDCGAN模型而言,該模型具有較多的層數,因此非線性因素也較多,可以學習到更多的圖像特征,有利于對遙感圖像的特征進行提取。第四,cDCGAN模型的卷積核為5*5,而VGGNet-16模型的卷積核為2*2與3*3,所以對于相同的遙感圖像,兩個網絡在每個階段都可以學到不同的特征圖像,使用該半監督模型生成大量遙感場景圖像的同時處理標記樣本和未標記樣本,從而提高分類器的分類性能。因此選擇VGGNet-16和cDCGAN作為兩種不同的分類器很合適。

圖5 基于生成對抗網絡的半監督分類模型(CSSL)
在整個訓練過程中,將原始標記樣本L劃分為兩個子集:訓練集L1和測試集,然后訓練該模型。算法包括4個主要步驟。
步驟1:預訓練。在L1上訓練VGGNet-16,生成初始模型Mv,使其具有一定的分類能力。
步驟2:cDCGAN生成樣本并預測標簽。用L1作為真實數據訓練cDCGAN,模型穩定后生成的一批無標記樣本記為U,并對每個樣本作出預測記為Pc。
步驟3:擴大訓練集。將生成樣本集U送入模型Mv,每個樣本得到一個預測類別標簽Pr及預測概率,選取概率高且Pc和Pr相同的樣本分配相應的類標簽,這樣能保證選取的生成樣本與真實樣本的特征分布(或者說分類屬性)相當程度上保持一致。然后把這些加了標簽的生成樣本添加到訓練集L1中,記為L2。使用L2數據集更新Mv模型。
南水北調中線工程配套建設正在有序進行。長距離輸水管道管材選擇要充分考慮管材性能、施工、壽命、造價等因素。在石油基地和鹽漬土地區采用涂層隔離和陰極保護技術的防腐措施,能有效地防止土壤的電化學腐蝕,不僅保障了輸水管道的安全和耐久性,同時提高了輸水管道使用壽命。在施工過程中應嚴格按照設計要求和相關規范施工,嚴把關鍵部位各個環節的質量關,才能保證管道不漏水,實現質量達到優良目標。
步驟4:多次重復。在完成步驟3之后,有標簽的訓練集會增大。如果增加的生成樣本不夠,重復步驟2和步驟3。
最終形成的訓練集可以再反復訓練VGGNet-16分類器。當訓練好后,用該分類器模型對測試集的樣本進行分類。
為了驗證本文提出的CSSL方法的分類性能,實驗使用了每個圖像大小相同的大型遙感數據集NWPU-RESISC45和常用的土地分類數據集UC-Merced對CSSL模型的分類效果進行驗證。NWPU-RESISC45是一個數據量較大的數據集,該數據集圖像大小為256像素×256像素,所包含圖像類別是現存的遙感數據集中類別最多的數據集之一,共有31 500張圖像,可表示為45×700,其中700表示每個類別的數量,45表示類別數。UC Merced數據集比較小,總量只有2 100張圖像,可表示為21×100,其中21是類別數,100是每個類的包含的圖像。
實驗以TensorFlow-GPU-1.1.4作為框架,處理器型號為i7-8750,顯卡為GeForce GTX 1060。
本文通過生成樣本的質量對比、總分類精度對比來分析提出方法的性能。
圖6和圖7分別隨機展示了UC-Merced原始數據集和NWPU-RESISC45原始數據集與生成圖像中的部分圖像。其中圖6和圖7中的(a)指原始圖像,(b)和(c)分別是CSSL模型訓練20 輪和50 輪生成的部分圖像。在圖中可以看出,在模型中的cDCGAN訓練了20輪后,生成的假圖像已經基本具備了遙感圖像的主要特征信息,由于訓練次數少,所以生成的圖像存在噪聲,還不能清晰地用肉眼識別圖像類別。圖6和圖7中的(c)隨機展示了cDCGAN模型訓練50輪后的生成圖像,雖然生成圖像與原始圖像相比還存在一定的差距,但是,與訓練20輪的圖像相比,50輪后的圖像明顯更加清晰,也基本具備了與真實圖像相似的特征信息。因此這些生成的圖像可以擴大數據集,并具備提高半監督模型的分類精度的可能性。

圖6 UC-Merced原始數據集與CSSL中生成的部分圖像

圖7 NWPU-RESISC45原始數據集與CSSL生成的部分圖像

表1 UC-Merced數據集中CSSL與其他方法分類精度對比 %

表2 NWPU-RESISC45數據集中CSSL與其他方法分類精度對比 %
本文結合自訓練算法和協同訓練算法的優勢設計了基于生成對抗網絡的半監督分類模型CSSL。該方法不僅能生成大量無標簽的樣本,增廣了遙感數據集,并且能夠充分利用這些數據達到提高分類精度的效果,緩解決了有監督分類需要用到大量有標簽數據的問題。通過UC-Merced以及NWPU-NWPU-RESISC45數據集設計對比實驗對本文提出的CSSL模型進行性能分析。經過生成圖像對比實驗以及總分類精度證明了本方法的優越性。