論文閱讀筆記《Few-Shot Class-Incremental Learning》

核心思想

  本文提出一種用於解決小樣本類別增量學習(few-shot class-incremental learning, FSCIL)的算法(TOPIC)。首先解釋一下什麼是小樣本類別增量學習,模型首先在一個大規模的基礎數據集D(1)D^{(1)}上進行訓練,然後會不斷增加新的數據集D(t),t>1D^{(t)}, t>1,且數據集中的類別與基礎數據集中的不同,樣本數量也較少,在學習新的樣本過程中,還不能忘記之前學習過的樣本。這一過程面臨兩個難題:災難性遺忘和新的數據產生過擬合問題。爲了解決這兩個核心難題,本文利用神經氣體網絡(neural gas network,NG),通過網絡的拓撲結構來反映樣本的特徵向量之間的關係,一方面通過穩定NG在上一個階段學習到的子圖來保留之前的知識,另一方面通過增強學習到的特徵的區分能力來解決過擬合問題。
  然後我們簡要介紹一下NG網絡的學習過程,NG網絡與圖神經網絡非常類似,是由一個無向圖模型G=<V,E>G=<V,E>構成的,每一個結點vjv_j都帶有一個質心向量mjm_j用來描述結點vjv_j在特徵空間中的位置,而邊的集合EE就儲存了相鄰節點之間的關係,如果結點viv_i和結點vjv_j之間是拓撲鄰接的,則eij=1e_{ij}=1,否則爲0。每個邊eije_{ij}還帶有一個年齡參數aija_{ij},其初始化爲0。給定一個輸入f\mathbf{f },那麼他就會根據距離d(f,mj)d(\mathbf{f },m_j)分配給最近的結點vjv_j
  爲了滿足FSCIL問題的需要,本文對NG網絡做了一些改進。首先每個結點處除了帶有質心向量mjRnm_j\in \mathbb{R}^n之外,還帶有三個參數,分別爲:Λj\Lambda_j是一個n×nn\times n的對角矩陣,用於儲存mjm_j每一維度的方差,zjz_j表示結點對應的圖像,cjc_j表示結點對應的類別標籤。在基礎數據集D(1)D^{(1)}上訓練時,給定一個輸入f\mathbf{f },分別計算其與每個結點之間的距離,並儲存在DfD_\mathbf{f }中,然後將距離按照由小到大升序排序得到Rf=rid(f,mri)d(f,mri+1)R_\mathbf{f }={r_i|d(\mathbf{f }, m_{r_i})\leq d(\mathbf{f }, m_{r_{i+1}})},並按照下式對所有節點的質心向量mrim_{r_i}進行更新
在這裏插入圖片描述
式中η\eta表示學習率,e1/αe^{-1/\alpha}表示衰減函數。由上式可知與ff距離越遠的結點,則受到的影響就越小。接下來更新所有與r1r_1(與f\mathbf{f }距離最近的結點)相連的邊的參數
在這裏插入圖片描述
最後更新結點vjv_j的其他參數,zjz_jcjc_j會從D(1)D^{(1)}中選擇特徵向量與mjm_j最接近的圖像和標籤,Λj\Lambda_j會根據該特徵向量估計得到(因爲每次所有結點的mjm_j都會更新,因此其他參數也會隨之發生變化)。在增量學習的階段,也就是在新的數據集D(t),t>1D^{(t)}, t>1上學習時,爲每個新的類別都插入新的結點,然後按照上面的介紹更新結點和邊的參數。
  最後,我們介紹一下作者時如何解決前面提到的災難性遺忘和新樣本過擬合問題的。針對災難性遺忘問題,本文通過增強拓撲結構穩定性的方式實現。給定一個NG網絡G(t)G^{(t)},從中提取子圖Go(t)G_o^{(t)},該子圖中的所有節點都來自於舊的數據集,在進行微調訓練時,爲了穩定Go(t)G_o^{(t)}避免遺忘舊的知識,本文通過約束新的向量觀察值m^\hat{m}儘可能地靠近之前的質心向量mm,來減少結點vv在特徵空間中的位置的變動。實現的方式,就是增加一個anchor loss(AL)損失項,計算過程如下
在這裏插入圖片描述
式中用ff表示參數更新的competitive Hebbian learning過程,我認爲是不太合適的,根據上下文內容來看,ff應該是指的特徵提取過程。
在這裏插入圖片描述
  如上圖(a)中所示的是未經更新的NG網絡G(t)G^{(t)},如果按照原有方式進行更新,則如圖(b)所示,結點位置變化較大,原有的拓撲結構被破壞;增加了AL懲罰項後,更新結果如圖©所示,拓撲結構保持穩定,結點位置變化較小。
  針對新樣本過擬合的問題,本文通過增強學習特徵的區分能力來解決。對於新的樣本(x,y)D(t)(x,y)\in D^{(t)}學習得到的特徵向量f=f(x,θ(t))\mathbf{f}=f(x,\theta^{(t)}),我們希望其對應結點vjv_j的標籤爲yy,且距離d(f,mj)<<d(f,mi),ijd(f,m_j)<<d(f,m_i),i\neq j,也就是新的特徵向量與正確的類別結點距離越近越好,與其他類別結點的距離越遠越好。爲了實現這一目的作者增加了min-max loss(MML)損失項,計算過程如下
在這裏插入圖片描述
式中ξ\xi表示一個距離閾值,如果兩個節點之間的距離超過他,則認爲二者之間的距離足夠遠了,不需要額外的懲罰,否則則會有相應的懲罰。
在這裏插入圖片描述
  如上圖(d)中所示,新樣本對應的特徵向量f~\tilde{f}原本應該屬於結點v~7\tilde{v}_7,但由於其與結點v5v_5更近,因此被誤分配給結點v5v_5;如圖(e)所示,如果採用了MML損失後,將特徵向量f~\tilde{f}向結點v~7\tilde{v}_7靠攏,並且拉開結點v~7\tilde{v}_7與結點v5v_5v4v_4之間的距離;經過更新後,特徵向量f~\tilde{f}正確的分配給了結點v7v_7,且v7v_7v4v_4之間的邊由於年齡太大而取消了。

實現過程

損失函數

  損失函數共包含三項:分類損失,AL損失和MML損失,計算過程如下
在這裏插入圖片描述

創新點

  • 本文提出一種小樣本類別增量學習(FSCIL)問題,其更加貼合實際應用情況但難度也更高
  • 利用NG網絡通過增加AL損失和MML損失項解決了FSCIL中的災難性遺忘和新樣本過擬合的問題

算法評價

  本文首先是提出了一種更接近實際應用需求的且難度更高的小樣本類別增量學習(FSCIL)問題,這類問題在實際場景中非常常見,因此解決該問題是非常有價值的。接着作者採用了NG網絡來解決該問題,我之前並沒有瞭解過NG網絡的情況,現有的資料也比較少,但看起來與圖神經網絡非常類似,都是用結點表示類別,用距離表示相似程度,用邊表示結點之間的鄰接關係。最後作者通過引入兩種懲罰項的方式解決了災難性遺忘問題和新樣本過擬合問題,相對於普通的增量式學習算法取得了更好的效果。

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

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