摘要--針對HSI分類任務(wù)樣本不足的問題,提出了一種deep few-shot小樣本學(xué)習(xí)方法饱亮。該算法有三種新的策略:
- 利用深度殘差三維卷積神經(jīng)網(wǎng)絡(luò)提取光譜-空間特征贺喝,降低標(biāo)記的不確定性跑杭。
- 網(wǎng)絡(luò)通過情景訓(xùn)練來學(xué)習(xí)一個度量空間嚷那,其中來自同一個類的樣本比較接近,而來自不同類的樣本比較遠压真。
- 利用在度量空間中學(xué)習(xí)到的最近鄰分類器對測試樣本進行分類娩嚼。
該想法的關(guān)鍵是:設(shè)計了網(wǎng)絡(luò)在訓(xùn)練集上學(xué)習(xí)了度量空間。此外滴肿,這種度量空間可以推廣到測試集的類中岳悟。實驗結(jié)果表明,該方法與傳統(tǒng)的半監(jiān)督方法相比,在只有少量標(biāo)記樣本的情況下贵少,可以獲得更好的分類精度呵俏。
01. Introduction
在HSIs中,收集有標(biāo)記的樣品通常是費時費力的滔灶。相比之下普碎,未標(biāo)記的樣本更容易獲得。這一事實促進了半監(jiān)督學(xué)習(xí)的概念宽气,它可以聯(lián)合利用標(biāo)記和未標(biāo)記的樣本來處理維數(shù)災(zāi)難的問題随常。
本文受few-shot learning的啟發(fā)潜沦,具體來說萄涯,CNN模型被用來訓(xùn)練學(xué)習(xí)一個度量空間。換句話說唆鸡,在數(shù)量充足涝影、與目標(biāo)數(shù)據(jù)集(我的理解是測試集)不同的具有標(biāo)簽的數(shù)據(jù)集上,訓(xùn)練一個CNN模型來提取泛化的特征争占。一旦訓(xùn)練完成燃逻,模型可以從較小的標(biāo)記目標(biāo)數(shù)據(jù)集(測試集)中提取特征。
本文提出一種 deep few-shot learning(DFSL)來對標(biāo)注較少的HSI數(shù)據(jù)進行分類(每個類只有五個標(biāo)記樣本)臂痕,該方法可以分為三個部分:
- 從訓(xùn)練集中訓(xùn)練學(xué)習(xí)一個度量空間(metric space)伯襟,然后采用歐氏距離在度量空間中去分離不同的類。
由于深度CNN模型具有很強的非線性表達能力握童,可以以端到端的方式進行訓(xùn)練姆怪,所以用深度三維CNN (D - 3D CNN)對度量空間進行參數(shù)化。優(yōu)化損失函數(shù)的目的是使網(wǎng)絡(luò)學(xué)習(xí)一個度量空間澡绩,在這個度量空間中的樣本特征具有較小的類內(nèi)間距和較大的類間間距稽揭。為了更好地訓(xùn)練D - 3D CNN,還引入了殘差學(xué)習(xí)肥卡。因此溪掀,最后用深度殘差三維CNN (d - res - 3d CNN)對度量空間進行參數(shù)化。一旦學(xué)習(xí)了網(wǎng)絡(luò)步鉴,就可以把它看作是一個嵌入函數(shù)揪胃。 - 利用預(yù)先訓(xùn)練好的D - 3D CNN提取測試數(shù)據(jù)集中所有樣本的特征
- 使用簡單的最近鄰算法(nearest neighbor)對測試樣本進行分類
本文的主要貢獻如下:
- 提出了一種DFSL方法,通過訓(xùn)練網(wǎng)絡(luò)學(xué)習(xí)一個度量空間氛琢,使同一類的樣本彼此接近喊递。重要的是,這種度量空間將對訓(xùn)練中沒有出現(xiàn)的類執(zhí)行相同的操作艺沼。因此册舞,利用神經(jīng)網(wǎng)絡(luò)分類器可以完成對測試數(shù)據(jù)集的分類。
- 使用深度三維CNN對度量空間進行參數(shù)化障般。此外调鲸,為了更好地訓(xùn)練網(wǎng)絡(luò)盛杰,引入了殘差學(xué)習(xí)。這種深度殘差的三維CNN不需要任何預(yù)處理就可以直接從數(shù)據(jù)集中提取光譜空間特征藐石。
- 在4個著名的HSI數(shù)據(jù)集上進行了實驗即供,實驗結(jié)果表明,該方法可以在只有少量標(biāo)記樣本的情況下優(yōu)于傳統(tǒng)的半監(jiān)督方法于微。
02. 方法理論介紹
一般來說逗嫡,由于參數(shù)空間和少量的標(biāo)記樣本之間的不平衡,僅僅使用少量的樣本來訓(xùn)練一個深度神經(jīng)網(wǎng)絡(luò)是很有挑戰(zhàn)的一項任務(wù)株依。使用標(biāo)準(zhǔn)的優(yōu)化技術(shù)很大可能會導(dǎo)致過擬合現(xiàn)象的發(fā)生驱证。從人的角度考慮一個問題:人可以從很少的樣本中學(xué)習(xí)到知識來解決現(xiàn)實中遇到的問題。從中受到啟發(fā)恋腕,我們可以先為網(wǎng)絡(luò)制造一些先驗知識抹锄,也就是本文講的度量空間。
2.1 深度少樣本學(xué)習(xí)與訓(xùn)練策略
為了學(xué)習(xí)到的度量空間適合于少樣本分類任務(wù)荠藤,本論文使用被稱為eposodes
的小樣本取樣來模擬少樣本學(xué)習(xí)任務(wù)伙单。度量空間可以看作是一個用深度神經(jīng)網(wǎng)絡(luò)參數(shù)化的嵌入函數(shù)。換句話說哈肖,使用深度神經(jīng)網(wǎng)絡(luò)通過一個具有可學(xué)習(xí)參數(shù)的嵌入函數(shù)
來計算每個類的表示吻育,其中D表示網(wǎng)絡(luò)輸入的維數(shù),M表示網(wǎng)絡(luò)輸出的維數(shù)淤井。
隨機選擇來自訓(xùn)練集中每一類的子集當(dāng)作episode
來計算梯度和更新網(wǎng)絡(luò)布疼。如圖所示,選擇每個類內(nèi)的子集當(dāng)作support set庄吼,將選剩下的樣本當(dāng)作query set缎除。在本文中,每個類選擇一個樣本當(dāng)作support set來模擬在測試集中小樣本分類的情況总寻。support set和query set當(dāng)作網(wǎng)絡(luò)的輸入來提取嵌入特征(embedding feature)器罐。query set中的樣本x屬于哪一類是softmax函數(shù)根據(jù)x在嵌入空間(度量空間)對于support set中樣本的距離來計算的:
其中表示support set中第
類的嵌入特征,
表示query set中樣本的嵌入特征渐行,y是
的標(biāo)簽轰坊,
是歐幾里德距離函數(shù)。損失函數(shù)定義為真實類k的負(fù)對數(shù)概率祟印,使用隨機梯度下降(SGD)的方法
2.2 Deep 3-D CNN
2.2.1 3-D 卷積
http://www.reibang.com/p/1247ff367586
2.2.2Residual Learning(殘差學(xué)習(xí))
參考
https://www.imooc.com/article/44047
https://www.cnblogs.com/alanma/p/6877166.html
http://www.reibang.com/p/09643588f373
研究直接表明訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)失敗的原因并不是梯度消失肴沫,而是權(quán)重矩陣的退化,當(dāng)網(wǎng)絡(luò)層數(shù)達到一定的數(shù)目以后蕴忆,網(wǎng)絡(luò)的性能就會飽和颤芬,再增加網(wǎng)絡(luò)的性能就會開始退化,但是這種退化并不是由過擬合引起的,因為我們發(fā)現(xiàn)訓(xùn)練精度和測試精度都在下降站蝠,這說明當(dāng)網(wǎng)絡(luò)變得很深以后汰具,深度網(wǎng)絡(luò)就變得難以訓(xùn)練了。
ResNet的出現(xiàn)其實就是為了解決網(wǎng)絡(luò)深度變深以后的性能退化問題菱魔。
深度殘差網(wǎng)絡(luò)留荔。如果深層網(wǎng)絡(luò)的后面那些層是恒等映射,那么模型就退化為一個淺層網(wǎng)絡(luò)澜倦。那現(xiàn)在要解決的就是學(xué)習(xí)恒等映射函數(shù)了聚蝶。 但是直接讓一些層去擬合一個潛在的恒等映射函數(shù)H(x) = x,比較困難藻治,這可能就是深層網(wǎng)絡(luò)難以訓(xùn)練的原因碘勉。但是,如果把網(wǎng)絡(luò)設(shè)計為H(x) = F(x) + x栋艳,如上圖恰聘,我們可以轉(zhuǎn)換為學(xué)習(xí)一個殘差函數(shù)F(x) = H(x) - x. 只要F(x)=0句各,就構(gòu)成了一個恒等映射H(x) = x吸占。
(不是很理解這段話)
而且shortcut連接相當(dāng)于簡單執(zhí)行了同等映射,不會產(chǎn)生額外的參數(shù)凿宾,也不會增加計算復(fù)雜度矾屯。 而且,整個網(wǎng)絡(luò)可以依舊通過端到端的反向傳播訓(xùn)練初厚。訓(xùn)練過程中的潛在誤差可以通過快捷方式傳遞到上層件蚕,從而緩解了層數(shù)過多導(dǎo)致梯度消失/爆炸的問題,簡化了深度網(wǎng)絡(luò)的訓(xùn)練
2.2.3 網(wǎng)絡(luò)架構(gòu)
如上圖所示产禾,設(shè)計了一個深度三維CNN作為嵌入函數(shù)排作,其中包含兩個殘差塊,兩個池化層亚情,一個卷積層作妄痪。Conv表示具有3×3×3內(nèi)核的三維卷積層。池化表示步長為2×2×4的3D最大-池化函數(shù)楞件,采用ReLU作為激活函數(shù)衫生。
在上圖中,虛線框是一個殘差塊土浸。池化層將導(dǎo)致shotcut和主路徑的維度不同罪针。因此,在殘差塊中不使用池化層黄伊。而且泪酱,每個殘差塊都與一個3D最大-池化層連接,以減少計算、聚合特性墓阀。由于輸入立方體的高光譜維數(shù)愈腾,將其沿光譜維數(shù)的步長設(shè)為4,沿空間維數(shù)的步長設(shè)為2岂津。最后虱黄,將特征映射平鋪成一維向量。設(shè)計的深三維CNN采用算法1所示的策略進行訓(xùn)練吮成。以這種方式橱乱,所設(shè)計的網(wǎng)絡(luò)可以學(xué)習(xí)度量空間,其中具有相同類的樣本彼此接近粱甫。
2.3 使用最近鄰算法進行分類
測試數(shù)據(jù)集的分類主要包括三個步驟:
- 通過預(yù)訓(xùn)練的深度殘差3-D CNN提取嵌入特征;
- 計算標(biāo)記樣本與待分類樣本之間的歐式距離;
- 通過最近鄰NN分類器確定最終標(biāo)簽泳叠。
實際上,所設(shè)計的深度殘差三維CNN可以看作是經(jīng)過訓(xùn)練后的一種嵌入函數(shù)茶宵。在測試數(shù)據(jù)集的分類過程中危纫,所有樣本都通過預(yù)先訓(xùn)練好的深度殘差3d CNN進行輸入,提取特征乌庶。然后隨機選取幾個有標(biāo)記的樣本作為監(jiān)督樣本种蝶。經(jīng)過訓(xùn)練的網(wǎng)絡(luò)使得相似的樣本在嵌入空間中彼此接近。因此瞒大,通過簡單的神經(jīng)網(wǎng)絡(luò)分析螃征,可以對測試樣本進行分類,如圖6所示透敌。需要注意的是盯滚,培訓(xùn)數(shù)據(jù)集和測試數(shù)據(jù)集是相互獨立的。最后酗电,將測試樣本標(biāo)簽生成的分類圖與groundtruth圖進行匹配魄藕,對不同的分類方法進行評估。