陳一馳,陳 斌
(1.中國科學院 成都計算機應用研究所,成都 610041;2.中國科學院大學 計算機科學與技術學院,北京 100049;3.哈爾濱工業大學(深圳)國際人工智能研究院,廣東 深圳 518055;4.哈爾濱工業大學 重慶研究院,重慶 401151)
傳統的機器學習總是被限制在一個封閉的靜態環境中,通常被稱為孤立學習,這種學習方式不考慮任務以外的信息,即針對一個任務,模型的訓練和推理只在符合獨立同分布假設的數據上進行;然而這樣的學習方式是低效的,畢竟現實場景顯然是一個開放的動態環境,人類在這種環境下會不斷地積累知識并優化形成經驗,用于幫助解決出現的問題[1]。
終身學習(LifeLong Learning,LLL)范式是通過模仿人類的學習過程抽象而來。人類擁有強大的獲取、調整和遷移知識的能力,例如會騎自行車的人能夠很快學會騎摩托車,在遇到新任務或者新問題時會很快產生聯想并無縫地將這些知識遷移,然后根據特定的問題進行特別的學習。這樣的學習方式是高效且自然的,這也是終身學習過程中最為重要的一環。
在計算機視覺領域,以深度學習為代表的學習框架尚未達到終身學習范式的要求。例如要單獨訓練一個過參數化的深度模型,就必須為每個任務收集大量的數據和進行繁瑣的人工預處理等,這使得學習成本隨著任務量大幅增加,這無疑是耗時且低效的方式,尤其是在一些對時間和性能有特殊要求的應用場景下甚至是不被允許的。深度學習獨特的訓練和推理模式使得深度學習模型還遠遠達不到人類的學習效果,例如要融入終身學習范式目前還存在著兩個嚴峻的挑戰:1)災難性遺忘,即網絡在學習了新的知識之后,可能會徹底遺忘在先前任務上學到的知識[2];2)概念漂移,即網絡對屬于同類但是不同分布的新數據表現效果差[3]。因此要求深度學習模型既要滿足一定的可塑性以適應新數據的輸入,又要具備一定的穩定性以避免在整合新知識的同時產生大量的遺忘,即擺脫穩定性-可塑性困境[4]。
此外,一個簡單的思路是融合所有的數據訓練一個大規模模型,即聯合訓練或者多任務學習,但這并不在本文定義的終身學習范式內;因為把時間線拉長,無休止地存儲所有數據必然無法實現,所以需要對它進行一定程度的限制,其次每當接受新任務時就要重新訓練所有的數據也不符合人類的學習方式。針對深度學習的框架,直觀上聯合訓練或許是終身學習方法的一個上界,因為深度學習是一個優化問題,聯合訓練更有可能找到所有任務的全局最優解。
為滿足對模型存儲上的限制要求,大量的研究者從深度學習的框架入手,從多個角度探索終身學習的解決方式,并在多個應用方向展現了它的可行性。本文調研并跟蹤了近年來的終身學習相關文獻,相較于文獻[5-6],本文增加了評估終身學習模型性能的相關指標,不僅考慮了模型在終身學習過程中識別的能力,同時考慮了存儲即資源利用的能力;相較于文獻[7-8],本文不僅在圖像分類中詳細調研了終身學習的相關應用,還介紹了終身學習在其他計算機視覺如目標檢測等中的應用。終身學習不僅要解決實際應用環境中的成本問題,更有可能是現階段弱人工智能邁向未來強人工智能的重要一步。
終身學習是一個連續學習的過程。假設在時間點t模型Mt已經完成了N個學習任務T1,T2,…,TN,其中每個任務都有對應的數據集D1,D2,…,DN,任務之間沒有嚴格的約束并且此時模型積累了源自這N個任務的知識并存儲于知識庫中。當面對新的任務TN+1及其數據DN+1時,Mt可以利用知識庫中積累的先驗知識幫助學習TN+1,并且在學習TN+1后,Mt能夠根據從TN+1中學到的知識進行同步更新為Mt+1以供未來繼續使用,同時Mt+1能最大限度地保留在先前N個任務上的性能。由此可見,終身學習的關鍵是持續地學習和不斷積累知識,即Mt如何利用先驗知識學習TN+1和如何存儲新知識演化為Mt+1。在這個定義下,還額外需增加一個存儲限制,即知識庫不能保留所有的訓練數據,否則將會與多任務學習無異,違背終身學習的初衷。
根據定義可以看出,終身學習旨在解決3 個主要問題:1)知識保留(Knowledge Retention),當訓練有素的模型學習新的任務時,很容易造成災難性遺忘,因此需要將舊知識以某種形式進行保留,但也不能簡單地將數據全部保留在內存中從而造成嚴重的存儲負擔;2)知識遷移(Knowledge Transfer),即利用舊知識解決新問題,終身學習與傳統的遷移學習(Transfer Learning)最大的不同是遷移學習更加關注模型在新任務上的效果,而終身學習在此基礎上還要兼顧在舊任務上的性能;3)模型擴充(Model Expansion),當使用的模型無法容納新增的任務時就可以考慮對模型進行適當擴充,但擴充的參數必須是高效的,即要求模型擴充的速度慢于任務的增加速度。
終身學習的建模不同于傳統的機器學習范式,更偏向于一個系統性方法[1],這就意味著對任務進行終身學習建模需要涉及多個組件的共同協作。如圖1 所示,該系統主要由4個組件構成。

