核心思想
本文提出一種用於解決小樣本類別增量學習(few-shot class-incremental learning, FSCIL)的算法(TOPIC)。首先解釋一下什麼是小樣本類別增量學習,模型首先在一個大規模的基礎數據集上進行訓練,然後會不斷增加新的數據集,且數據集中的類別與基礎數據集中的不同,樣本數量也較少,在學習新的樣本過程中,還不能忘記之前學習過的樣本。這一過程面臨兩個難題:災難性遺忘和新的數據產生過擬合問題。爲了解決這兩個核心難題,本文利用神經氣體網絡(neural gas network,NG),通過網絡的拓撲結構來反映樣本的特徵向量之間的關係,一方面通過穩定NG在上一個階段學習到的子圖來保留之前的知識,另一方面通過增強學習到的特徵的區分能力來解決過擬合問題。
然後我們簡要介紹一下NG網絡的學習過程,NG網絡與圖神經網絡非常類似,是由一個無向圖模型構成的,每一個結點都帶有一個質心向量用來描述結點在特徵空間中的位置,而邊的集合就儲存了相鄰節點之間的關係,如果結點和結點之間是拓撲鄰接的,則,否則爲0。每個邊還帶有一個年齡參數,其初始化爲0。給定一個輸入,那麼他就會根據距離分配給最近的結點。
爲了滿足FSCIL問題的需要,本文對NG網絡做了一些改進。首先每個結點處除了帶有質心向量之外,還帶有三個參數,分別爲:是一個的對角矩陣,用於儲存每一維度的方差,表示結點對應的圖像,表示結點對應的類別標籤。在基礎數據集上訓練時,給定一個輸入,分別計算其與每個結點之間的距離,並儲存在中,然後將距離按照由小到大升序排序得到,並按照下式對所有節點的質心向量進行更新
式中表示學習率,表示衰減函數。由上式可知與距離越遠的結點,則受到的影響就越小。接下來更新所有與(與距離最近的結點)相連的邊的參數
最後更新結點的其他參數,和會從中選擇特徵向量與最接近的圖像和標籤,會根據該特徵向量估計得到(因爲每次所有結點的都會更新,因此其他參數也會隨之發生變化)。在增量學習的階段,也就是在新的數據集上學習時,爲每個新的類別都插入新的結點,然後按照上面的介紹更新結點和邊的參數。
最後,我們介紹一下作者時如何解決前面提到的災難性遺忘和新樣本過擬合問題的。針對災難性遺忘問題,本文通過增強拓撲結構穩定性的方式實現。給定一個NG網絡,從中提取子圖,該子圖中的所有節點都來自於舊的數據集,在進行微調訓練時,爲了穩定避免遺忘舊的知識,本文通過約束新的向量觀察值儘可能地靠近之前的質心向量,來減少結點在特徵空間中的位置的變動。實現的方式,就是增加一個anchor loss(AL)損失項,計算過程如下
式中用表示參數更新的competitive Hebbian learning過程,我認爲是不太合適的,根據上下文內容來看,應該是指的特徵提取過程。
如上圖(a)中所示的是未經更新的NG網絡,如果按照原有方式進行更新,則如圖(b)所示,結點位置變化較大,原有的拓撲結構被破壞;增加了AL懲罰項後,更新結果如圖©所示,拓撲結構保持穩定,結點位置變化較小。
針對新樣本過擬合的問題,本文通過增強學習特徵的區分能力來解決。對於新的樣本學習得到的特徵向量,我們希望其對應結點的標籤爲,且距離,也就是新的特徵向量與正確的類別結點距離越近越好,與其他類別結點的距離越遠越好。爲了實現這一目的作者增加了min-max loss(MML)損失項,計算過程如下
式中表示一個距離閾值,如果兩個節點之間的距離超過他,則認爲二者之間的距離足夠遠了,不需要額外的懲罰,否則則會有相應的懲罰。
如上圖(d)中所示,新樣本對應的特徵向量原本應該屬於結點,但由於其與結點更近,因此被誤分配給結點;如圖(e)所示,如果採用了MML損失後,將特徵向量向結點靠攏,並且拉開結點與結點和之間的距離;經過更新後,特徵向量正確的分配給了結點,且與之間的邊由於年齡太大而取消了。
實現過程
損失函數
損失函數共包含三項:分類損失,AL損失和MML損失,計算過程如下
創新點
- 本文提出一種小樣本類別增量學習(FSCIL)問題,其更加貼合實際應用情況但難度也更高
- 利用NG網絡通過增加AL損失和MML損失項解決了FSCIL中的災難性遺忘和新樣本過擬合的問題
算法評價
本文首先是提出了一種更接近實際應用需求的且難度更高的小樣本類別增量學習(FSCIL)問題,這類問題在實際場景中非常常見,因此解決該問題是非常有價值的。接着作者採用了NG網絡來解決該問題,我之前並沒有瞭解過NG網絡的情況,現有的資料也比較少,但看起來與圖神經網絡非常類似,都是用結點表示類別,用距離表示相似程度,用邊表示結點之間的鄰接關係。最後作者通過引入兩種懲罰項的方式解決了災難性遺忘問題和新樣本過擬合問題,相對於普通的增量式學習算法取得了更好的效果。
如果大家對於深度學習與計算機視覺領域感興趣,希望獲得更多的知識分享與最新的論文解讀,歡迎關注我的個人公衆號“深視”。