天天看點

論文閱讀筆記《Dense Classification and Implanting for Few-Shot Learning》

小樣本學習&元學習經典論文整理||持續更新

核心思想

  本文是對基于度量學習的小樣本學習算法進行改進。常見的度量學習算法通常利用一個嵌入式網絡對圖像進行特征提取,然後利用一個線性分類器進行分類。在訓練過程中得到的線性分類器權重可以看作對應每個類别的權值(class weights),在測試時,就比較查詢圖像對應的特征值與每個類别權值之間的相似性,并以此進行分類預測。二維圖像經過特征提取後得到的特征資訊是高維的張量,是以通常需要壓縮次元,以便于計算相似性。常見的壓縮次元的方式有兩種:壓平(Flattening)或者池化(Pooling).

論文閱讀筆記《Dense Classification and Implanting for Few-Shot Learning》

  圖a所示的就是壓平操作,就是将原本為 h × w × d h\times w\times d h×w×d維的張量,拉伸為 r × d r\times d r×d維的張量,其中 r = h w r=hw r=hw。這一方法具有較高的區分能力,但是不具備空間不變性。圖b所示的是池化操作,利用全局平均池化将每個通道的特征圖都壓縮為一個值,得到一個長度為 d d d的特征向量 a a a。這一方式能夠顯著降低次元,并且具有空間不變性,但區分能力較差。本文提出一種稱之為稠密分類(Dense classificatio)的方法,對于提取到的特征圖 ϕ ( x ) \phi(x) ϕ(x)不進行次元壓縮,而是對空間中的每一點對應的特征向量進行分類預測。具體而言,假設特征提取網絡最後一層輸出了次元為 h × w × d h\times w\times d h×w×d的張量 ϕ ( x ) \phi(x) ϕ(x),那可以将其拆分成 r = h w r=hw r=hw個長度為 d d d的特征向量 ϕ ( k ) ( x ) \phi ^{(k)}(x) ϕ(k)(x),然後分别計算類别權重與 ϕ ( k ) ( x ) \phi ^{(k)}(x) ϕ(k)(x)之間的距離,對每個空間上的點都進行類别預測,如下圖所示。

論文閱讀筆記《Dense Classification and Implanting for Few-Shot Learning》

  在元測試階段,對于新類别的樣本,通常是對已訓練好的特征提取網絡 ϕ θ \phi _{\theta} ϕθ​進行微調訓練,以滿足新類别樣本特征表達的需要。在低層級的網絡中特征資訊的通用性較強,對于不同類别的樣本都能提取到有用的資訊,而随着網絡的加深,在高層級的網絡中,特征資訊就具備較強的區分度,而不具備通用性了。是以本文提出一種稱為“神經移植”(Neural Implants)的方法,針對高層級的特征提取網絡進行改進,改進的結構如下圖所示

論文閱讀筆記《Dense Classification and Implanting for Few-Shot Learning》

  如圖所示,低層級的特征提取網絡保持不變,在高層級的卷積層上增加一個新的分支,與原有的卷積層構成一個平行的結構。當機原本高層級網絡的權重,使其不再更新,以保留對于原有類别的特征提取能力,然後對于新類别的樣本,其特征資訊會分别經過兩個分支網絡,并且将原本高層級網絡提取的特征圖,與新添加的網絡提取的特征圖級聯起來,作為新添加網絡分支下一層的輸入。最後得到新類别樣本對應的特征資訊 ϕ θ , θ ′ ′ ( x ) \phi '_{\theta ,\theta'}(x) ϕθ,θ′′​(x)。這一方法既消除了使用深層網絡出現過拟合的問題,又提高了特征提取網絡對于新類别樣本的表征能力。

實作過程

網絡結構

  嵌入式特征提取網絡采用ResNet-12

損失函數

  如上文所述,計算損失要對空間中的每個點分别計算再求和,如下式

論文閱讀筆記《Dense Classification and Implanting for Few-Shot Learning》

其中

論文閱讀筆記《Dense Classification and Implanting for Few-Shot Learning》
論文閱讀筆記《Dense Classification and Implanting for Few-Shot Learning》

s τ s_{\tau} sτ​表示scaled cosine similarity,計算過程如下

論文閱讀筆記《Dense Classification and Implanting for Few-Shot Learning》

其中, x ^ = x / ∥ x ∥ \hat{x}=x/\left \| x\right \| x^=x/∥x∥, ⟨ , ⟩ \left \langle, \right \rangle ⟨,⟩表示Frobenius内積, τ \tau τ表示放縮系數。

訓練政策

  在元測試過程中,每次隻選擇一個樣本作為查詢樣本,其餘樣本都作為支援集,類似《Few-Shot Learning with Localization in Realistic Settings》提出的留一交叉驗證法

創新點

  • 提出了稠密分類的方法,對空間中的每個點都進行分類預測,并計算損失,提高了分類的細粒度
  • 提出了神經移植的方法,保留已訓練好的網絡參數,增加新的網絡分支用于處理新的類别樣本

算法評價

  作者針對原有的小樣本學習算法提出兩點改進:稠密分類與神經移植。首先要說明的是,這兩點改進都是針對元測試階段,也就是網絡已經在一個資料集上訓練好了,目前要針對新的類别,且每個類别僅包含少量樣本的情況進行微調訓練。稠密分類的思想與DN4算法中提到的局部描述子的概念非常相似,都是通過增加分類的細粒度,不在圖檔級别上進行類别預測,而在像素(或超像素)級别上進行類别預測,如果細粒度進一步提高到對原圖中每個像素進行類别預測,那麼就成為語義分割任務了。而神經移植的思想有點類似于遷移學習的一些方法,隻不過是在保留原有網絡的基礎上,對網絡結構進行了“拓寬”,但是新增加網絡分支的參數初始化怎麼處理呢?如果是從随機狀态開始訓練,少量的資料集是否足夠呢?

如果大家對于深度學習與計算機視覺領域感興趣,希望獲得更多的知識分享與最新的論文解讀,歡迎關注我的個人公衆号“深視”。

論文閱讀筆記《Dense Classification and Implanting for Few-Shot Learning》

繼續閱讀