論文閱讀筆記《Adaptive Subspaces for Few-Shot Learning》

核心思想

  本文提出一種基於度量學習的小樣本分類算法(DSN)。作者引入了子空間的概念,爲每種類別都尋找到一個適合的子空間,然後在子空間中進行距離度量,並預測類別。首先作者介紹了幾種常見的基於度量學習的小樣本分類器,其分類方式如下圖所示
在這裏插入圖片描述
(a)成對的分類器,分別計算查詢樣本對應的特徵向量和每個支持樣本對應的特徵向量之間的距離,然後按照最近鄰的思想預測類別,如Matching Network。
(b)原型分類器,爲支持集中每個類別計算出一個原型(每個類別所有樣本特徵向量的平均值),然後根據查詢樣本的特徵向量與各個類別原型之間的距離預測類別,如Prototypical Network。
(c)非線性二元分類器,利用神經網絡學習到一個非線性的距離度量函數,如Relation Network。
(d)子空間分類器,爲每個類別計算出一個特徵空間的子空間,然後將查詢樣本的特徵向量投射到子空間中,在子空間中進行距離度量,並預測類別,如本文的算法(DSN)。DSN的處理過程如下圖所示
在這裏插入圖片描述
  首先,利用特徵提取器fΘf_{\Theta}將輸入圖像映射到特徵空間中得到對應的特徵向量fΘ(xi)f_{\Theta}(x_i),然後通過平均的方式計算每個類別cc對應的特徵向量均值μc\mu_c,計算過程如下
在這裏插入圖片描述
對於每個類別cc都可以得到集合X~c=[fΘ(xc,1)μc,...,fΘ(xc,K)μc]\tilde{X}_c=[f_{\Theta}(x_{c,1})-\mu_c,...,f_{\Theta}(x_{c,K})-\mu_c],對X~c\tilde{X}_c進行奇異值分解(SVD)得到X~c=UVT\tilde{X}_c=U\sum V^T,然後選取UU中前nn個維度得到截斷矩陣PcP_c,由X~c\tilde{X}_c得到子空間PcP_c的過程其實就是截斷奇異值分解(TSVD),其與主成分分析PCA非常類似,是一種數據降維的方法。得到每個類別對應的子空間PcP_c後,可以計算查詢向量fΘ(q)f_{\Theta}(q)與每個類別之間的距離d(q)d(q),計算過程如下
在這裏插入圖片描述
式中Mc=PcPcTM_c=P_cP_c^T,最後利用softmax函數計算查詢樣本屬於各個類別的概率pc,qp_{c,q},計算過程如下
在這裏插入圖片描述

實現過程

網絡結構

  特徵提取網絡採用4層卷積神經網絡或ResNet網絡

損失函數

  損失函數包含兩項:分類損失和正則化項
在這裏插入圖片描述
第一項分類損失採用分類概率的負對數,是常見的操作;第二項正則化項目的是最大化各個子空間之間的距離,距離度量方式如下
在這裏插入圖片描述
根據上式可知,爲了最大化δp2\delta_p^2,就需要最小化PiPjTF2\left \| P_iP_j^T\right \|_F^2

訓練策略

  整個訓練過程如下
在這裏插入圖片描述

算法推廣

  本文的方法還可以拓展到半監督訓練中,修改μc\mu_c的計算方式如下
在這裏插入圖片描述
在這裏插入圖片描述
式中rir_i表示無標籤樣本

創新點

  • 將特徵空間降維到特定的子空間中,並在子空間中進行距離度量
  • 採用TSVD的方法生成子空間

算法評價

  本文對每個類別都計算了特定的子空間,並在子空間中進行距離度量,因此作者稱其爲自適應子空間(Adaptive Subspaces)。因爲每個類別的距離度量過程都與類別相關,因此作者稱其爲動態分類器(Dynamic Classifier)。

如果大家對於深度學習與計算機視覺領域感興趣,希望獲得更多的知識分享與最新的論文解讀,歡迎關注我的個人公衆號“深視”。在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章