论文阅读笔记《Few-Shot Learning with Global Class Representations》
小樣本學習&元學習經典論文整理||持續更新
核心思想
??本文提出一種基于度量學習的小樣本學習算法。與其他算法將訓練集分成基礎類別和新類別,進行兩個階段的訓練方式不同,本文將包含大量樣本的基礎類別和包含少量樣本的新類別合在一起進行訓練,得到每個類別的表征(原型)稱之為全局類別表征(Global Class Representations,GCR)。然后對于每個Episode中的支持集樣本得到對應的Episode類別表征(Episode Class Representations,ECR),利用一個稱之為登記模塊(Registration Module)的組件,從全局類別表征中選擇出與當前Episode類別表征最相近的 n n n個類別表征( n n n表示支持集中包含的類別數目)。最后根據查詢集樣本與 n n n個類別表征之間的歐氏距離實現分類預測。算法的實現方法如下圖所示
??如圖所示,支持集中既包含基礎類別,又包含新類別樣本,但二者樣本數量極不平衡,新類別僅包含少量樣本。為了解決這一問題,作者提出了兩個解決方法:樣本合成與Episode采樣。樣本合成就是一個數據增強的過程,他也分成兩個步驟:第一個步驟就是對樣本圖像進行隨機裁剪、隨機翻轉和《Low-Shot Learning from Imaginary Data》中設計的數據集擴充方法;第二階段是在類別 c j c_j cj?擴展得到的 k t k_t kt?個樣本中再抽樣得到 k r k_r kr?個樣本,利用特征提取網絡得到每個樣本對應的特征向量 f i f_i fi?,然后在[0,1]中隨機采樣 k r k_r kr?個值 v i v_i vi?作為權重,對 f i f_i fi?進行加權求和得到類別 c j c_j cj?中的新樣本 r c j r_{c_j} rcj??,計算過程如下
??Episode采樣就是先從所有的類別(基礎類別+新類別)中選擇出 n t r a i n n_{train} ntrain?個類別 C t r a i n C_{train} Ctrain?,然后對于 C t r a i n C_{train} Ctrain?中的每個類別再選擇出 n s n_s ns?個樣本作為支持集,選出 n q n_q nq?個樣本作為查詢集。因為對于新類別其樣本數量可能不夠,所以要先按照前面介紹的樣本合成方法,先把樣本數量擴充到 n s + n q n_s+n_q ns?+nq?個再進行劃分。
??劃分好支持集和查詢集后,對每個支持集中的樣本計算Episode類別表征(ECR),ECR的計算方法也有兩種,對于基礎類別,直接計算樣本特征向量的平均值(和PN一樣)作為ECR;對于新類別,將樣本合成中得到的新樣本 r c j r_{c_j} rcj??作為ECR。然后將ECR和全局類別表征GCR一起輸入到登記模塊(Registration Module)中。等等!全局類別表征GCR是從哪來的?全局類別表征的初始值是所有類別的樣本對應特征向量的平均值,而后會隨著訓練進行更新。假設基礎類別+新類別一共有100種,那么就應該有對應的100個GCR。登記模塊利用ECR和每個GCR之間的相似性,從GCR中選出 n t r a i n n_{train} ntrain?個(與ECR的數量相同)類別表征 ξ i \xi_i ξi?用于分類預測, ξ i \xi_i ξi?的計算方法如下
其中 r c i r_{c_i} rci??表示類別 c i c_i ci?對應的ECR, g c j g_{c_j} gcj??表示類別 c j c_j cj?對應的GCR, θ , ? \theta ,\phi θ,?分別表示ECR和GCR的嵌入式函數,二者結構相同都是一個帶有ReLU和BN的全連接層。選擇出當前支持集對應的全局類別表征 ξ \xi ξ后,就能夠對查詢集種的樣本 x k x_k xk?進行類別預測了,先計算樣本 x k x_k xk?對應的特征值 F ( x k ) F(x_k) F(xk?)與每個類別表征 ξ i \xi_i ξi?之間的歐式距離,然后在選擇出最近鄰。
實現過程
網絡結構
??特征提取網絡采用4-Conv結構。
損失函數
??損失函數包含兩個部分登記損失和分類損失,計算過程如下
其中
訓練策略
??整個訓練過程如下
值得注意的是特征提取網絡 F F F要在基礎類別上進行一個預訓練作為初始化,GCR的初始化也是利用初始化后的 F F F對所有樣本計算特征向量,再對每個類別取平均值得到的。
算法推廣
??本算法可以直接推廣到廣義小樣本學習中,即測試集中既包含新類別樣本也包含基礎類別樣本。
創新點
- 提出了全局類別表征的概念,利用注冊模塊從中選取對應的類別表征進行分類預測
- 設計了一種樣本合成的方法,用于解決樣本數量不平衡的問題
算法評價
??本文最重要的改進應該就是消除了基礎類別和新類別之間的差別,訓練集中既包含基礎類別樣本,又包含新類別樣本。但如果直接把新類別樣本添加到訓練集中,在采用普通的訓練方式(如PN),則會由于新類別樣本太少,而模型會忽視這部分樣本。因此作者提出的樣本合成和利用ECR從GCR中選擇類別表征等一系列操作,都是為了消除樣本數量的不平衡問題。另一方面本文并不是屬于直推學習類型的,因為直推學習是指在訓練階段,把不帶有標簽的測試圖片也加入到訓練集中,和本文的方法還是存在很大差別的。
如果大家對于深度學習與計算機視覺領域感興趣,希望獲得更多的知識分享與最新的論文解讀,歡迎關注我的個人公眾號“深視”。
總結
以上是生活随笔為你收集整理的论文阅读笔记《Few-Shot Learning with Global Class Representations》的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 然后查看服务器运行情况,netstat命
- 下一篇: debezium集成Oralce攻略(上