1. 程式人生 > 實用技巧 >論文閱讀筆記《Few-Shot Learning Through an Information Retrieval Lens》

論文閱讀筆記《Few-Shot Learning Through an Information Retrieval Lens》

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

核心思想

  本文提出一種完全不同的小樣本學習方法(mAP-SSVM,mAP-DLM),從資訊檢索(information retrieval)的角度來解決小樣本學習問題,與之前episode中分成支援集和查詢集的方式不同,本文將batch內的每個樣本都看作一個查詢樣本,並且從其他所有樣本中檢索出與當前查詢樣本同一類別的樣本。網路輸出的是其他樣本與當前查詢樣本相似度的排序結果,為評價輸出結果的優劣,本文采用mAP作為優化的目標函式,為方便後文描述,這裡簡單介紹一下mAP。
  對於資料集 B B B中的樣本 x 1 x_1 x1 R e l x 1 Rel^{x_1}

Relx1表示資料集 B B B中與 x 1 x_1 x1類別相同的樣本集合, O x 1 O^{x_1} Ox1表示與樣本 x 1 x_1 x1相似度的排序集合, O x 1 [ 1 ] O^{x_1}[1] Ox1[1]表示與 x 1 x_1 x1最相似的樣本, O x 1 [ j ] O^{x_1}[j] Ox1[j]表示與 x 1 x_1 x1 j j j相似的樣本,準確率 P r e c @ j x 1 [email protected]^{x_1} Prec@jx1表示 O x 1 O^{x_1} Ox1中前 j j j個樣本與 x 1 x_1 x1
屬於同一類別的比率,計算過程如下
在這裡插入圖片描述
平均準確率 A P AP AP則表示對 O x 1 [ j ] O^{x_1}[j] Ox1[j]中所有的 j j j值對應準確率求平均值,計算過程如下

在這裡插入圖片描述
平均準確率的均值 m A P mAP mAP則是對所有的查詢樣本對應的平均準確率再求均值
在這裡插入圖片描述
本文的目標就是通過訓練使得輸出的相似度排序結果能讓 m A P mAP mAP儘可能的大,很顯然直接以mAP作為目標函式進行優化是很難實現的,因此本文引入了結構化預測(Structured Prediction)的思路來實現這一目標,結構化預測需要尋找一個評分函式 F ( x , y ; w ) F(x,y;w)