圖1 LLL系統示意圖Fig.1 Schematic diagram of LLL system
1)任務管理器??梢越邮芎凸芾砣蝿樟鳎⑾驅W習器呈現新的任務。
2)基于知識的學習器。是終身學習的核心部件,能夠從知識庫中提取需要的先驗知識解決新任務,并將學到的新知識傳遞給知識庫。
3)知識庫。能夠向學習器傳遞先驗知識,接受學習器學到的新知識并且同步更新。
4)輸出。根據應用的實際需求決定?,F階段大多數終身學習方法主要側重于對學習器和知識庫的構造,因為知識的積累和持續的學習就發生在這兩個組件中。
計算機視覺作為深度學習最為成功的應用,框架一般可以拆解為輸入、優化和結構這3 個部分,用于積累和再應用的知識就可以以這3 個部分作為切入點,同時也可以組合使用它們。本文將從知識的角度對終身學習方法進行分類與歸納,如表1 所示。

表1 終身學習方法的分類Tab.1 Classification of lifelong learning methods
深度學習模型工作的基礎就是特定任務的數據,如引言所述,受到實際應用環境的存儲限制,保存每個任務的數據會使得存儲成本非常昂貴。現實生活中人類能使用的數據復雜多樣,但是并不需要存儲所有的數據,僅需簡單的回憶就可以防止遺忘。
因此,在終身學習中,面對任務序列的多個數據集可以通過維護記憶容器增量式地存儲重要的數據子集或者數據信息。例如,Rebuffi 等[9]首次提出了一種經典的類增量學習方法iCaRL(incremental Classifier and Representation Learning),首先設置了一個固定大小的記憶容器,然后使用記憶中的舊數據和新類的所有數據訓練表示學習器和特征分類器,并更新記憶容器。不同于傳統深度模型,iCaRL 沒有使用端到端的全連接分類器,而使用樣本最鄰近類別均值(Nearest Class Mean,NCM)算法選取距離最近的類作為預測結果。Chaudhry 等[10]提出了一種基于微小情景記憶(Tiny Episodic Memories,TEM)方法,首先將當前任務中的實際小批樣本與從記憶緩沖區中隨機抽取的小批樣本進行疊加,逐步更新網絡參數,然后對比了4 種不同的記憶緩沖區更新策略,其中蓄水池采樣法在多個數據集上表現突出,最后通過實驗得出了對微小記憶的反復使用不會影響模型泛化性的結論。TEM 方法實際上是對iCaRL 的改進,關鍵在于更新知識庫的采樣方法,因此后續也有大量的研究著重于此,如Buzzega 等[11]研究了獨立緩沖區增強、偏置控制、指數學習率衰減、平衡蓄水池采樣和損失了解蓄水池采樣這5 種采樣技術,并在TEM 和多個基于經驗回放的終身學習方法上進行了實驗,具有很高的參考價值。Aljundi 等[12]將工作重點放在取樣上,提出了一種最大干擾檢索(Maximally Interfered Retrieval,MIR)方法,文獻[12]中認為知識庫中用于聯合新樣本訓練的數據受到模型參數更新的負面影響最大,從而顯著改善了常用的隨機抽樣和基準方法。Belouadah 等[13]提出了一種雙記憶類增量學習(Incremental Learning with Dual Memory,IL2M)方法,為存儲過去任務的統計信息再開拓了一塊新內存,與用于重放的舊樣本一起參與微調過程,有效改善了深度學習模型微調出現的樣本不平衡問題。Chaudhry 等[14]提出了一種基于后見任務錨點的持續學習方法HAL(Hindsight Anchor Learning),與IL2M 方法類似,不過另一個記憶存儲的是先前數據的錨點,該錨點被認為是最容易遺忘的任務信息,使用最大化遺忘損失計算,通過在訓練過程中保證對錨點的準確預測有效保留過去任務的性能。Iscen 等[15]選擇不再保留先前任務的圖像數據子集,而是保存每類訓練圖像的特征描述符,并通過多層感知機實現新舊特征描述符之間的自適應,因此分類器只需要在新舊任務的特征上聯合訓練,顯著減少了內存的開銷。Zhu 等[16]用類原型代替舊類樣本,通過原型增強以保留它在深度特征空間上的決策邊界,并使用自監督學習方法得到泛化性和遷移能力更好的特征供新任務學習。He 等[17]探索了類不平衡學習(Class Imbalanced Learning,CImbL)與基于經驗回放的類增量學習(Class Incremental Learning,CIncL)之間的關系,闡明了CImbL 中的后縮放和CIncL 中的權重對齊之間的潛在相似性。Korycki 等[18]引入了數據流挖掘技術,將用于管理數據多樣性的集群驅動緩沖區與集群跟蹤、切換和分割結合起來,不僅可以防止災難遺忘,還能忘記過時信息以自動適應概念漂移。Mai 等[19]將對比學習引入使用NCM 分類器的持續學習方法中,提出了一種監督對比回放(Supervised Contrastive Replay,SCR)方法,通過對比損失可以將屬于同一類的特征嵌入被緊密聚類,同時更大距離地分離不同類的特征嵌入。
除了為先前任務保留一個子集用于經驗回放,也可以通過圖像生成技術生成過去任務的數據供新模型學習。Shin等[20]提出了一種經典的深度生成回放(Deep Generative Replay,DGR)方法,構造一個增量式的Scholar 模塊,其中的Generator 用于重構累積樣本的輸入空間,Solver 用于學習輸入輸出間的映射,Solver 在學習過程中不僅要給出新任務的標簽,還用于給出生成樣本的標簽。Atkinson 等[21]指出先前的偽排練方法無法應對復雜的任務數據,因此考慮將生成式對抗網絡(Generative Adversarial Network,GAN)用于生成舊任務數據,通過遞歸地使用GAN 進行聯合訓練,實現增量式的學習。得益于GAN 方法的迅速發展,大部分基于偽排練的終身學習方法都采用了該方法。如van de Ven 等[22]通過為生成模型GAN 設計正向和反向連接集成到主模型中,使得主模型也具有生成能力,且在保證性能的同時大幅減少了訓練時間。Cong 等[23]借鑒了GAN 在風格遷移中的技巧,對深度模型的全連接層和卷積層分別運用了修正的FiLM(Feature-wise Linear Modulation)方法[24]和AdaFM(Adaptive Filter Modulation)方法[25],以此生成更加自然的樣本用于記憶,其次還通過分析奇異值壓縮了修正參數減少存儲。Ramapuram 等[26]提出了一種基于變分自動編碼(Variational Auto-Encoder,VAE)的學生-教師架構,學生模型接收來自當前任務的數據和從教師模型回放的數據進行學習,并用函數正則化保持以前的學習性能,學生和老師在任務迭代過程中交替更新。Ye 等[27]提出了一種聯合VAE 和GAN 的終身學習方法,在學習過程中通過捕獲任務的潛在表征信息,不僅能增強GAN 的生成能力,還有利于表征學習且能夠支持包括無監督學習在內的多中下游任務。Lesort 等[28]探索了VAE、GAN、CVAE(Conditional VAE)、CGAN(Conditional GAN)、WGAN(Wasserstein GAN)和WGAN-GP[29]這6 種生成模型與持續學習方法結合的效果,并使用了FID(Fréchet Inception Distance)和IS(Inception Score)兩種針對性的評估指標,發現最原始的GAN 生成回放效果最佳,但依然無法很好地解決環境復雜多變的問題。
無論是保留數據子集還是使用生成式數據,均為避免災難性遺忘提供了良好且直接的技術解決方案,因此后續的大量研究在一定程度上沿用了該技術。
深度學習從理論上是一個優化問題,關鍵的兩個步驟是損失函數的設計和梯度的反向傳播。由于孤立學習范式下的優化過程僅適用于訓練當前任務的模型,缺乏舊知識對新任務的指導,導致了災難性的遺忘。
面對新任務和新數據時,可以通過在設計損失函數時增加約束模擬舊知識的指導,實現持續的學習。例如,Kirkpatrick 等[30]首次提 出了一 種彈性 權重鞏 固(Elastic Weight Consolidation,EWC)方法,基本思想是減小先前任務中重要參數的變化程度,如圖2 所示。在損失函數中也引入一個二次懲罰項并賦予重要參數更大的權重,該權重由計算費雪信息矩陣的對角線來得到,類似于人類大腦能夠通過鞏固突觸來降低可塑性從而實現持續學習。然而EWC 方法只適用于任務差異不大的情況,并且假設參數的聯合分布屬于混合高斯、只使用費雪信息矩陣的對角線作為重要性估計等都是不完善的。針對EWC 方法存在的問題,大量的改進EWC 方法被提出,如Chaudhry 等[31]提出了 一種基 于KL(Kullback-Leibler)散度路徑積分的EWC 推廣方法RWalk(Riemannian Walk),在二次規劃懲罰項中使用移動平均在線更新費雪信息矩陣,并添加改進的PI(Path Integral)因子,共同保證迭代過程中損失下降的方向有效性。Ritter 等[32]在貝葉斯的持續學習框架下,引入了克羅內克分解的在線拉普拉斯近似,以更新每個新任務的二次懲罰,從而把層內參數之間的交互作用考慮在損失函數當中。Zenke 等[33]提出了一種突觸智能(Synaptic Intelligence,SI)方法;由于傳統的一維突觸具有顯著的災難性遺忘問題,因此將突觸升至三維(Three-Dimensional,3D),通過度量突觸的重要性懲罰重要參數的變化,以鞏固過去任務中的重要知識。隨后,Aljundi等[34]提出了一種記憶感知突觸(Memory Aware Synapses,MAS)方法,該方法根據每個任務輸出函數的敏感性來估算參數重要性,實質上是計算參數在數據點對應的偏導數,因此可以用無監督和在線學習的方式實現。Ren 等[35]將小樣本學習引入增量學習框架,提出了一種基于元學習的注意力吸引網絡,通過循環反向傳播優化一個被認為是基類內存的正則化項,以減少增量小樣本學習的災難性遺忘。除了在損失函數中顯式地鞏固不同任務中參數的重要性,Hu 等[36]將一類學習引入持續學習,使用了一種整體正則化方法H-reg(Holistic regularization),H-reg 使學習算法不過度傾向于任何特定的特征,其次通過共享知識模糊決策邊界,以減少類之間的共享知識。

