赫曉慧 李志強 李盼樂 田智慧 周廣勝,3
1(鄭州大學地球科學與技術學院 河南 鄭州 450052) 2(鄭州大學信息工程學院 河南 鄭州 450001) 3(中國氣象科學研究院鄭州大學生態氣象聯合實驗室 河南 鄭州 450052)
隨著對地觀測和遙感技術的迅速發展,高分辨率數據成為重要的信息來源,比傳統圖像包含更多的結構化和統一的數據,對高分遙感數據的挖掘應用在社會經濟、政治、國防等方面建設中的重要性日益凸顯。遙感影像分類是指根據遙感影像的內容,自動為每個遙感影像像素分配一個特定的語義標簽,由于其在土地利用、城市規劃、土地資源管理等方面的重要應用,已成為遙感圖像解譯領域的一個重要的研究內容[1-4]。
近年來,隨著深度學習方法的普及,在包括圖像分類[5]、對象識別[6]和語義分割[7]在內的許多應用中取得了矚目的成績。深度學習模型可以通過深層架構神經網絡來學習更強大、抽象和有區別的功能,而無需大量的工程技能和領域專業知識。所有這些深度學習模型,尤其是卷積神經網絡(CNN),更適用于遙感圖像分類并取得優異的結果[8-21]。
盡管基于CNN的方法已大大提高了分類準確性,但是依然沒有解決遙感影像分類中類不平衡問題,即樣本比例不平衡和難易樣本不平衡。樣本比例不平衡是指在一個數據集中,一個類的樣本很少,即少數類,另一類樣本很多,即多數類[22-24]。在遙感影像分類問題中,類別的樣本比例存在嚴重不平衡性,例如背景、道路和建筑物三分類時,背景像素占絕大多數,道路和建筑物占比較小。以馬薩諸塞州數據集中1 108幅訓練集為例,道路像素平均比例為4.77%,最小占比不到1%,最大也不過20%。難易樣本數量不平衡是遙感影像分類中固有的問題。困難樣本是指難以分類像素,例如,被樹木遮擋的道路像素;簡單樣本就是可以輕松分類的像素。傳統的分類模型給予難易樣本相同的誤分類代價,包含較多簡單樣本的類別對整體損失值會起到決定性的影響,而含有較少困難樣本的類別對損失的影響微乎其微,其必然導致模型傾向于含有較多易分訓練樣本的類別進行預測。遙感影像包含豐富的目標信息,不同樣本比例差距更大,而且相互遮擋嚴重,所以解決遙感影像分類中類不平衡問題是至關重要的。
代價敏感學習是從算法層面解決不平衡問題的主要方法。Kukar等[25]表明,將代價信息納入損失函數可以提高性能。但是,它們的代價是在網絡的多個運行中隨機選擇的,并且在每次運行的學習過程中保持不變。Chung等[26]提出了一個新的CoSen損失函數,用回歸損失代替了傳統的Softmax,但是該損失函數存在當網絡加深使梯度減小的問題,不適用于深度神經網絡。Khan等[27]提出了CoSen卷積神經網絡,同時對網絡的參數和cost參數進行優化,并在多種經典損失函數(MSE loss,SVM loss,CE loss)上進行實驗,提升了卷積神經網絡的分類準確度,有效地解決了樣本不平衡的問題,但是沒有考慮到簡單樣本和困難樣本的關系。
以上方法證明代價敏感學習對解決類不平衡問題的有效性,但是都還存在著一些不足,并且沒有應用到遙感影像分類困難樣本中。為了解決遙感影像分類中類不平衡問題,本文將代價敏感學習與深度學習相結合,提出自適應樣本特征的代價敏感遙感影像分類算法(SCoSen-CNN)。算法的核心思想是:首先,分別為每個類分別建立損失函數,同時對損失函數添加自適應正負樣本平衡因子,降低樣本不平衡問題對分類模型精確度的影響,加速模型參數的自動更新。然后引入誤分類代價矩陣,不同誤分類給予不同的誤分代價,增加模型對困難樣本的學習能力,在一定程度上緩解了不平衡數據對模型分類的影響。并且提出一種用于聯合交替優化網絡參數和類別代價敏感因子的算法。本文算法適用于不平衡遙感影像二分類和多分類問題。
在為了解決遙感影像分類任務中數據不平衡問題,本文提出一種自適應樣本特征的代價敏感損失函數,將該損失函數引入到卷積神經網絡(CNN)中,以構建成代價敏感的卷積神經網絡,可以有效地解決遙感影像分類任務中數據不平衡問題,最后通過代價敏感的卷積神經網絡的分類結果即為最終的分類結果。具體的算法流程如圖1所示。