F(x,y;w)用於評價輸入 x x x與輸出 y y y在引數 w w w條件下的“相合性”,然後在此基礎上尋找到使 F ( x , y ; w ) F(x,y;w) F(x,y;w)最大化的輸出結果 y y y。這裡存在三個問題:如何定義評分函式 F ( x , y ; w ) F(x,y;w) F(x,y;w)的形式?如何尋找到使 F ( x , y ; w ) F(x,y;w) F(x,y;w)最大化的輸出結果?如何通過訓練的方式優化評分函式 F ( x , y ; w ) F(x,y;w) F(x,y;w)中的引數 w w w?(關於結構化推測的更多細節介紹,可以參看這篇部落格https://www.cnblogs.com/wry789/p/13236881.html
  具體到本文而言,作者首先根據mAP目標函式的需求,定義了模型輸出結果的形式,模型輸出一個結構化向量 y k j i y_{kj}^i ykji,對於查詢樣本 i i i,如果樣本 k k k與樣本 i i i的相似度大於樣本 j j j與樣本 i i i的相似度,則 y k j i = 1 y_{kj}^i=1 ykji=1,否則 y k j i = − 1 y_{kj}^i=-1 ykji=1,特別地 y k k i = 0 y_{kk}^i= 0 ykki=0。然後定義了評分函式 F ( x , y ; w ) F(x,y;w) F(x,y;w)的形式
在這裡插入圖片描述
式中 P c i \mathcal{P}^{c_i} Pci表示與樣本 i i i類別相同的樣本集合, N c i \mathcal{N}^{c_i} Nci表示與樣本 i i i類別不同的樣本集合, φ \varphi φ表示餘弦相似度度量函式
在這裡插入圖片描述
式中 f f f表示引數為 w w w的特徵提取網路,對上述二式進行分析可知,當樣本 x k x_k xk x i x_i xi的餘弦相似度大於樣本 x j x_j xj x i x_i xi的餘弦相似度(即 φ ( x i , x k , w ) − φ ( x i , x j , w ) > 0 \varphi(x_i,x_k,w)-\varphi(x_i,x_j,w)>0 φ(xi,xk,w)φ(xi,xj,w)>0),且模型的輸出 y k j i = 1 y_{kj}^i=1 ykji=1(即模型判斷樣本 x k x_k xk要比 x j x_j xj x i x_i xi更相似)時,評分函式 F F F的得分為正值,表示模型的輸出結果,與當前輸入樣本 x i , x j , x k x_i,x_j,x_k xi,xj,xk"相合",且 φ ( x i , x k , w ) − φ ( x i , x j , w ) \varphi(x_i,x_k,w)-\varphi(x_i,x_j,w) φ(xi,xk,w)φ(xi,xj,w)的值越大,得分越高,相合程度越高。反之當模型的輸出結果和輸入的樣本不相合時(即 ( φ ( x i , x k , w ) − φ ( x i , x j , w ) ) (\varphi(x_i,x_k,w)-\varphi(x_i,x_j,w)) (φ(xi,xk,w)φ(xi,xj,w)) y k j i y_{kj}^i ykji異號時),評分函式的得分為負值。
  如上文所述,確定了評分函式 F F F的形式後,下面要做的就是要找到能夠使 F F F最大化的輸出 y y y
在這裡插入圖片描述
怎麼解決這個問題呢?最直接的方法似乎是列舉法?其實該問題對於不同的任務目標,不同的評分函式都有不同的求解方式。作者指出對於本文的任務而言,輸出結果計算方法如下
在這裡插入圖片描述
並且作者還提出了一種損失增強的計算方法
在這裡插入圖片描述
上式是通過動態規劃的方式進行求解的,在另一篇文章中給出了計算方式。看到這種計算方法不僅要讓評分函式最大化,而且增加了一個額外的任務損失函式 L L L,本文定義的任務損失函式如下
在這裡插入圖片描述
式中 p i p^i pi是一個二元的向量,其中的每個元素 p g i p^i_g pgi表示樣本 g g g是否與樣本 i i i屬於同一類別,當 p g i = 1 p^i_g=1 pgi=1時表示二者屬於同一類別,否則 p g i = − 1 p^i_g=-1 pgi=1 p i p^i pi表示訓練樣本的真實標籤結果, p ^ i \hat{p}^i p^i表示模型的預測結果。
  至此結構推斷的前兩個問題已經解決了,最後就是如何對評分函式中的引數 w w w進行優化呢?作者引入了兩種方法:結構化支援向量機(SSVM)和直接損失最小化(DLM),其目標函式與損失梯度計算方法如下所示
SSVM:
在這裡插入圖片描述
在這裡插入圖片描述
DLM:
在這裡插入圖片描述
  最後就是迭代上述的過程,得到一個最優的評分函式 F F F,並以此選擇出最優的輸出結果 y y y

實現過程

訓練策略

在這裡插入圖片描述

創新點

  • 本文提出了影象檢索任務,並且以提高mAP作為目標,實現小樣本學習
  • 引入了結構化推測的方法,並定義了評分函式的形式
  • 引入了損失增強的方法,並定義了mAP損失函式

演算法評價

  本文把影象分類任務延申為了影象檢索任務,從一堆影象中選擇出與當前查詢影象最相近的影象樣本,為實現該任務的訓練,採用了mAP做為優化的目標函式,而為了實現模型的訓練,又引入了結構化推測的方法。具體的細節內容還包括評分函式的定義,任務損失函式的定義,引數優化演算法等。本文是近期讀過的文章中比較難以理解的一篇了,主要是引入的結構化推測的方法之前並未接觸過,給整篇文章的理解增添了很大的難度,因此建議在認真研究本文之前,應該先了解下結構化推測,結構化學習的部分內容。

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