圖2 EWC方法優化示意圖Fig.2 Schematic diagram of optimization of EWC method
約束方面也可以使用知識蒸餾的技術,用蒸餾損失來盡可能保留模型在過去任務上學到的知識。例如,Li 等[37]最早提出了一種經典的基于蒸餾損失的終身學習方法LwF(Learning without Forgetting),用當前數據在舊模型上的輸出作為軟標簽,然后聯合數據本身的分類損失和軟標簽提供的蒸餾損失共同微調模型,如圖3 所示。Rannen 等[38]為每個任務特別地訓練了一個自動編碼器用于捕獲重要的特征,在訓練階段聯合自編碼器損失、分類損失和蒸餾損失一起優化主網絡,以解決由于任務差異較大時引起的誤差累積問題。Dhar 等[39]提出了一種不記憶的增量學習方法LwM(Learning without Memorizing),將注意力引入蒸餾損失,使得卷積神經網絡(Convolutional Neural Network,CNN)能保留定位類別首次訓練時與類高度相關區域的能力。Douillard 等[40]提出了一種合并輸出蒸餾方法,用蒸餾損失約束表示的演化,即不僅將蒸餾方法用于分類器,也用于特征提取階段,是一種基于空間的蒸餾損失;同時引入了一種基于cosine 相似度的新分類器LSC(Local Similarity Classifier),使增量學習模型變得更加魯棒。Cha 等[41]將對比學習引入持續學習過程,以在舊任務中學到更多可轉移的表征,并使用自監督蒸餾來保留學習到的表示。