圖1 本文算法總體流程
SCoSen首先在訓練階段對各個類分別建立損失函數,計算每一個類別的平均誤差,將所有類的平均損失值相加,并且對訓練樣本進行特征統計,根據統計的結果損失函數進行動態加權(u),最終的損失值由每個類加權損失的平均值相加構成,以解決樣本不平衡問題。然后在CNN的輸出層和損失層之間增加代價敏感層,利用代價矩陣ξ對模型的輸出賦予不同的誤分類代價,從而解決困難樣本與簡單樣本不平衡的問題。
遙感影像分類使用損失函數通常定義如下:
(1)
式中:y(i)(w,b)是模型第i個樣本的預測輸出;w、b是網絡權重和偏差;M是訓練樣本總數;d(i)∈{0,1}1×N是第i個樣本標簽,N表示輸出層中神經元的總數,即類別數。
該函數可以表示為訓練集的平均損失,其中,l(*)可以是任何合適的損失函數,如均方誤差(MSE)、交叉熵損失函數(CE)等,本文中使用的是交叉熵損失函數,如式(2)所示。
(2)
CNN模型在訓練集上表現不佳時,會造成更大的誤差。學習算法的目的是找到最優參數(w*,b*),該參數給出最小的可能成本E*。因此,優化目標為:
(3)
遙感影像中類別的樣本比例存在嚴重的不平衡性,傳統的損失函數無法區分易分樣本和稀有樣本,較多的樣本造成大量的損耗,導致模型傾向于簡單樣本學習,而忽略了稀有困難樣本。
針對遙感影像訓練集中樣本比例不平衡問題,本文將每個類別的損失分別考慮,分別構建一個損失函數,然后計算每一個類別的平均誤差:
(4)

然后將所有類的平均損失值相加,最終的損失值由每類損失的平均值相加構成,以減小不同類別之間訓練樣本數量不平衡性的影響,平均類別損失如式(5)所示。
(5)
同時,通過原始(訓練)數據集中的原始類比例,在損失函數的計算中添加自適應樣本特征的權重,將式(5)改進為自適應樣本特征的加權交叉熵損失函數(SCE)。其中權重u定義如下:
(6)
式中:N是初始數據集中的類數;un是第n類樣本所添加權重;pn是初始數據集中第n類樣本占總樣本的比例。式(7)展示了自適應樣本特征的加權損失函數:
un∈U(D)
U(D)=(u1,u2,…,uN)
(7)
式中:每個類的權重un從包含權重的權重U(D)集合中獲取,權重U(D)在學習過程開始時針對初始數據集D計算得出,不需要通過大量的實驗進行調整,并且適應隨著訓練過程變化而變化的數據分布。
SCE通過對每個類都建立損失函數,并且添加權重調節因子,最終的損失值由每個類的加權損失的平均值相加構成。盡管SCE平衡了樣本比例,但它并未區分簡單/困難樣本。本文將SCE函數重塑為輕量化簡單樣本損失,從而將訓練重點放在稀有困難樣本上。
針對遙感影像分類中困難樣本與簡單樣本不平衡問題,本文將代價敏感學習應用到深度學習中,使不同類別之間發生誤分類獲得不同的懲罰代價,將SCE改進為自適應樣本特征的代價敏感(SCoSen)損失函數:
(8)

傳統代價矩陣通常具有以下形式:
(9)

(10)
這種代價矩陣可能將相應的損失增加到很大的值。在CNN訓練期間,這種網絡損失可能使訓練過程不穩定,并可能導致誤差函數不收斂。本文使用替代的代價矩陣。
相較于SCE,SCoSen-CE給激活值乘以一個代價矩陣的代價向量,將誤分類代價考慮在內。不僅通過原始(訓練)數據集中的原始類比例,在計算中添加自適應樣本特征的權重,平衡了訓練集的樣本比例,而且可以區分簡單和困難樣本,減少了簡單樣本的損失值,將訓練的重點放在了分類困難的稀有樣本上。接下來給出本文使用的代價矩陣。
本文使用一個適合于卷積神經網絡(CNN)訓練的代價矩陣ξ。代價矩陣ξ用于修改CNN最后一層的輸出(在Softmax層和Loss層之前),如圖2所示。然后在計算分類損失之前將得到的激活值(activate)壓縮在[0,1]之間。

