論文閱讀筆記《Boosting Few-Shot Learning with Adaptive Margin Loss》

核心思想

  本文在基於度量學習的小樣本分類算法的基礎上,通過引入類別相關(class-relevant)或任務相關(task-relevant)的自適應邊緣損失(Adaptive Margin Loss),改進了原有算法的分類效果。本文的核心觀點是可以利用不同類別之間的語義相似性來生成自適應邊緣(Margin雖然翻譯爲邊緣,但其實應該理解爲兩種類別之間的邊界距離),具體地說就是讓相似類別之間的邊界類別比不相似類別之間的邊界距離更大,如下圖所示。
在這裏插入圖片描述
  我們希望增大“狗”和“狼”之間的邊界距離,以增強相似類別的區分能力。那麼如何實現這一想法呢?本文提出一種自適應邊緣損失的方法,利用損失函數去引導特徵提取網絡改進對於相似類別特徵的表徵能力。那麼什麼是自適應邊緣損失函數呢?首先我們要介紹一下普通的邊緣損失函數(naive additive margin loss,NAML),計算過程如下
在這裏插入圖片描述
可以看到相對於普通的對數損失函數,該函數只是在利用softmax函數計算分類概率時做了一些變化,對於除目標類別之外的其他類別,在冪的位置增加了一個邊緣mm。通過這種方式,損失函數可以強制特徵提取網絡去提取不同類別的樣本之間更具有區分度的視覺特徵,但是固定的邊緣mm會在測試時導致相似類別的誤分類問題。因此本文進一步提出了自適應邊緣損失,也就是說mm不是一個固定的數值,而是會自適應地進行調整。本文提出兩種自適應邊緣損失函數:類別相關的自適應邊緣損失函數(CRAML)和任務相關的自適應邊緣損失函數(TRAML)。

類別相關的自適應邊緣損失函數(CRAML)

  CRAML將類別之間的語義相關性引入到邊緣計算中。首先,利用詞向量模型將類別的標籤轉化爲語義向量,然後利用距離度量函數描述二者之間的相似性,最後利用一個類別相關的邊緣生成器M\mathcal{M}得到對應的邊緣mi,jcrm_{i,j}^{cr},計算過程如下
在這裏插入圖片描述
式中eie_ieje_j分別表示兩個類別對應的語義向量,simsim表示距離度量函數(如餘弦距離),α\alphaβ\beta分別表示放縮和平移參數。經過CRAML改進後的損失函數計算過程如下
在這裏插入圖片描述

任務相關的自適應邊緣損失函數(TRAML)

  TRAML則是進一步實現根據類別間的相似性自適應調整邊界距離的方案,整個處理過程如下圖所示
在這裏插入圖片描述
目標類別"dog"和任務中的其他類別"cabinet", “wolf”, "sofa"首先經過詞向量模型轉化爲語義向量,然後分別度量目標類別對應的語義向量和其他類別對應的語義向量之間的距離,最後利用一個全連接網絡輸出目標類別和其他類別之間的邊緣mi,jtrm_{i,j}^{tr},計算過程如下
在這裏插入圖片描述
式中G\mathcal{G}表示任務相關邊緣生成器,由一個全連接神經網絡構成。經過TRAML改進後的損失函數計算過程如下
在這裏插入圖片描述
  最後將本文提出的自適應邊緣損失函數與其他基於度量學習的算法(Prototypical Network或者AM3等)相結合,可以改善原有算法的分類性能,整個算法的流程如下圖所示
在這裏插入圖片描述
在元訓練階段主要是增加了一個語義向量轉換和自適應邊緣生成的過程,而在元測試階段則採用原有的softmax函數,不增加自適應邊緣部分。

創新點

  • 在基於度量學習的小樣本分類算法的基礎上,引入了自適應邊緣損失,改進分類效果
  • 提出兩中自適應邊緣損失的計算方式:CRAML和TRAML

算法評價

  本文提出一種新的改進小樣本學習的思路——邊緣損失,本身在目標識別算法中邊緣損失函數已經有一定的研究基礎,而本文則是首次將其引入到小樣本分類問題中。本文提出的兩種邊緣生成方法CRAML和TRAML均是從語義信息的角度出發,而邊緣的計算還可以利用其他的信息或者約束。本文提出方法計算過程並不複雜,但卻取得了較高的性能提升(PN提升超過10%,AM3提升2%-3%)。而唯一的遺憾是兩種方法之間似乎是獨立的,並沒有相關聯繫,如何將兩種方式結合,其實也是一種改進思路。

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

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