圖3 LwF方法優化示意圖Fig.3 Schematic diagram of optimization of LwF method
考慮到梯度反向傳播的目的是更新和計算網絡參數,使它盡可能地接近所有任務的全局最優解,因此以梯度的大小和方向作為切入點也可以實現終身學習。Lopez-Paz 等[42]提出了一種經典的基于情景記憶的梯度優化方法GEM(Gradient Episodic Memory),利用情景記憶中的數據產生的梯度來約束新任務的梯度,保證新梯度與舊梯度的夾角為銳角,從而實現最小化的負向遷移,并且可以通過二次規劃的對偶問題進行求解。由于GEM 需要利用情景記憶中所有的數據,會消耗大量的計算在求解問題上,Chaudhry 等[43]在GEM 的基礎上提出了A-GEM(Averaged GEM),通過隨機抽取情景記憶中的樣本模擬舊梯度的平均值,減少約束條件,使得計算和內存都更加高效。Guo 等[44]引入混合隨機梯度MEGA(MixEd stochastic GrAdient)解決GEM 和A-GEM 的局限性,MEGA-I 的大小取決于當前梯度和情景相關梯度以及當前任務和情景記憶的損失;而MEGA-Ⅱ由當前梯度的旋轉得到,大小僅取決于當前梯度。Tang 等[45]將記憶緩沖區中任務的梯度分解為共享和特定兩個部分,要求新任務梯度的更新與共享部分保持一致,以促進新任務的學習;同時,要求與特定部分正交,以保證舊任務的性能,并采用了分層梯度更新策略,減輕了災難性遺忘。Farajtabar 等[46]提出了一種正交梯度下降(Orthogonal Gradient Descent,OGD)方法,通過保持一個舊任務的梯度空間保留先前獲得的知識,當對一個新任務進行訓練時,新任務的梯度將會映射到該梯度空間的正交空間上,最低程度地干擾舊任務的學習。Saha 等[47]在OGD 的基礎上提出了一種梯度投影記憶(Gradient Projection Memory,GPM)方法,將梯度空間進一步分解為核梯度空間(Core Gradient Space,CGS)和殘差 梯度空 間(Residual Gradient Space,RGS),同時有效存儲CGS 的權值,新任務的梯度更新被要求在CGS 的正交空間中。除了梯度,也可以針對參數的更新過程,即以學習率作為方向,實現持續的學習,如Ebrahimi 等[48]提出了一種基于不確定性引導的連續貝葉斯神經網絡,對網絡權重的概率分布定義了一種不確定性,網絡的學習率根據這種不確定性自適應更新,即不確定性越大的參數可以采取更大的梯度。
優化深度網絡是破解終身學習困境的重要步驟,尤其是針對反向傳播過程。在融入先驗知識的基礎上,參數如何在連續任務迭代中的尋優是研究的主要方向。
深度學習的結構設計一直是學界持續研究的方向,與傳統的結構設計不同,終身學習側重于結構在學習過程中的構造方式,為不同的任務自適應地分配不同的參數,以避免新任務的學習影響過去任務的性能。
通過固定網絡結構在內部為每個任務分配參數,實現持續的學習。例如,Fernando 等[49]提出了一種經典的由神經網絡組成的網絡PathNet,將網絡路徑上的每一層模塊化,通過遺傳算法選擇最適合的路徑,在訓練完一個任務后,固定該任務的路徑,然后初始化其他模塊,接著為新任務搜索最優路徑。Rajasegaran 等[50]提出了一種動態的隨機路徑算法,通過重新使用以前的路徑逐步選擇適合新任務的最佳路徑,當一個任務學完后,固定用于未來任務的參數,同時引入了一種堆疊的殘差結構彌補學過的知識。Mallya 等[51]提出了一種基于模型剪枝的終身學習算法PackNet,通過模型剪枝去除對任務不重要的冗余參數,這些參數將用于訓練新的任務;在測試時,通過為各個任務維護一個掩模進而選擇對應的參數進行推理。Serra 等[52]提出了一種硬任務注意力機制HAT(Hard Attention to the Task),通過隨機梯度下降與門控單元,為每個任務學習一個近乎二元的硬注意力掩模,并且新任務網絡權重的更新會受到先前掩模的約束,以此減少災難性遺忘。Mallya 等[53]在PackNet 的基礎上提出了一種改進的二元掩模方法Piggyback,把預訓練好的骨干網絡權值矩陣看作一個固定的常數,通過端到端的學習一種新的掩模,讓一個骨干網絡可以承載無限數量的任務。Hurtado 等[54]提出了一種基于元學習的知識重用方法MARK(MetA Reusable Knowledge),在任務間維護一個共享的權重集合作為知識庫,通過一組可訓練的掩碼器從知識庫中調取適合任務的知識,之后使用元學習更新擴展該知識庫。Abati 等[55]為每個卷積層添加了一個特定于任務的門控模塊,根據給定的輸入特征圖選擇合適的濾波器,其次通過使用稀疏目標保證有足夠的剩余參數學習新的任務。Mazumder 等[56]提出了一種小樣本終身學習方法,即新任務中帶標簽的數據很少,在訓練過程中選擇絕對值小于閾值的網絡參數作為可訓練參數,并結合三聯體損失、正則化損失和余弦相似度損失共同優化特征提取器。
與固定結構相反的是動態結構,它的主要出發點建立在保存模型參數遠比保存數據本身要節省存儲空間的基礎上,一個簡單的解決方法是為每個任務單獨地復制和微調參數,但是獨立的微調無法運用到之前多個任務的知識。Rusu等[57]提出了一種經典的漸進式神經網絡(Progressive Neural Network,PNN)架構,如圖4 所示,每個任務的神經網絡結構相同且參數不共享,當訓練新任務網絡時,通過橫向連接數據在舊任務網絡上的層級輸出并通過適應模塊實現多任務知識的轉移;因此該方法在測試階段需要給出任務索引,以確定使用哪個網絡作為學習器。Aljundi 等[58]提出了一種帶專家門控的終身學習方法Expert gate,該方法為每個任務多訓練一個自動編碼器提取任務特征,這個特征在訓練階段將通過專家門控單元決定使用哪一個在舊任務上訓練好的網絡作為預訓練模型,測試階段將用于激活最適合輸入的專家模型。Yoon 等[59]提出了一種用于終身學習的動態可擴展網絡(Dynamically Expandable Network,DEN)方法,通過執行選擇性再訓練進行在線訓練,對每個新任務只使用必要數量的單元擴展網絡,并通過分裂或復制單元和時間戳有效防止語義漂移,從而在學習時動態地決定網絡的最佳容量。Xu等[60]為解決DEN 方法對超參數過于敏感的問題,提出了一種強化持續學習(Reinforced Continual Learning,RCL)方法,將擴展網絡看作一個組合優化問題,使用強化學習中的演員評論家策略訓練一個控制器,該控制器本質上是一個循環神經網絡,使得新任務到來時能夠自適應地確定每個任務的神經網絡的最佳架構超參數。Li 等[61]提出了一種學會成長的持續學習框架,該框架由用于神經結構優化和參數微調的兩個組件構成,因此將學習模型結構和參數估計兩個步驟分開實現,并且將神經網絡的架構搜索方法用于查詢每個任務的最優網絡結構。Lee 等[62]為各任務構造了一個共享的參數知識庫,當新任務到來時,使用反卷積映射和張量收縮的方法從知識庫中提取CNN 需要的參數,然后同步實現變換參的學習和知識庫的更新,該方法在反向遷移上也取得了不錯的效果。Yoon 等[63]提出了一種加性參數分解(Additive Parameter Decomposition,APD)方法,將網絡的各層參數分解為任務共享和稀疏任務適應的兩類,后者用于補償前者無法解釋的增量差異,并通過追溯過去的任務共享參數防止它在更新時產生過度的偏移。Singh 等[64]使用較少的空間和通道校準參數作用于第一個任務產生的激活特征圖上,并且只需要訓練這些校準參數就能在新任務上達到很好的遷移性能,在計算量和存儲上實現了終身學習的目標。