圖2 訓練過程中使用的CNN參數(θ)與類相關 代價矩陣(ξ)和權重(w)的關系
對于CNN,分類決策是針對具有最大分類得分的類別做出的。在訓練過程中,修改分類模型權重以重塑分類模型的置信度(分類概率),使所需分類具有最大分數,而其他分類具有明顯較低的分數。由于較少的類別在訓練集中所占的比例不足,因此引入了分數級代價(score-level costs),以加強對比例小的類別進行正確分類。因此,根據函數(F)使用代價矩陣ξ修改CNN輸出(o),計算如下:
(11)
式中:y表示修改后的輸出;p是所需的類;F:R→R表示一個函數,其確切定義取決于損失層的類型。類的代價會擾亂分類模型的置信度,這種擾動可以使分類模型將重點放在數量少且難以分離的類上。引入的代價矩陣具有以下的性質:
(1) 所有與代價無關的損失函數的代價矩陣ξ是全1矩陣,即1p×p。
(2) 代價矩陣ξ中的所有代價均為正,即ξ>0,并且使其所有值都在(0,1]范圍內,即ξp,q∈(0,1)。
新的代價矩陣的形式如下:
(12)
與傳統代價矩陣不同的是,本文中的代價因子N不是一個人工判別的固定值,而是利用類對類(c2c)的可分離性,通過估計類內樣本與類間樣本之間的差異來衡量,不需要人工對代價矩陣進行判別,并且使用聯合優化算法,在模型迭代的過程中不斷地對代價因子進行優化,以得到合適的代價因子N。
根據以上描述的性質,本文引入的代價矩陣ξ既不會過度增加CNN輸出激活,也不會將其減少為零輸出值。并且可以實現平穩的訓練過程,從而可以正確更新模型參數。
當使用SCoSen-CE時,由于平衡因子u可以通過訓練樣本自適應調節,所以CNN的目標是共同學習參數θ和與類相關的損失函數參數ξ。對于聯合優化,本文通過保持一個參數固定不變并使另一個參數最小化代價來解決這兩種參數優化,如算法1所示。具體來說,為優化θ,我們使用隨機梯度下降和誤差的反向傳播。接下來,為優化ξ,再次使用梯度下降算法計算更新參數。與類相關的損失函數參數ξ還取決于類-類(class-to-class)的可分離性,即使用當前的參數網絡估計CNN所產生的分類誤差以及總體分類誤差。類對類(c2c)的可分離性是通過估計類內樣本與類間樣本之間的差異來衡量的。換句話說,它測量同類樣本之間的距離與不同類之間分隔邊界的大小之間的關系。
算法1參數(θ,ξ)的迭代優化
輸入:訓練集(x,d),驗證集(xv,dv),最大迭代值(MeP),θ的學習率(γθ),ξ的學習率(γξ)。
輸出:參數學習(θ*,ξ*)。
1.Net←construct_CNN()
2.θ←initialize_Net(Net)
//隨機初始化
3.ξ←1,val-err←1
4.fore∈[1,MeP]do
//迭代次數
5.gradξ←compute-grad(x,d,F(ξ))
6.ξ*←update-CostParams(ξ,γξ,gradξ)
7.ξ←ξ*
8.forb∈[1,B]
//樣本訓練次數
9.outb←forward-pass(xb,db,Net,θ)
10.gradb←backward-pass(outb,xb,db,Net,θ,ξ)
11.θ*←update-NetParams(Net,θ,γθ,gradb)
12.θ←θ*
13.endfor
14.val-err*←forward-pass(xv,dv,Net,θ)
15.ifval-err*>val-errthen
16.γξ←γξ*0.01
//梯度下降速度
17.val-err←val-err*
18.endif
19.endfor
20.return(θ*,ξ*)
為了計算c2c之間的可分離性,首先計算cP類中的每個點與其所屬的cP的最近鄰居和cq類中的最近的鄰居之間的距離。類間距離通過特征空間中計算,其中每個點都是4 096維特征向量(fi:i∈[1,N′],N′是屬于cP類的樣本)從倒數第二個CNN層(在輸出層之前)獲得。然后,為一個類中的每個像素點找到類內距離與類間距離的平均值,并計算平均值的比率以找到c2c可分離性指數。兩個類p和q之間的類可分離性定義為:
(13)
式中:dintraNN(fi)為類間距離;dinterNN(fi)為類內距離。
為了避免過度擬合并證明該步驟在計算上可行,本文在一個小的驗證集上測量c2c可分離性。而且,發現c2c的可分離性與每個階段的混淆矩陣相關。因此,本文在每十個周期之后計算一次,以最大限度地減少計算開銷。這表明類別相關代價(ξ*)的最佳參數值不應與訓練數據分布中類別的頻率相同。以下代價函數用于梯度計算以更新ξ:

(14)
式中:Eval是驗證誤差。矩陣T定義如下:
(15)
式中:μ和σ表示參數,分別為使用交叉驗證的集合;R表示當前的分類錯誤作為混淆矩陣;S表示c2c類可分離性矩陣;H表示使用直方圖向量h定義的矩陣,該矩陣對訓練集中的類的分布進行編碼。矩陣H和向量h的聯系如下:
(16)
式中:c是給定數據集中所有類的集合。最優ξ*的最小化目標可以表示為:
(17)
使用梯度下降算法優化式(15)中的代價函數,該算法計算更新步驟的方向如下:
-(va-vb)1T
(18)
式中:va=vec(T);vb=vec(ξ);J表示雅可比矩陣。為了合并F(ξ)對驗證誤差Eval的依賴性,僅在Eval減小時才采取更新步驟。
為了驗證所提出損失函數的有效性,建立類不平衡的高分辨率遙感影像數據集。如圖3所示,數據集覆蓋了津巴布韋的多個城市、郊區和農村的遙感影像,包括原影像以及各自影像目標的標簽影像,有道路和建筑物兩類目標樣本,統計數據集192幅訓練樣本。通過對該數據集每幅影像的像素和平均像素統計發現,單幅影像中背景占有50%以上的像素,平均占比高達80%,而道路和建筑物最大的占比也只有30%,最小不足1%,平均占比只有10%左右,如表1所示,樣本之間的比例是極其不平衡的。該數據集的原影像分辨率非常高,分辨率為0.28 m,而且遙感影像來源于開源的Bing地圖和OSM的矢量數據,可以根據需要自由地進行擴展。

表1 不同數量下各類平均像素占比(%)
該數據集提供了233幅圖像,圖片為1 500×1 500像素的RGB影像,地面分辨率約為0.28 m,分為建筑物和道路兩個數據類,有大量的建筑物和清晰的道路數據。數據集包含訓練集192幅衛星照片及其對應標注圖,測試集41幅衛星照片及其對應標注圖,驗證集5幅衛星照片及其對應標注圖,每一幅衛星照片中都包含有道路目標。圖3給出該數據集的目標信息。

圖3 數據集展示
網絡的訓練采用了數據集中訓練集和對應標注圖,并且通過數據增強的方法對數據集進行擴充,將原始圖片從1 500×1 500像素縮放為92×92像素及對應的24×24像素的標注圖,使用其測試集共41幅影像及其標注圖對本文提出的損失函數性能進行評估。
在遙感影像目標檢測中,正樣本類別的實例很少,負樣本類別過多可能會影響模型評估表現。由于錯誤率不能很好地評價樣本不平衡的數據集,所以本文采用準確率(accuracy)、召回率(recall)、F1-score和精度(precision)進行衡量:
式中:FN是正樣本判定為負樣本;FP是負樣本被判定為正樣本;TN是負樣本被判定為負樣本;TP是正樣本被判定為正樣本。
VGGNet使用了3個3×3卷積核來代替7×7卷積核,2個3×3卷積核來代替5×5卷積核。在保證具有相同感知野的條件下,提升了網絡的深度,多層的激活層具有更好的非線性表達能力,并且減少了網絡的參數,在一定程度上提升了神經網絡的效果,大大延長了訓練時間。為了驗證方法的有效性,本文提出一個深度卷積神經網絡VGA來學習用于圖像分類任務的魯棒性特征表示。網絡結構如圖4所示,該網絡受啟發于VGGNet,不同的是,為了加速收斂與避免參數過多引起的過擬合問題,本文的網絡在輸出層和提出的SCoSen損失層之前只有一個的全連接層。

