錢園園,劉進鋒,朱東輝
(寧夏大學(xué) 信息工程學(xué)院,銀川 750021)
遙感技術(shù)是一門綜合性的學(xué)科,主要通過遙感器在空中對地物進行測量等操作獲取信息,并對獲取的地物信息進行研究分析。分類作為一種基礎(chǔ)的遙感圖像處理手段備受關(guān)注,已經(jīng)被廣泛應(yīng)用于自然災(zāi)害檢測、土地資源利用、資源勘測等各個領(lǐng)域中。根據(jù)遙感圖像分類時樣本的標(biāo)簽是否參與,可將這些方法分為有監(jiān)督分類、無監(jiān)督分類、半監(jiān)督分類。
有監(jiān)督分類方法被廣泛應(yīng)用于遙感圖像分類,并且取得了較好的成績。張浩等[1]利用支持向量機對建筑物進行識別并分類,達到了很好的分類效果。基于CART決策樹[2]等的算法被相繼用于遙感圖像分類。Cheng等[3]將AlexNet、VGGNet和GoogleNet應(yīng)用于遙感圖像場景的監(jiān)督分類中,取得了良好的分類效果。Xu等[4]應(yīng)用兩個深度神經(jīng)網(wǎng)絡(luò),以一定的加權(quán)融合方式進行遙感圖像分類并得到了令人滿意的分類精度。有監(jiān)督分類方法雖然被廣泛應(yīng)用并且獲得很好的分類精度,但是常見的遙感影像數(shù)據(jù)集中每個類別的圖像數(shù)量和圖像總數(shù)量都很少,因此不能滿足有監(jiān)督分類需要用到大量標(biāo)簽樣本的需求,分類精度不高。
無監(jiān)督分類是在只知道圖像數(shù)據(jù)但不知道所屬類別的情況下,利用某種度量標(biāo)準(zhǔn)或一定的模型得到數(shù)據(jù)之間的關(guān)系?;贐oVW的方法[5],根據(jù)數(shù)據(jù)集學(xué)習(xí)特征得到相應(yīng)特征的數(shù)據(jù),再通過聚類對特征進行分類。Xu等[6]提出了一種具有知識編碼粒度空間的深層自動編碼器神經(jīng)網(wǎng)絡(luò)體系結(jié)構(gòu),用于遙感圖像分類。Zhang等[7]首次對沒有標(biāo)簽的遙感圖像進行分類時用到了生成式對抗網(wǎng)絡(luò)(generative adversarial network,GAN)模型。Lin等[8]提出一種無監(jiān)督的多層特征匹配生成對抗網(wǎng)絡(luò)模型(MARTA GANs),為適應(yīng)遙感數(shù)據(jù)的復(fù)雜特性,使用了一個特征融合層融合中間層和全局特征。由于遙感圖像中同種類別的圖像通??赡軙@示出不同的大小、顏色,或者不同類別的圖像表現(xiàn)出很大的相似性,因此,如果只使用無監(jiān)督的方法進行遙感圖像分類就很難訓(xùn)練出泛化能力較強的模型,進而影響分類的準(zhǔn)確率。
半監(jiān)督分類恰好可以彌補以上兩種分類方法的缺點,這種方法不僅通過有標(biāo)記的樣本圖像進行模型的訓(xùn)練,而且可以有效地利用大量的無標(biāo)記樣本圖像,使模型見識到更多的圖像、更好的學(xué)習(xí)特征,得到泛化能力更好的模型。文獻[9-10]使用SVM分類器進行遙感圖像的半監(jiān)督分類。Han等[11]將具有深度學(xué)習(xí)功能的半監(jiān)督生成框架用在遙感圖像場景分類中。Xu等[12]提出了一種新型的半監(jiān)督方法(SS-AIT2FCM),用于遙感圖像分類,使遙感圖像的分類精度獲得提高的同時對遙感圖像進行了清晰化處理。
GAN作為無監(jiān)督模型[13],它主要由一個生成器和一個判別器兩部分組成,兩個模型之間通過零和博弈的思想對網(wǎng)絡(luò)進行訓(xùn)練。在GAN的基礎(chǔ)上衍生出很多改進方法,如基于深度卷積生成對抗網(wǎng)絡(luò)的DCGAN[14]、對原始目標(biāo)函數(shù)改進的WGAN[15]、加入條件信息提出的條件GAN(CGAN)[16]等。
GAN在半監(jiān)督分類方面也有很多研究,Salimans等[17]提出的一種GAN改進模型——半監(jiān)督生成對抗網(wǎng)絡(luò)(SSGAN)。Dai 等[18]基于生成式對抗網(wǎng)絡(luò)框架提出了一種新的生成模型,同時改變網(wǎng)絡(luò)訓(xùn)練的過程,有效提高了半監(jiān)督分類的效果。
目前基于GAN的半監(jiān)督遙感圖像分類方法存在不足之處,GAN 的生成器生成樣本的真實度與清晰度不太高,生成樣本多樣性不夠,在有標(biāo)簽數(shù)據(jù)過少時分類精度不足。
本文結(jié)合GAN與VGGNet-16設(shè)計了一個針對遙感圖像的半監(jiān)督分類方法(classification based on semi-supervised learning,CSSL),該方法結(jié)合了自訓(xùn)練和協(xié)同訓(xùn)練的優(yōu)勢,提高了遙感圖像分類的精度。
GAN作為一種無監(jiān)督的生成模型,其基本架構(gòu)如圖1所示,它由生成模型(生成器)和判別模型(判別器)兩部分組成。在訓(xùn)練過程中,生成器的目的是生成質(zhì)量較好的、與真實圖片差距較小的圖片,判別器的目的是將真假圖像分辨開來。
半監(jiān)督學(xué)習(xí)[19]是結(jié)合了監(jiān)督學(xué)習(xí)與無監(jiān)督學(xué)習(xí)優(yōu)勢的一種分類方法,半監(jiān)督學(xué)習(xí)模型在訓(xùn)練時可以利用海量的無標(biāo)簽數(shù)據(jù)以及少量的有標(biāo)簽數(shù)據(jù)學(xué)習(xí)到泛化能力較強的模型。常見的半監(jiān)督分類方法有很多,本文提出的半監(jiān)督方法主要基于自訓(xùn)練算法[20]與協(xié)同訓(xùn)練算法[21]。
結(jié)合自訓(xùn)練與協(xié)同訓(xùn)練的優(yōu)勢,本文提出了一個半監(jiān)督分類模型(CSSL)。在CSSL模型中借鑒了協(xié)同訓(xùn)練的優(yōu)勢,使用兩個模型cDCGAN和VGGNet-16對遙感圖像進行分類,從而使每個無標(biāo)簽樣本被預(yù)測兩次,增強對標(biāo)簽預(yù)測的精確度。同時借鑒自訓(xùn)練方式,通過操作簡單、容易理解的多次訓(xùn)練的方式進行遙感圖像分類。相比自訓(xùn)練算法只對無標(biāo)簽樣本進行一次預(yù)測,CSSL模型使用兩個分類器對每個無標(biāo)簽樣本進行兩次預(yù)測,這樣可以減少模型預(yù)測錯誤的可能性。相比協(xié)同訓(xùn)練算法而言,CSSL模型不需要根據(jù)圖像的特征將數(shù)據(jù)集分為兩個不同的子數(shù)據(jù)集,只需通過兩個分類器用多訓(xùn)練的方式為無標(biāo)簽樣本添加偽標(biāo)簽,并使模型收斂,所以CSSL模型更適合對遙感圖像進行分類。
本文設(shè)計的CSSL模型包含cDCGAN和VGGNet-16兩個分類模型。其中cDCGAN是對DCGAN的改進。對DCGAN的改進主要包括兩部分:其一是將DCGAN的判別器的二分類器改為多分類器;其二是對DCGAN的生成器使用BatchNorm層+SELU激活函數(shù)進行改進。改進后的cDCGAN不僅可以對無標(biāo)簽的圖像進行分類,而且可以生成無標(biāo)簽的遙感數(shù)據(jù)集。然后,結(jié)合cDCGAN與VGGNet-16模型通過多次自訓(xùn)練的方式進行遙感圖像的半監(jiān)督分類。
1)將DCGAN模型改為cDCGAN。
(1)將DCGAN的判別器的二分類器改為多分類器。本文不僅使用DCGAN產(chǎn)生遙感場景樣本,而且要對它的判別器改進使它可以作為一個分類器用于多訓(xùn)練。在普通DCGAN中,生成器(G)輸入的是噪聲,輸出的是生成的圖像。判別器(D)相當(dāng)于一個二分類器,輸入的是真實圖像和生成的圖像,輸出的是對圖像真假的判斷。在本文中cDCGAN模型的生成器的功能沒有變,依舊是生成類似于真實圖像的假樣本,但判別器的功能發(fā)生變化,不僅要使判別器實現(xiàn)對真假圖像的判別,還要對生成的圖像進行預(yù)分類,因此,用softmax層替換了DCGAN模型中判別器的最后一層,其結(jié)構(gòu)如圖2所示。softmax層有C+1維,前C維表示與遙感圖像訓(xùn)練集類別相同的C維,第C+1維表示判斷圖像的真假。它是指將真實的遙感場景樣本與虛假遙感場景樣本區(qū)分后,再按圖像場景類別進行分類。最后判別器輸出一個離散概率分布P={p1,…,pC,pFake}。
圖2 判別器改進后的模型
(2)對DCGAN的生成器使用BatchNorm層+SELU激活函數(shù)進行改進。在人工神經(jīng)網(wǎng)絡(luò)中,激活函數(shù)對于網(wǎng)絡(luò)學(xué)習(xí)復(fù)雜、非線性的問題都有很重大的意義。在卷積神經(jīng)網(wǎng)絡(luò)中,激活函數(shù)保證了卷積運算過程各個神經(jīng)元的非線性化,從而學(xué)習(xí)到更多的非線性特征,解決更加復(fù)雜的圖像問題。在DCGAN模型中,使用ReLU激活函數(shù)完成卷積的非線性化,ReLU激活函數(shù)的優(yōu)點在于對梯度下降優(yōu)化算法的收斂有巨大的加速作用,當(dāng)輸入x小于等于0時,輸出0,當(dāng)輸入x大于0時,才產(chǎn)生輸出,這使得ReLU激活函數(shù)具有一定的稀疏性,這從一定程度上可以使過擬合現(xiàn)象降低。但是ReLU激活函數(shù)也有很大的缺點,比如在運算過程中當(dāng)梯度的變化非常大時,使用ReLU激活函數(shù)后,這個神經(jīng)元就會失去活性,不會被激活。因此,如果這樣的現(xiàn)象頻繁發(fā)生,就會導(dǎo)致數(shù)據(jù)丟失,失去數(shù)據(jù)的多樣性,從而導(dǎo)致生成的圖像質(zhì)量較差或者圖像的多樣性比較差。
SELU激活函數(shù)[22]被提出后,在理論上被證明比ReLU等激活函數(shù)有更多的優(yōu)勢,可以提取到更多的圖像特征,被應(yīng)用到GAN模型中[23],用于生成具有更高分辨率的人臉圖像。SELU激活函數(shù)的圖像如圖3所示。SELU激活函數(shù)包含了ReLU函數(shù)的優(yōu)點,即通過設(shè)置λ略大于1即等于1.050 7時,對于輸入大于0的部分保持非飽和性,即保證了讓某些區(qū)域的斜率是大于1的,意味著當(dāng)梯度變化較小時,通過乘以1.050 7,會使輸入稍微變大,保證對于變化不大的輸入值也使其梯度不會減小得太快或者消失。此外,SELU激活函數(shù)保留了輸入值小于0的計算結(jié)果,從而可以學(xué)習(xí)到更多的圖像特征,從而提高模型的分類精度。
圖3 SELU激活函數(shù)圖像
本文使用BatchNorm層+SELU激活函數(shù)對DCGAN進行改進。SELU激活函數(shù)可以使模型學(xué)習(xí)到更多的圖像特征,從而生成質(zhì)量更好的圖像,提高半監(jiān)督模型的分類精度。加入BatchNorm層是為了使模型學(xué)習(xí)到的數(shù)據(jù)分布在一個穩(wěn)定的區(qū)域,不會出現(xiàn)梯度消失或者爆炸情況,加快收斂速度。
但是在圖3中可以看出SELU激活函數(shù)保留了小于0的部分,這在提供了更豐富的特征的同時,增多了網(wǎng)絡(luò)參數(shù)量,使計算量增加,因此在正向和反向傳播的過程中會相應(yīng)地增長計算時間。所以本文只對DCGAN的生成器引入BatchNorm層+SELU激活函數(shù),圖4顯示了改進后的cDCGAN模型的生成器結(jié)構(gòu)。
圖4 改進后的cDCGAN生成器
(3)cDCGAN模型的損失函數(shù)。在cDCGAN模型中,生成器的損失函數(shù)如式(1)所示,其參數(shù)的含義與原始GAN 模型生成器的損失函數(shù)類似。
Ez~Pz[logDk+1(G(z))]
(1)
式中:z表示隨機噪聲;Ez~Pz表示在分布z上的數(shù)學(xué)期望;D為判別器;G為生成器。由于cDCGAN的判別器的輸出是多維的(圖2),所以該公式中判別器D加了個下標(biāo)k+1,Dk+1(G(x))表示判別器輸入為生成圖像時輸出的第k+1維(最后一維)。
cDCGAN的判別器的損失函數(shù)與原始 GAN 的損失函數(shù)有一定的差別,分為有監(jiān)督損失和無監(jiān)督損失兩部分。其中的無監(jiān)督損失與原始GAN 類似,即對圖像的真或者假判斷即可,不需要加入損失標(biāo)簽。無監(jiān)督損失函數(shù)如式(2)所示。
Lunsupervised=Ex~Pdata(x)[logDk+1(x)]+
Ez~Pz[log(1-Dk+1(G(z)))]
(2)
式中:x表示真實圖像;Ex~Pdata(x)表示在x分布上的數(shù)學(xué)期望,其他符號含義與式(1)相同。
有監(jiān)督學(xué)習(xí)損失要判斷生成遙感圖像的類別,所以以交叉熵的形式給出(式(3))。
(3)
式中:真實數(shù)據(jù)的標(biāo)簽y以獨熱向量(one-hot vector)的形式給出;yi表示標(biāo)簽的第i維;Di(x)表示判別器輸入為真時其輸出的第i維,通過i=0到k的累加將除了最后一維(k+1維)的其他各類別的交叉熵計算出來。
判別器的總損失為無監(jiān)督損失與有監(jiān)督損失之和,如式(4)所示。
(4)
整個模型的優(yōu)化目標(biāo)與通常GAN類似,為最大化判別器D,最小化生成器G,如式(5)所示。
(5)
2)CSSL模型。CSSL模型由cDCGAN和VGGNet-16兩部分組成,如圖5所示。圖中上半部分為生成模型cDCGAN,主要目的是生成大量的無標(biāo)記遙感樣本,擴充遙感數(shù)據(jù)集的不足并對生成樣本進行預(yù)分類。下半部分為分類模型VGGNet-16,主要負(fù)責(zé)對遙感數(shù)據(jù)集進行分類。本文選擇cDCGAN和VGGNet-16作為CSSL模型的組合主要有4個原因。第一,遙感圖像數(shù)據(jù)集中包括的有標(biāo)簽遙感圖像數(shù)量較少,而改進后cDCGAN模型可以生成無標(biāo)簽的遙感圖像,擴增數(shù)據(jù)集用于半監(jiān)督分類。第二,本文提出的CSSL模型需要用到兩個分類器對生成的圖像進行分類,而cDCGAN的判別器恰好可以作為其中的一個分類器對生成圖像進行分類。第三,選擇VGGNet-16是因為相比于cDCGAN模型而言,該模型具有較多的層數(shù),因此非線性因素也較多,可以學(xué)習(xí)到更多的圖像特征,有利于對遙感圖像的特征進行提取。第四,cDCGAN模型的卷積核為5*5,而VGGNet-16模型的卷積核為2*2與3*3,所以對于相同的遙感圖像,兩個網(wǎng)絡(luò)在每個階段都可以學(xué)到不同的特征圖像,使用該半監(jiān)督模型生成大量遙感場景圖像的同時處理標(biāo)記樣本和未標(biāo)記樣本,從而提高分類器的分類性能。因此選擇VGGNet-16和cDCGAN作為兩種不同的分類器很合適。
圖5 基于生成對抗網(wǎng)絡(luò)的半監(jiān)督分類模型(CSSL)
在整個訓(xùn)練過程中,將原始標(biāo)記樣本L劃分為兩個子集:訓(xùn)練集L1和測試集,然后訓(xùn)練該模型。算法包括4個主要步驟。
步驟1:預(yù)訓(xùn)練。在L1上訓(xùn)練VGGNet-16,生成初始模型Mv,使其具有一定的分類能力。
步驟2:cDCGAN生成樣本并預(yù)測標(biāo)簽。用L1作為真實數(shù)據(jù)訓(xùn)練cDCGAN,模型穩(wěn)定后生成的一批無標(biāo)記樣本記為U,并對每個樣本作出預(yù)測記為Pc。
步驟3:擴大訓(xùn)練集。將生成樣本集U送入模型Mv,每個樣本得到一個預(yù)測類別標(biāo)簽Pr及預(yù)測概率,選取概率高且Pc和Pr相同的樣本分配相應(yīng)的類標(biāo)簽,這樣能保證選取的生成樣本與真實樣本的特征分布(或者說分類屬性)相當(dāng)程度上保持一致。然后把這些加了標(biāo)簽的生成樣本添加到訓(xùn)練集L1中,記為L2。使用L2數(shù)據(jù)集更新Mv模型。
南水北調(diào)中線工程配套建設(shè)正在有序進行。長距離輸水管道管材選擇要充分考慮管材性能、施工、壽命、造價等因素。在石油基地和鹽漬土地區(qū)采用涂層隔離和陰極保護技術(shù)的防腐措施,能有效地防止土壤的電化學(xué)腐蝕,不僅保障了輸水管道的安全和耐久性,同時提高了輸水管道使用壽命。在施工過程中應(yīng)嚴(yán)格按照設(shè)計要求和相關(guān)規(guī)范施工,嚴(yán)把關(guān)鍵部位各個環(huán)節(jié)的質(zhì)量關(guān),才能保證管道不漏水,實現(xiàn)質(zhì)量達到優(yōu)良目標(biāo)。
步驟4:多次重復(fù)。在完成步驟3之后,有標(biāo)簽的訓(xùn)練集會增大。如果增加的生成樣本不夠,重復(fù)步驟2和步驟3。
最終形成的訓(xùn)練集可以再反復(fù)訓(xùn)練VGGNet-16分類器。當(dāng)訓(xùn)練好后,用該分類器模型對測試集的樣本進行分類。
為了驗證本文提出的CSSL方法的分類性能,實驗使用了每個圖像大小相同的大型遙感數(shù)據(jù)集NWPU-RESISC45和常用的土地分類數(shù)據(jù)集UC-Merced對CSSL模型的分類效果進行驗證。NWPU-RESISC45是一個數(shù)據(jù)量較大的數(shù)據(jù)集,該數(shù)據(jù)集圖像大小為256像素×256像素,所包含圖像類別是現(xiàn)存的遙感數(shù)據(jù)集中類別最多的數(shù)據(jù)集之一,共有31 500張圖像,可表示為45×700,其中700表示每個類別的數(shù)量,45表示類別數(shù)。UC Merced數(shù)據(jù)集比較小,總量只有2 100張圖像,可表示為21×100,其中21是類別數(shù),100是每個類的包含的圖像。
實驗以TensorFlow-GPU-1.1.4作為框架,處理器型號為i7-8750,顯卡為GeForce GTX 1060。
本文通過生成樣本的質(zhì)量對比、總分類精度對比來分析提出方法的性能。
圖6和圖7分別隨機展示了UC-Merced原始數(shù)據(jù)集和NWPU-RESISC45原始數(shù)據(jù)集與生成圖像中的部分圖像。其中圖6和圖7中的(a)指原始圖像,(b)和(c)分別是CSSL模型訓(xùn)練20 輪和50 輪生成的部分圖像。在圖中可以看出,在模型中的cDCGAN訓(xùn)練了20輪后,生成的假圖像已經(jīng)基本具備了遙感圖像的主要特征信息,由于訓(xùn)練次數(shù)少,所以生成的圖像存在噪聲,還不能清晰地用肉眼識別圖像類別。圖6和圖7中的(c)隨機展示了cDCGAN模型訓(xùn)練50輪后的生成圖像,雖然生成圖像與原始圖像相比還存在一定的差距,但是,與訓(xùn)練20輪的圖像相比,50輪后的圖像明顯更加清晰,也基本具備了與真實圖像相似的特征信息。因此這些生成的圖像可以擴大數(shù)據(jù)集,并具備提高半監(jiān)督模型的分類精度的可能性。
圖6 UC-Merced原始數(shù)據(jù)集與CSSL中生成的部分圖像
圖7 NWPU-RESISC45原始數(shù)據(jù)集與CSSL生成的部分圖像
表1 UC-Merced數(shù)據(jù)集中CSSL與其他方法分類精度對比 %
表2 NWPU-RESISC45數(shù)據(jù)集中CSSL與其他方法分類精度對比 %
本文結(jié)合自訓(xùn)練算法和協(xié)同訓(xùn)練算法的優(yōu)勢設(shè)計了基于生成對抗網(wǎng)絡(luò)的半監(jiān)督分類模型CSSL。該方法不僅能生成大量無標(biāo)簽的樣本,增廣了遙感數(shù)據(jù)集,并且能夠充分利用這些數(shù)據(jù)達到提高分類精度的效果,緩解決了有監(jiān)督分類需要用到大量有標(biāo)簽數(shù)據(jù)的問題。通過UC-Merced以及NWPU-NWPU-RESISC45數(shù)據(jù)集設(shè)計對比實驗對本文提出的CSSL模型進行性能分析。經(jīng)過生成圖像對比實驗以及總分類精度證明了本方法的優(yōu)越性。