圖4 PNN架構示意圖Fig.4 Schematic diagram of PNN architecture
不同于靜態和動態地分配參數,Kuo 等[65]提出了一種基于高速公路連接的分類器HCNs(Highway-Connection Classifier Networks)作為全連接層的替代,在GEM、EWC 和HAT 方法中表現出了更好的性能。
基于網絡結構的終身學習是模型由小到大、由稀缺到完整的過程,就像人腦在生活中不斷開發并逐漸博學一樣,這也是挖掘與分析“黑箱”的關鍵一環。
僅僅積累和學習單一形式的知識存在一定的效率局限性,因為深度學習從整體上是相互聯系的架構,其次終身學習系統中的各個組件也是相互關聯的,很難從單一方面實現整體的持續學習,所以在終身學習方面,知識的組合運用能一定程度地發揮更好的效果。
實際上,在前文所述的分類中,許多算法已經從實現上體現了知識組合的特征,如iCaRL 算法,在更新表征學習器的過程中加入了蒸餾損失作為一種正則進行優化,又如經典的GEM 和EWC 算法,在對應的梯度或者參數重要性計算過程中都需要使用過去任務數據的一個子集作為參照;但是這些方法側重點各不相同,所以在分類時暫且歸于單一知識當中。在組合使用上,Nguyen 等[66]提出了一種基于貝葉斯推理的變分持續學習(Variational Continual Learning,VCL)方法,融合了在線變分推理和蒙特卡洛變分推理技術,從過去任務的數據中采集一個核心集以計算模型的后驗信息并與新任務的信息進行合并,成功將VCL 運用到深度學習的判別器和生成器訓練上。Castro 等[67]提出了一種端到端的增量學習方法,像iCaRL 一樣維護了一個固定容量的記憶庫,通過羊群選擇方法實時更新,將蒸餾損失和分類損失融合引入了一種新的交叉蒸餾損失訓練所有的網絡參數。Hou 等[68]在知識蒸餾的基礎上加入了一個新的回顧模塊,該模塊為新任務的訓練提供了一些舊任務數據,其中主網絡的分類損失是由新任務的專家網絡通過蒸餾而來,是對LwF 方法的一種改進。李國鋒[69]在LwF 的基礎上結合樣本記憶方法,并引入特征提取參數稀疏化策略,減少了由數據分布差異導致的權值更新沖突,有效實現了新舊任務知識共享。Wu 等[70]使用GAN 代替iCaRL 方法中的樣本庫生成具有代表性的舊任務樣本,在此基礎上融合交叉熵損失和蒸餾損失進行訓練,并引入了一個標量來解決新舊樣本之間的不平衡問題。He等[71]提出了一種支持樣本復制技術,利用存儲在記憶庫的舊樣本輔助生成舊數據,然后聯合包括新任務數據在內的3種數據共同進行學習。Achille 等[72]提出了一種基于共享嵌入變分自動編碼器(Variational AutoEncoder,VAE)的無監督表示學習方法VASE(Variational Autoencoder with Shared Embeddings),該方法能夠自動地識別數據分布的變化,并將備用的表征數據提供給新任務,通過潛在語義的共享實現各任務表示的動態增長。Ostapenko 等[73]在突出可塑性框架下提出了一種動態生成記憶(Dynamic Generative Memory,DGM)方法,該方法結合了DGR 和HAT 方法,依賴于條件對抗網絡逐步地學習新任務而不需要回放過去的知識,同時確保每個任務的自由參數數量恒定以自適應地擴展網絡。Yang 等[74]提出了一種增量自適應深度模型(Incremental Adaptive Deep Model,IADM),為隱藏層提供了一個額外的注意力機制實現網絡的可擴展性,同時采用自適應的費雪信息矩陣解決可持續性問題。Gupta 等[75]提出了一種基于快速優化的元學習在線持續學習算法La-MAML(Look-ahead Model-Agnostic Meta Learning),利用回放緩沖區優化元目標減輕遺忘,結合對每個參數學習率的調制,使模型能夠與以前有關超梯度和元下降的工作建立聯系。Choi 等[76]提出了一種結合無數據生成式回放(Data-Free Generative Replay,DF-GR)和雙教師信息蒸餾(Dual-Teacher Information Distillation,DT-ID)的類增量學習方法,其中生成模型由當前的模型訓練得到,新任務和舊任務的訓練模型同時作為教師進行知識蒸餾。
組合知識的運用往往涉及多種方法的組合,意味著目前還沒有一個固定的解決范式,因此可以廣泛地吸納各種技術,如前文所提到的貝葉斯推理、元學習和GAN 等,為終身學習提供了廣闊的研究空間。
終身學習不僅在解決基礎問題中開闊了研究空間,也逐漸助力 于目標檢測(Object Detection)[77-81]、語義分 割(Semantic Segmentation)[77-81]、圖像生成[90-95]和其他[96-102]等各類計算機視覺的研究方向。
目標檢測的任務旨在探測圖像中所有感興趣的物體,具體就是要給出感興趣目標的類別以及位置。在終身學習的范式下,要求檢測器在沒有以前的訓練數據情況下能夠不斷地檢測新的對象,如圖5[80]所示。