圖4 VGA網絡結構
本文使用VGG16[28]的預訓練模型初始化模型的前16層,并為最后全連接層設置隨機權重。然后,以相對較高的學習率訓練整個網絡,以得到最優的網絡參數。并且使用本文介紹的修改后的自適應樣本特征的代價敏感損失函數(SCoSen-CE)對網絡進行訓練。
本文以代價敏感的交叉熵損失函數結合卷積神經網絡VGA為基礎的遙感影像多目標分類,在VGA實驗中,分別使用交叉熵損失函數(CE)、SCE、CoSen-CE、Focal loss和SCoSen-CE進行實驗,取得了良好的實驗結果,驗證了本文方法的有效性。并且通過可視化和數值兩個方面進行結果的分析,證明本文方法的有效性。
2.4.1對比實驗結果分析
在正負樣本不平衡的遙感影像數據集下,通過CE、SCE、CoSen CE、Focal loss[29]和SCoSen CE等方法進行對比,證明了SCoSen CE良好的性能。
使用建立的高空間分辨率數據集的41幅測試圖片進行測試,所得結果指標如表2和表3所示。

表2 不同方法的道路提取結果對比

表3 不同方法的建筑物提取結果對比
由于本文方法使用基于自適應樣本特征的代價敏感性的交叉熵損失函數,使得訓練中的遙感影像正負樣本比例更加平衡。同時在訓練的過程中,根據樣本的比例自適應地進行調節因子的優化,所以更加適合道路和建筑物的特征提取,從而降低了背景的學習概率,使得道路和建筑物的特征提取結果更好。從表2和表3中可以看出,在不使用代價敏感的交叉熵損失函數的情況下,VGA網絡對道路檢測的F1值為88.5%,對建筑物檢測的F1值為85.4%,在引進SCE、CoSen-CE和Focal loss之后,使得道路的F1達到了90.6%、90.2%和90.8%,分別提高了2.1百分點、1.7百分點和2.3百分點,建筑物的F1值達到了86.7%、88.2%和88.2%,分別提高了1.3百分點、2.8百分點和2.8百分點,證明了CoSen-CE對于遙感影像中多目標檢測是有效的。
引入SCoSen-CE進一步提高了對道路和建筑物網絡的提取能力,使得道路和建筑物的F1值達到了91.1%和89.5%,分別提高了2.6百分點和4.1百分點,除了結果指標有所提升,道路和建筑物邊緣區域預測的置信度也顯著高于CE、SCE、CoSen-CE和Focal loss,證明了對損失函數的改進可以改善類不均衡帶來的影響。
為了更好地體現出本文方法在細節的表現能力,使用四幅分類結果的可視化圖進行對比。如圖5所示,CE方法存在許多誤檢測區域,錯誤點明顯多于SCE、CoSen-CE、Focal loss和SCoSen-CE。相較于對照方法,本文方法所得結果錯誤點較少,且道路結構和建筑物清晰完整。本文方法分辨率高,較好地保存了道路和建筑物的結構細節信息,因而能夠有效避免周圍背景環境干擾,準確地提取道路結構。可以看出,本文方法在結果的準確性方面優于其他方法。并且通過表4和表5可以看出,本文方法與CE、SCE、CoSen-CE和Focal loss相比有較好的提升。


圖5 道路和建筑物提取結果的可視化對比

表4 可視化圖中使用不同方法的道路提取結果對比

表5 可視化圖中使用不同方法的建筑物提取結果對比
2.4.2P-R曲線分析
深度學習網絡在應用階段不需要預設閾值參數,為了證明本文方法具有很強的魯棒性,在不同的情況下依然可以使用,并且具有較好提取效果,本文還使用設置閾值的方法,選取在不同閾值的情況,進行道路和建筑物的目標檢測,并且對結果進行P-R曲線的繪制,如圖6和圖7所示。

圖6 建筑物不同閾值下的P-R曲線

圖7 道路不同閾值下的P-R曲線
其中,閾值為α=0.1,0.2,…,0.9,通過圖6和圖7中的P-R曲線可以看出,在不同的閾值下,SCoSen-CE的提取效果依然要優于CE、SCE、CoSen-CE和Focal loss,這也說明本文方法具有一定的魯棒性,在不同的閾值下也能達到較好的提取效果。
針對遙感影像分類中數據不平衡的問題,改進交叉熵損失函數,提出適用于多分類的自適應樣本特征的代價敏感交叉熵損失函數(SCoSen-CE)。為了驗證該損失函數的有效性,建立類不平衡的遙感影像數據集,并且在該數據集與CE、CoSen-CE和Focal loss進行實驗對比。
實驗表明,SCoSen-CE在Recall、Precision和F1-score指標上均表現優異,所提取道路和建筑物結構完整清晰,且具有良好的適應性能,可以有效地解決遙感影像分類中類不平衡問題。為了驗證本文方法的魯棒性,本文還是使用預設閾值參數的方法,并通過P-R曲線表明在不同閾值的情況下,本文方法依然具有良好的性能。