劉成君,譚守標,唐志偉,樊 進
(1.安徽大學,合肥 230039;2.中國科學技術大學,合肥 230026)
關鍵字:小樣本;分類;位置編碼;注意力
近年來深度學習在計算機視覺的諸多領域取得了巨大的進步,一方面得益于科技的發(fā)展使得計算能力變強,另一方面則是由于大數據的驅動。但是在計算機視覺的某些領域,數據的獲取和標注是十分困難的,例如醫(yī)學影像分割,瀕危動物分類等任務。人類能夠在僅有幾張圖片作為依據的情況下完成對新樣本的識別任務,受到這一行為的啟發(fā),人們提出了小樣本學習的概念,即在給定大量與目的任務無關的數據中學習一個分類器,使得該分類器在面對新的任務時,也能夠有很好的表現(xiàn)。
為了解決這個問題,大量基于度量學習的方法被提了出來。這些方法通常是使用一個映射函數將輸入圖片映射到特征空間生成其特征表示,再使用合適的度量函數預測其類別。映射函數通常采用卷積神經網絡,提取圖片特征之后經過全局池化得到特征向量。但是該方法將特征信息直接壓縮成一個緊湊的圖片級別的表示,往往會丟失許多判別信息。這些信息在新的類別上可能至關重要,而且這個過程往往是不可逆的。一個直接的方法是取消池化層,生成一個稀疏的特征表示,之后再使用度量函數對其分類。這些方法在計算距離的時候,通常都是兩張圖片對應的位置直接計算距離,并未考慮二者之間局部區(qū)域的語義信息是否相同或者是否具有可比較性。如圖1 所示,位置相同的區(qū)域所表達的信息可能是不同的,甚至是截然相反的,直接計算可能會導致原本類別相同的兩張圖片在特征空間中的距離很遠。

圖1 位置相同處的特征之間表達的信息可能不同
針對上述問題,本文提出了一種基于局部特征描述的位置編碼模塊,該模塊以卷積神經網絡提取的三維特征圖作為輸入,能夠將原本具有固定空間結構的特征表示重新編碼,使得新生成的特征表示在相同位置處具有相同的語義信息,在最后度量兩張圖片的距離時,能夠使具有相同語義的區(qū)域之間相互比較,不至于造成特征信息之間的混亂。
為了更好地突出具有判別性的局部特征,我們提出了一種空間注意力機制,用于處理送入位置編碼模塊的特征圖。該注意力模塊將卷積神經網絡提取的特征作為輸入,通過卷積操作融合周圍位置的特征,輸出每個位置的重要程度,再通過殘差的方法添加到原本的特征圖中,使得具有判別性的區(qū)域得以加強,能夠更好地幫助位置編碼模塊完成分類任務。
為了驗證本文方法的有效性,我們分別在miniImagenet 和CUB-200-2011 上進行了實驗,實驗結果表明該方法有效地提高了小樣本分類的準確度。本文的主要貢獻有以下三點:①創(chuàng)新性地提出了一種可學習位置編碼模塊,能夠有效地完成位置映射,避免最終度量時可能會出現(xiàn)的語義混亂的問題;②將位置注意力與小樣本學習相結合,突出具有判別行的區(qū)域,有效地提高了分類精度;③提出了一種全新的基于局部特征分類的方法。
不同于傳統(tǒng)的分類方法,小樣本分類任務通常在訓練集中生成一系列的任務對模型進行更新。每個任務包含兩部分,分別是類別標簽已知的支持集和類別標簽未知的查詢集,即:=( ),,且和是互斥的。其中支持集包含了個類別,每個類別有個樣本,即N-way K-shot 方法。同樣地,查詢集也包含了個類別,每個類別包含了個樣本。支持集和查詢集分別表示為:


本文方法大致整體結構如圖2所示,共可以分成四個模塊:①特征提取網絡負責將樣本從輸入空間映射到特征空間,生成輸入圖片在特征空間的特征表示;②空間注意力模塊利用特征間的空間關系生成各個局部特征的權重,突出具有判別性的區(qū)域;③位置編碼模塊用于重新排列各個區(qū)域,由于梯度下降算法會使損失最小化,所以隨著訓練的進行,同類別的樣本會被映射成相同的空間分布;④分類器模塊則用于為查詢集中的樣本分配合適的類別標簽。