圖5 目標檢測中的終身學習Fig.5 Lifelong learning in object detection
Shmelkov 等[77]在Fast R-CNN 框架的基礎上,引入知識蒸餾方法,對每一張新任務的圖像,隨機選擇背景分較低的ROI(Region Of Interest)計算蒸餾損失,然后聯合新任務損失共同優化擴展的檢測網絡,有效減輕了災難性遺忘,實質上是LwF 的延伸。Pérez-Rúa 等[78]定義了一類逐步的少樣本目標檢測問題,并以CentreNet 為骨架提出了ONCE(OpeN-ended Centre nEt)方法,使用元學習方法在小樣本數據集上獲取一個特定的編碼生成器,以前饋的方式遞增地檢測新類。Joseph 等[79]引入了一個開放世界的目標檢測問題,并以Faster R-CNN 為基礎提出了一種解決方案ORE(Open World Object Detector),基于對比聚類和能量來識別學習未知類,通過保存一個類平衡的樣本集合對模型進行微調來實現增量學習。Zhou 等[80]在區域建議網絡和區域分類網絡上同時應用知識蒸餾,以保留對先前任務的檢測,同時提出了一種偽正值感知采樣策略,以進一步提高蒸餾質量從而鞏固記憶。Liu 等[81]使用自下而上和自上而下的注意力來重點關注空間前景區域和有用的上下文信息,并提出了一種自適應的樣本抽樣方法,以利用之前任務中包含更多信息和多樣性的樣本。
語義分割是指將圖像分成若干具有相似性質的區域的過程,本質上是像素級別的分類任務。在終身學習的范式下,要求模型能夠持續學習新類別,而無需從頭開始再訓練。語義分割中的終身學習如圖6[86]所示。

