【華爲雲技術分享】【論文閱讀】增量學習近期進展及未來趨勢預測

【摘要】 本文通過三篇發表在CVPR 2019上的論文,對增量學習任務進行簡單的介紹和總結。在此基礎上,以個人的思考爲基礎,對這一研究領域的未來趨勢進行預測。

一、背景介紹

目前,在滿足一定條件的情況下,深度學習算法在圖像分類任務上的精度已經能夠達到人類的水平,甚至有時已經能夠超過人類的識別精度。但是要達到這樣的性能,通常需要使用大量的數據和計算資源來訓練深度學習模型,並且目前主流的圖像分類模型對於訓練過程中沒見過的類別,識別的時候完全無能爲力。一種比較簡單粗暴的解決方法是:對於當前模型識別不了的類別,收集大量的新數據,並和原來用於訓練模型的數據合併到一起,對模型進行重新訓練。但是以下的一些因素限制了這種做法在實際中的應用:

1.       當存儲資源有限,不足以保存全部數據的時候,模型的識別精度無法保證;

2.       重新訓練模型需要消耗大量的算力,會耗費大量的時間,同時也會付出大量的經濟成本(如電費、服務器租用費等)。

爲了解決這些問題,使得增加模型可識別的類別數量更容易一些,近年來學術界中出現了一些針對深度學習的“增量式學習”算法。這類算法有三點主要的假設:(1)不同類別的數據是分批次提供給算法模型進行學習的,如下圖所示;(2)系統的存儲空間有限,至多隻能保存一部分歷史數據,無法保存全部歷史數據,這一點比較適用於手機、PC機等應用場景;(3)在每次提供的數據中,新類別的數據量比較充足。

這類任務的難點主要體現在兩方面:第一,由於每次對模型的參數進行更新時,只能用大量的新類別的樣本和少量的舊類別的樣本,因此會出現新舊類別數據量不均衡的問題,導致模型在更新完成後,更傾向於將樣本預測爲新增加的類別,如下圖所示;第二,由於只能保存有限數量的舊類別樣本,這些舊類別的樣本不一定能夠覆蓋足夠豐富的變化模式,因此隨着模型的更新,一些罕見的變化模式可能會被遺忘,導致新的模型在遇到一些舊類別的樣本的時候,不能正確地識別,這個現象被稱作“災難性遺忘”。

目前主流地增量學習算法可以分爲兩類:(1)基於GAN的方法。這類方法不保存舊類別的樣本,但是會使用生成對抗網絡(GAN),學習生成每類的樣本。因此,在對模型進行更新的時候,只要使用GAN隨機生成一些圖像即可,無需保存大量的樣本;(2)基於代表性樣本的方法。這類方法對於每個舊類別,保存一定數量的代表性樣本,在訓練的時候,使用舊類別的代表性樣本和新類別的樣本來更新模型,從而保證模型既能準確地識別舊類別,也能準確地識別新類別。下面針對這兩類方法,分別簡單介紹一些發表在CVPR 2019上的論文,並簡單總結一下這兩類方法各自的優勢和不足。

 

二、基於GAN的方法

論文:Learning to Remember: A Synaptic Plasticity Driven Framework for Continual Learning

作者:Oleksiy Ostapenko, Mihai Puscas, Tassilo Klein, Patrick Jaehnichen, Moin Nabi

出處:CVPR 2019

這篇文章提出了一種基於GAN的增量式學習方法,如上圖所示。其中判別器(D)部分的設計與ACGAN基本相同,包括對抗損失和分類損失兩部分;生成器的結構則比較特殊。具體來說,本文提出的生成器除了需要學習生成器的權重之外,還要對每一層的權重學習一個mask。這個mask的作用是限制每次允許更新的權重,從而防止模型忘記之前學習到的東西。由於mask的存在,模型越往後可以更新的權重值也會越少,因此可能會導致生成器的生成能力不足。爲了解決這個問題,作者提出在每次學習完新數據之後,增加生成器的參數量,從而保證生成器的生成能力不會明顯下降。實驗結果顯示,在小規模的數據集上,該方法有比較明顯的性能優勢,如下表所示。

 

三、基於代表性樣本的方法

論文:Large Scale Incremental Learning

作者:Yue Wu, Yinpeng Chen, Lijuan Wang, Yuancheng Ye, Zicheng Liu, Yandong Guo, Yun Fu

出處:CVPR 2019

這篇文章首先假設增量學習的方法,相比於直接使用所有數據進行訓練的方法,性能下降大的原因,是因爲CNN模型最後用於輸出類別預測概率的全連接層向新增加的類別偏移了(即更傾向於將類別預測爲新加入的類別),並通過實驗(固定網絡前邊的層並重新訓練全連接層、混淆矩陣)驗證了這個假設。爲了解決這個問題,作者提出對新加入類別的概率進行修正,如上圖所示。