圖2 網絡結構圖
理論上特征提取網絡可以是任意的,但是由于小樣本分類任務中的訓練樣本有限,網絡過于復雜會導致過擬合。本文使用的是傳統(tǒng)的Conv-64F 網絡,該網絡包含了4 個輸出通道為64 的卷積模塊,每個卷積模塊包含了卷積層、批歸一化層和ReLU 激活層,并且在每個卷積模塊之后連接2 × 2 的最大值池化層對特征圖進行降采樣。與其他方法不同的是,本文的Conv-64F 網絡移除了最后的全局池化層,生成的是一個三維的特征f( )∈R ,其中f表示特征提取網絡,、、分別表示特征圖的維度、高度和寬度。
分類任務的本質是提取具有判別性的特征,抑制無關信息。不同于其他的分類任務,小樣本分類任務中訓練集和測試集的樣本空間是不相交的,所以二者樣本之間的差異性更大,在訓練過程中所抑制的信息對于測試樣本而言可能是十分重要的,過于強調已知樣本上的信息可能會導致過擬合。基于上述的考慮,本文所使用的注意力模塊不同于傳統(tǒng)的方法,并不是在卷積的過程中使用注意力機制加強具有判別性的區(qū)域,而是在卷積網絡提取特征之后強化局部特征。同時,這種方法所引入的參數也更少。方法如圖3所示。

圖3 空間注意力模塊結構圖



在度量兩張圖片級特征時,傳統(tǒng)的方法通常是直接計算兩張圖像相對應的位置的局部特征之間的距離,這樣可能會造成語義信息完全不同的區(qū)域進行比較。Li 等提出的DN4 直接度量每張圖片局部特征之間的距離,并通過比個最相似的區(qū)域來為查詢集樣本分配類別,該方法雖在一定程度上解決了語義混亂的問題,但是引入了大量的計算量。Tang 等曾在CUB數據集上利用姿態(tài)估計進行語義對齊并取得了一定的成果,但是現(xiàn)實中大部分數據并沒有現(xiàn)成的姿態(tài)信息可以使用,所以該方法并不具有普適性。由于無法事先知道特征所處的位置,所以我們設計了一種自動對齊語義信息的方案,通過可學習的參數自動對齊局部特征,如圖4所示。

圖4 位置編碼模塊結構圖


將×個一維向量s重新組成新的三維特征圖',即可獲得對齊之后的特征,上述過程可以描述為:



將對齊的特征通過卷積層進行調整,最終得到位置編碼之后的特征圖:

其中f表示位置編碼模塊。
由于初始的位置編碼模塊的參數是隨機生成的,編碼后的位置具有不確定性,但是由于損失函數的約束和梯度下降算法的原理,在經過一系列的任務訓練之后,為了使損失達到最小,距離相近的模塊會被映射到相同的區(qū)域,即特征圖在經過位置編碼模塊之后,能夠使得具有相同語義特征的區(qū)域相互比較。
為了能夠更好地約束位置編碼模塊中的參數,度量函數和損失函數的選擇至關重要,本文分別嘗試了歐氏距離加交叉熵損失,余弦距離加交叉熵損失和KL 散度損失,使用本文方法在miniImagenet 數據集上進行了實驗,最終選擇了歐式距離加交叉熵損失作為損失函數(實驗結果見表1)。具體方式如下:

表1 不同損失函數對實驗結果的影響
在經過Flatten 函數之后類別的第個樣本在特征空間的表示u∈R,且不同樣本之間一維向量在相同位置處的語義信息是相同的。同大多數方法相同,將類別的所有樣本的特征向量求均值作為該類別的類別中心c:

對于查詢樣本?的特征表示?,根據預先設定的度量函數(本文采用歐式距離)可以得到其類別標簽?為:

本文實驗均是在Ubuntu18.04 操作系統(tǒng)上基于PyTorch 框架完成。在訓練集上隨機生成200000 個任務對模型進行迭代,間隔2000 個任務對模型進行測試,在600個任務取得準確率的平均值作為測試的準確率。在訓練過程中,使用SGD 作為優(yōu)化器,設置初始學習率為0.1,當準確率不再上升時學習率衰減為原來的0.1。送入模型的圖像大小均為84×84,訓練時對樣本隨機進行顏色增強和翻轉,測試時不做處理。
作為Imagenet 的子集,miniImagenet包含了100 個類別,每個類別包含了600 張84 × 84的圖片,共60000張圖片。其中用作訓練、驗證和測試的類別數目分別為64,16,20。本文在設定每個類別查詢樣本= 15 的基礎上,分別從5-way 5-shot 和5-way 1-shot 兩種實驗設定與其他方法進行比較,實驗結果見表2。

表2 miniImagenet數據集上小樣本分類準確度/%
其中Baseline 是本文復現(xiàn)的結果,表示特征提取網絡提取特征之后直接送入分類器所得到的準確度,SA+PC 表示在Baseline 的基礎上加入空間注意力模塊和位置編碼模塊的結果。可以看到本文中的方法相較于原型網絡和匹配網絡等方法在兩種不同的實驗設定上準確度均有大幅提升,說明文中的空間注意力模塊能夠有效地加強局部區(qū)域特征,位置編碼模塊能夠有效地對齊具有相同語義信息的區(qū)域。
CUB-200-2011是Wah等針對細粒度分類提出的數據集,常用于小樣本分類任務。該數據集共包含了11788 張圖片,200 個類別。通常隨機選取100 個類別作為訓練集,50 個類別作為驗證集,50 個類別作為測試集。本文在設定每個類別查詢樣本= 15 的基礎上,分別從5-way 5-shot 和5-way 1-shot 兩種實驗設定與其他方法進行比較,實驗結果見表3。

表3 CUB-200-2011數據集上小樣本分類準確度/%
分析表格可知,在細粒度方面相較于傳統(tǒng)方法,無論是5-way 5-shot 還是5-way 1-shot 的實驗設置上,準確度都有大幅的提升。實驗結果表明,本文提出的方法能夠較好地提升小樣本學習的分類準確度。
為了探究文中各個模塊的作用,本文在保證其他條件與基礎實驗相同的情況下,依次添加文中的模塊,并在miniImagenet 上進行對比實驗,結果如表4 所示。其中Baseline 為卷積網絡(無池化層)提取特征之后直接使用度量函數分類結果。SA 為僅加入空間注意力模塊的結果,PC 為僅加入位置編碼模塊的結果,SA+PC 是組合了空間注意力和位置編碼模塊并加入網絡的結果。

表4 在miniImagenet上添加不同模塊的分類準確度/%
分析表4 可知,加入空間注意力模塊之后,網絡能夠加強具有判別性的局部區(qū)域特征,更好地完成分類。加入位置編碼模塊之后,在兩種實驗設定上的分類結果均有大幅提升,可以說明在經過位置編碼之后能夠使得具有相同語義信息的區(qū)域之間進行比較,更好地完成分類。而在結合兩個模塊之后,在5-way 5-shot的實驗設定上準確率更是提高了4.43%,充分證明文中方法能夠更好地完成小樣本分類。
在位置編碼模塊中,為了更好地進行位置編碼,我們引入了超參數n來確定對原始特征圖進行位置映射的次數,為了探究超參數n 的影響,我們在保證其他條件相同的情況下,僅改變n 的大小在5-way 5-shot 的設定下進行實驗。實驗結果如表5所示。

表5 在miniImagenet上不同位置映射次數的分類準確度/%
可以看到,在加入了位置編碼模塊的兩組對照實驗中,適當的增加位置映射的次數可以有效地對齊具有相同語義信息的區(qū)域,但是映射次數過大反而會導致準確率下降,其原因可能是由于網絡過于復雜引起過擬合現(xiàn)象所致。
本文針對在小樣本分類任務中直接計算圖片級特征可能會出現(xiàn)的不同語義信息之間相互比較的問題,提出了一種基于局部信息的位置編碼網絡。不同于之前的方法,本文沒有復雜的計算模塊,創(chuàng)新性地提出了一種可學習的模塊,并通過端到端的方法更新參數。該網絡在加強局部具有判別性的特征之后,對局部特征的位置進行重新編碼,使得重新編碼后的特征圖在相同的位置處具有同樣的語義信息。最后在不同網絡和不同數據集上進行對比實驗,結果表明,本方法能夠有效地對齊不同區(qū)域之間的特征,從而提升分類的準確度。