圖6 語義分割中的終身學習Fig.6 Lifelong learning in semantic segmentation
Baweja 等[82]首次將EWC 方法應用在了醫學圖像分割上,但只在兩個連續的任務上評估了該方法,相較于微調顯著減少了災難性遺忘。?zgün 等[83]提出了一種基于重要性驅動的持續學習語義分割方法,并應用在了醫學圖像的大腦分割數據上,該方法在MAS 的基礎上將學習率作為正則化以限制模型參數的重要性。Michieli 等[84]提出了幾種新的蒸餾損失函數,應用于網絡的輸出層和中間特征層,并凍結了網絡的編碼器部分以保留特征提取能力。Li 等[85]提出了一種基于雙蒸餾和集成策略的持續語義分割方法,通過專家分類器和舊分類器同時蒸餾大量知識學習更新分類器,并聯合過去任務數據的一部分和新任務數據一起訓練集成知識。Cermelli 等[86]在經典的基于蒸餾的增量學習框架基礎上,引入兩個新的損失項合理解釋背景類中語義分布轉移的問題。Douillard 等[87]提出了一種使用局部多尺度池化蒸餾的方法,結合了基于置信度的偽標簽和局部POD(Pooled Outputs Distillation)[40]兩種方法,利用舊模型通過保持長程和短程的空間關系避免災難性遺忘。Maracani 等[88]提出了一種基于回放的持續語義分割模型RECALL,第一種方法是利用GAN從過去學習步驟的類空間中采樣;第二種方法依賴于網絡爬蟲的數據從在線數據庫中檢索包含舊類示例的圖像。Michieli 等[89]通過原型匹配和聚類保留舊類的潛在表示,利用對比學習的稀疏性和排斥為新類騰出空間,同時解碼器使用知識蒸餾保存先前的知識。
圖像生成是從現有數據集中生成新的圖像,目前GAN模型由于強大的性能成為了圖像生成模型的首選。在終身學習范式下,生成器能夠在不使用舊數據的前提下保證所有數據的生成質量。
Seff 等[90]利用EWC 中的正則化方法增強了GAN 中生成器的損失函數,使GAN 可以對不同的條件輸入集進行連續訓練且不需使用先前任務的數據,從而對抗災難性遺忘。Wu 等[91]通過修改DGR 的框架提出了具有記憶重放的GAN(Memory Replay GANs,MeRGAN)方法,將無條件GAN 替換為條件GAN,并對比了聯合重放和重放對準兩種訓練方式。Rios 等[92]提出了一種累積閉環內存回放的GAN(Closed-loop memory GAN,CloGAN)方法,隨著新任務的學習舊數據通過從當前狀態下的生成器連續采樣逼近,形成一個閉環訓練范式,并通過構建一個小的動態內存緩沖區實現外部正則化。Zhai 等[93]提出了一種基于不同圖像條件的終身GAN 方法,不同于過去的類條件生成模型,該方法在BicycleGAN[22]的基礎上利用知識蒸餾技術將學習到的知識從以前的網絡轉移到新的網絡中。Zhai 等[94]提出了一種參數有效的終身條件生成框架Piggyback GAN,通過構建一組卷積和反卷積學習當前任務,能夠在較低的參數數量下產生高質量生成,對于以前的任務,通過重用卷積子集保持舊任務的生成質量。Zhai 等[95]隨后提出了一種可擴展的終身條件生成模型Hyper-LifelongGAN,將所有卷積分解為動態基卷積和線性組合基卷積的權重矩陣,并在不同任務之間共享該確定性的矩陣,然后使用超網絡從隨機噪聲中生成動態基卷積。
終身學習除了應用在主流的圖像分類、檢測、分割和生成任務中,在其他計算機視覺任務上也能發揮一定的作用,它們的本質都是把特定的任務代入終身學習范式中,實現持續的學習。
Zhou 等[96]為連續地去除不同類型的降雨條紋,提出了一種基于參數重要性引導的權重修正(Parameter Importance Guided Weights Modification,PIGWM)方法,當遇到新任務時,已訓練好的網絡將根據它在之前的訓練數據集上評估的重要性更新權重。Zhu 等[97]將基于CNN 的超像素分割重新定義為一個終身聚類任務,并提出了一種無監督方法,該方法通過輕量級特征嵌入器生成特征,并根據通道和空間上下文重新調整權值梯度適應順序終身學習。Pu 等[98]提出了一種終身的人員重新識別方法,該方法被設置在了一個具有知識表征和知識操作的自適應知識積累框架中,通過整合塑性損失和穩定性損失實現看不見域上泛化的最優平衡。Fan等[99]提出了一個統一的小樣本終身主動識別框架FLAR(Few-sample Lifelong Active Recognition),有限的樣本以優先級順序存儲在代理內存中,利用知識蒸餾機制為樣本復制一致的輸出,并在學習新類的過程中合并舊類的分布。Li等[100]提出了一種多層彈性單元的彈性語義網絡Else-Net 解決行為識別的持續學習問題,彈性單元存儲了來自不同人類行為的不同知識,并使用一個開關選擇最相關的學習塊學習新任務,不相關的學習塊將會被凍結以避免遺忘。Rostami等[101]將終身學習方法引入人臉表示攻擊檢測研究中,利用新的樣本和存儲在重放緩沖區中的樣本,通過偽排練和重放緩沖區更新模型。Wang 等[102]也把終身學習中的經驗重放技術應用于基于圖像的相機定位任務中,提出了一種新的基于覆蓋率評分的采樣方法,使現有的采樣策略在緩沖過程中能夠適應3D 環境的數據。
終身學習方法的評估與傳統機器學習側重點不同,不僅要專注于個別任務的準確率,而且還要從任務流的角度評估整個系統的性能表現。另外,以最終模型作整體評估往往會忽略終身學習的動態特性,無法洞悉過程的變化,因此使用階段性的評估會更加直觀和可靠。
定義Mt為已經執行 完第t個任務時的模型,at,i為Mt在第i個任務上的準確率。在階段t,4 個常用的和需要考慮的評估指標[31,42,103]如下。
1)平均準確率。度量在階段t該終身學習方法的整體表現:
2)向后遷移能力。度量在階段t對先前任務的影響力:
3)向前遷移能力。度量在階段t前各學習成果對未來任務的影響力:
其中ri為第i個任務進行隨機初始化訓練后的準確率。
4)平均遺忘率。度量在階段t造成的最大遺忘程度:
以上是多數研究方案中采取的4 個評估指標,分別從性能、遷移能力和遺忘程度進行考核。實際上,對于一個終身學習系統,還需要對知識的存儲進行考量。
定義存儲樣本的內存總量為S,Mt的模型參數內存使用量為Pt,用于存儲樣本子集的內存使用量為St。
5)模型存儲效率。不要隨著學習模型大小增長得太快:
6)樣本存儲效率。應該受到最后一個任務結束時存儲樣本占用內存的限制:
前文對終身學習在計算機視覺領域的應用進行了總結與歸納,本章將簡單探討現階段終身學習方法可以發展的空間。
首先,現有方法還存在一些局限性阻礙了終身學習的發展:1)通過放寬對過去數據的存儲限制使用部分進行回憶容易造成對子集的過擬合,如何使用少量的數據來喚起在舊任務上的全部性能是亟須解決的問題。2)使用生成式數據最關鍵的問題是永遠無法得到最自然和包含完整信息的圖像,而且學習模型與生成模型往往是解耦的,因此又進一步加大了信息的丟失。3)為CNN 的優化過程添加一個約束作為舊任務的指導在分布差異較大的任務間很難持續進行,而且誤差的逐步積累也會增加約束的不確定性,因此需要在非平穩的任務流之間取得約束平衡。4)由于CNN 無論是動態還是靜態地為任務分配網絡參數都不能充分利用積累的信息,那么用新任務的知識提升過去任務的性能就更加困難,這主要是缺乏了整體上的融合與變遷。
其次,計算機視覺領域中大部分的終身學習研究是用于處理圖像分類任務,這束縛了對終身學習的理解,因為在定義中并沒有對任務流中的任務進行嚴格限制。從人類世界的角度而言,大腦是一個十分復雜的系統,能夠處理各種各樣的信息,在理解視覺信息的時候可能會使用到其他的信息如聽覺。因此在未來的工作中應該逐漸放寬對任務的要求,讓系統能夠吸納更多樣的知識。另外在最近的研究中,越來越多的方法如對比學習、小樣本學習、元學習和無監督學習等被引入了終身學習過程中,這是一個很好的趨勢,因為人類學習的方式確實不是單一的。在多模態多方法的融合下,終會找到一個統一的有效的框架來定格終身學習范式。
最后,雖然在定義中終身學習的目標之一是保留舊任務上的性能,大多數方法也確實是在主攻災難性遺忘問題,但實際上終身學習還需要在此基礎上能夠通過新任務的學習優化整個系統,即實現有效的負向遷移,這是在未來非常值得探索的一個方向,也是走向通用人工智能的必經之路。
本文主要回顧了終身學習在圖像分類任務上的基本方法,介紹了在其他計算機視覺任務上的成功應用,最后簡要探討了在未來可以進一步推動終身學習發展的方向。終身學習給予了模型在動態環境中更多更強大的學習能力,雖然目前仍處于起步階段,但不可置疑這是人工智能發展的重要一環,無論是理論上的研究,還是工業界的落地都具有非常大的意義。