具體來說,本文方法需要保存一定數量的舊類別的代表性樣本,在得到新類別數據的時候,包含三步操作:第一步,將舊類別的代表性樣本和新類別的樣本劃分爲訓練集和校驗集,其中在校驗集裏,各類的樣本數量是均衡的;第二步,使用訓練樣本訓練一個新模型,其中包含兩部分損失,一個是標準的分類損失,另一個是知識蒸餾損失,目標是保證新模型在舊類別上的概率預測值和舊模型儘可能相同,從而保留舊模型學到的信息(新類別和舊類別的樣本都參與計算兩個損失);第三步,使用校驗集的數據學習一個線性模型,對新模型預測的logits進行修正,其中保留舊類別上的logits,只對新類別上的logits進行修正,如下邊的公式所示。

實驗結果顯示,相比於經典的LwF方法、iCaRL方法,本文方法在大規模、大增幅(一次加入的類別多)的數據庫和設置下提升較明顯,在小數據庫上與已有方法性能相當,如下邊的圖表所示。

 

論文:Learning a Unified Classifier Incrementally via Rebalancing

作者:Saihui Hou, Xinyu Pan, Chen Change Loy, Zilei Wang, Dahua Lin

出處:CVPR 2019

這篇文章根據現有增量學習算法的問題,提出了三點改進,如上圖所示:第一,作者發現,由於新類的特徵向量幅值和舊類的不一樣,因此模型會偏向於新類。爲了解決這個問題,提出對特徵向量、分類器的權重向量進行歸一化,保證幅值等於1。相應的,分類損失和蒸餾損失也都在歸一化之後的特徵向量上使用,如下圖所示;

第二,爲了減少模型遺忘,要求新模型的歸一化特徵和舊模型儘量相同,因此提出了一種新的蒸餾損失。這個損失的思想是,舊模型學到的不同類別的特徵分佈一定程度上反映了類別之間的關係,因此保持這種關係對於防止遺忘也有意義,如下圖所示;

第三,在分類的時候,使用large-margin的分類損失,使用易誤分的新類別作爲難例,提升訓練的效率,如下圖所示。

實驗結果顯示,該方法相比於經典的iCaRL增量學習算法,有十個點以上的提升,如下圖所示。

 

四、總結

增量學習的主流方法分爲基於GAN的方法和基於代表性樣本的方法兩大類。

其中,基於GAN的方法通過GAN“記住”舊類別的數據,在更新模型的時候,可以生成任意多的舊類別樣本,但是這類方法的上限受制於GAN的生成能力。此外,基於GAN的方法宣稱的一個優勢是不需要存儲歷史數據,但是一般來說,GAN模型本身也要佔用一定的存儲空間(通常在幾十MB這個數量級),如果用這部分空間來直接存儲代表性的歷史數據,按照一張圖片200kB計算,也可以存儲幾百張圖片了。所以一個很有意思的問題是,佔用同樣存儲空間的情況下,基於GAN的方法真的比基於代表性樣本的方法更好麼?從目前來看,基於GAN的方法識別精度通常不如基於代表性樣本的方法。未來基於GAN的增量學習方法如果想真正實用化,既要提升生成圖像的質量,還要保證在使用同樣的存儲空間或者更少的存儲空間的情況下,達到更好的性能,任重而道遠。

另一方面,基於代表性樣本的方法則保存少量的歷史樣本,在更新模型的時候,使用一個額外的蒸餾損失,保證舊模型的知識可以遷移到新模型中,目前來看,這類方法的識別精度通常更高一些。

不過增量學習的思路不應該侷限於這兩大類方法,是否有可能既不用GAN,也不保存代表性的歷史樣本,而只使用舊模型本身來進行增量學習呢?或者是否有其他更高效的方法?這些都是值得未來繼續探索的方向。

總的來說,在條件允許的情況下,使用全部數據重新訓練模型的效果仍然是毫無爭議的最佳,GNN和代表性樣本兩種增量學習方法仍然達不到使用所有數據完全重新訓練的識別精度。因此,當前的增量學習算法仍然有很長的路要走。但是目前看來,增量學習這條路如果能夠走通,無疑會大量減少雲服務對資源的需求量;另一方面,在一些對數據安全十分敏感的應用中,也可以保證數據不出內網,在有限的計算資源下即可完成模型的更新。所以在我看來,增量學習這個研究方向的前景還是很光明的,只是目前的技術還沒有發展到足夠使用的地步而已。

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