增量學習 -Incremental Learning- 小綜述

來自 | 知乎

作者 | 科技州

地址 | https://zhuanlan.zhihu.com/p/353273834

編輯 | 機器學習算法與自然語言處理公衆號

本文僅作學術分享,若侵權,請聯繫後臺刪文處理

以下文章來源於 NewBeeNLP ,作者 Maple 小七

  1. 增量學習的概念

1.1 什麼是增量學習

人類有終身不斷獲取、調整和轉移知識的能力,雖然在我們的一生中,我們確實傾向於逐漸忘記之前學習過的知識,但只有在極少的情況下,對新知識的學習會災難性地影響已經學到的知識,這樣的學習能力被稱爲增量學習的能力。

具體來講,「增量學習的能力就是能夠不斷地處理現實世界中連續的信息流,在吸收新知識的同時保留甚至整合、優化舊知識的能力。」

增量學習 (Incremental Learning) 已經有 20 多年的研究歷史,但增量學習更多地起源於認知神經科學對記憶和遺忘機制的研究,因此不少論文的 idea 都啓發於認知科學的發展成果,本文不會探討增量學習的生物啓發,關於面向生物學和認知科學的增量學習綜述可見 Continual lifelong learning with neural networks: A review[1]。

1.2 爲什麼要增量學習

在機器學習領域,增量學習致力於解決模型訓練的一個普遍缺陷:「災難性遺忘 (catastrophic forgetting)」 ,也就是說,一般的機器學習模型 (尤其是基於反向傳播的深度學習方法) 在新任務上訓練時,在舊任務上的表現通常會顯著下降。

造成災難性遺忘的一個主要原因是「傳統模型假設數據分佈是固定或平穩的,訓練樣本是獨立同分布的」,所以模型可以一遍又一遍地看到所有任務相同的數據,但當數據變爲連續的數據流時,訓練數據的分佈就是非平穩的,模型從非平穩的數據分佈中持續不斷地獲取知識時,新知識會干擾舊知識,從而導致模型性能的快速下降,甚至完全覆蓋或遺忘以前學習到的舊知識。

爲了克服災難性遺忘,我們希望模型一方面必須表現出從新數據中整合新知識和提煉已有知識的能力 (可塑性),另一方面又必須防止新輸入對已有知識的顯著干擾 (穩定性)。這兩個互相沖突的需求構成了所謂的「穩定性 - 可塑性困境 (stability-plasticity dilemma)」。

解決災難性遺忘最簡單粗暴的方案就是使用所有已知的數據重新訓練網絡參數,以適應數據分佈隨時間的變化。儘管從頭訓練模型的確完全解決了災難性遺忘問題,但這種方法效率非常低,極大地阻礙了模型實時地學習新數據。而增量學習的主要目標就是在計算和存儲資源有限的條件下,在穩定性 - 可塑性困境中尋找效用最大的平衡點。

1.3 增量學習的特點

增量學習和持續學習 (Continual Learning)、終身學習(Lifelong Learning) 的概念大致是等價的,它們都是在連續的數據流中訓練模型,隨着時間的推移,更多的數據逐漸可用,同時舊數據可能由於存儲限制或隱私保護等原因而逐漸不可用,並且學習任務的類型和數量沒有預定義(例如分類任務中的類別數)。

但增量學習目前還沒有一個特別清晰的定義,因此比較容易與在線學習,遷移學習和多任務學習等概念混淆,「尤其要注意增量學習和在線學習的區別,在線學習通常要求每個樣本只能使用一次,且數據全都來自於同一個任務,而增量學習是多任務的,但它允許在進入下一個任務之前多次處理當前任務的數據」。上圖表現了增量學習和其他學習範式的區別,一般來說,增量學習有如下幾個特點:

由於增量學習問題的複雜性和挑戰的多樣性,人們通常只討論特定設置下的增量學習。以一個圖像分類模型爲例,我們希望模型具有增量學習新的圖像和新的類別的能力,但前者更多地與遷移學習有關,因此任務增量學習 (Task-incremental Learning) 和難度更高一點的類增量學習 (Class-incremental Learning) 是深度學習社區當前主要考慮的增量學習範式。

「本文主要討論近幾年關注度最高的類增量學習範式」,更廣泛更詳細的增量學習介紹可參考專著《Lifelong Machine Learning》[2]。

  1. 增量學習的實現方式

增量學習是一個連續不斷的學習過程,在這個過程中,我們假設模型已經學習了前 個任務:,當面對任務 和對應的數據 時,我們希望可以利用從舊任務中學習到的先驗知識幫助 的學習,然後更新模型所學習到的知識。這個過程要求我們在當前任務 中尋找參數 最小化下面的損失函數:

其中舊數據 是部分可見或完全不可見的。

增量學習方法的種類有很多種劃分方式,本文將其劃分爲以下三種範式:

其中基於正則化和回放的增量學習範式受到的關注更多,也更接近增量學習的真實目標,參數隔離範式需要引入較多的參數和計算量,因此通常只能用於較簡單的任務增量學習。關於其他劃分方式和不同類別的增量學習的優缺點對比可見 A Comprehensive Study of Class Incremental Learning Algorithms for Visual Tasks[3],下面僅介紹基於正則化和回放的增量學習的經典方法以及相關進展。

2.1 基於正則化的增量學習

基於正則化的增量學習的主要思想是「通過給新任務的損失函數施加約束的方法來保護舊知識不被新知識覆蓋」,這類方法通常不需要用舊數據來讓模型複習已學習的任務,因此是最優雅的一類增量學習方法。Learning without Forgetting (ECCV 2016)[4] 提出的 LwF 算法是基於深度學習的增量學習的里程碑之作,在介紹 LwF 算法之前,我們先了解一些最簡單的增量學習方法。

上圖展示了一個具有多頭網絡結構的模型學習新任務的不同策略,其中 (a) 爲已經訓練好的基於 CNN 的原始模型, 表示不同任務共享的 CNN 參數, 表示與原始任務相關的 MLP 參數,當加入一個新的分類任務時,我們可以增加一個隨機初始化的 MLP 參數 。基於 來學習 的方法包括如下幾類:

LwF 算法是介於聯合訓練和微調訓練之間的訓練方式,LwF 的特點是它不需要使用舊任務的數據也能夠更新 。LwF 算法的主要思想來自於 knowledge distillation[5],也就是使新模型在新任務上的預測和舊模型在新任務上的預測相近。

具體來說,LwF 算法先得到舊模型在新任務上的預測值,在損失函數中引入新模型輸出的蒸餾損失,然後用微調的方法在新任務上訓練模型,從而避免新任務的訓練過分調整舊模型的參數而導致新模型在舊任務上性能的下降。算法流程如下圖所示,其中 用於權衡模型的穩定性和可塑性。

但是,這種方法的缺點是高度依賴於新舊任務之間的相關性,當任務差異太大時會出現任務混淆的現象 (inter-task confusion),並且一個任務的訓練時間會隨着學習任務的數量線性增長,同時引入的正則項常常不能有效地約束模型在新任務上的優化過程。

不少研究者圍繞着 LwF 算法的思想提出了很多改進策略,比較有名的包括 Encoder Based Lifelong Learning (ICCV 2017)[6] 提出的基於低維特徵映射的 EBLL 算法,以及 Overcoming catastrophic forgetting in neural networks (PNAS 2017)[7] 提出的基於貝葉斯框架的 EWC 算法,EWC 算法實際上對應了一個通用的「參數約束」方法,它引入了一個額外的和參數有關的正則損失:

該損失會根據不同參數的重要性來鼓勵新任務訓練得到的新模型參數儘量靠近舊模型參數。後續對 EWC 作出改進了論文也很多,比如 Rotate your Networks: Better Weight Consolidation and Less Catastrophic Forgetting (ICPR 2018)[8]。

概括起來,基於正則化的增量學習方法通過引入額外損失的方式來修正梯度,保護模型學習到的舊知識,提供了一種緩解特定條件下的災難性遺忘的方法。不過,雖然目前的深度學習模型都是過參數化的,但模型容量終究是有限的,我們通常還是需要在舊任務和新任務的性能表現上作出權衡。近幾年,不少研究者也提出了各種類型的正則化手段,有興趣的話可以參考下面的論文:

2.2 基於回放的增量學習

從字面意思上來看,基於回放的增量學習的基本思想就是 "溫故而知新",在訓練新任務時,一部分具有代表性的舊數據會被保留並用於模型複習曾經學到的舊知識,因此「要保留舊任務的哪部分數據,以及如何利用舊數據與新數據一起訓練模型」,就是這類方法需要考慮的主要問題。

iCaRL: Incremental Classifier and Representation Learning (CVPR 2017)[12] 是最經典的基於回放的增量學習模型,iCaRL 的思想實際上和 LwF 比較相似,它同樣引入了蒸餾損失來更新模型參數,但又放鬆了完全不能使用舊數據的限制,下面是 iCaRL 設計的損失函數:

LwF 在訓練新數據時完全沒用到舊數據,而 iCaRL 在訓練新數據時爲每個舊任務保留了一部分有代表性的舊數據 (iCaRL 假設越靠近類別特徵均值的樣本越有代表性),因此 iCaRL 能夠更好地記憶模型在舊任務上學習到的數據特徵。

另外 Experience Replay for Continual Learning (NIPS 2019)[13] 指出這類模型可以動態調整舊數據的保留數量,從而避免了 LwF 算法隨着任務數量的增大,計算成本線性增長的缺點。基於 iCaRL 算法的一些有影響力的改進算法包括 End-to-End Incremental Learning (ECCV 2018)[14] 和 Large Scale Incremental Learning (CVPR 2019)[15],這些模型的損失函數均借鑑了知識蒸餾技術,從不同的角度來緩解災難性遺忘問題,不過災難性遺忘的問題還遠沒有被滿意地解決。

iCaRL 的增量學習方法會更新舊任務的參數 ,因此很可能會導致模型對保留下來的舊數據產生過擬合,Gradient Episodic Memory for Continual Learning (NIPS 2017)[16] 針對該問題提出了梯度片段記憶算法 (GEM),GEM 只更新新任務的參數而不干擾舊任務的參數,GEM 以不等式約束的方式修正新任務的梯度更新方向,從而希望模型在不增大舊任務的損失的同時儘量最小化新任務的損失值。

GEM 方向的後續改進還有 Efficient Lifelong Learning with A-GEM (ICLR 2019)[17] 和 Gradient based sample selection for online continual learning (NIPS 2019)[18]。

另外,也有一些工作將 VAE 和 GAN 的思想引入了增量學習,比如 Variational Continual Learning (ICLR 2018)[19] 指出了增量學習的貝葉斯性質,將在線變分推理和蒙特卡洛採樣引入了增量學習,Continual Learning with Deep Generative Replay (NIPS 2017)[20] 通過訓練 GAN 來生成舊數據,從而避免了基於回放的方法潛在的數據隱私問題,這本質上相當於用額外的參數間接存儲舊數據,但是生成模型本身還沒達到很高的水平,這類方法的效果也不盡人意。

總體來說,基於回放的增量學習的主要缺點是需要額外的計算資源和存儲空間用於回憶舊知識,當任務種類不斷增多時,要麼訓練成本會變高,要麼代表樣本的代表性會減弱,同時在實際生產環境中,這種方法還可能存在「數據隱私泄露」的問題。

  1. 增量學習的應用

增量學習的優點是可以隨時訓練新數據,不需要保留大量訓練數據,因此存儲和計算開銷都比較小,同時還能夠有效避免用戶的隱私泄露問題,這在「移動邊緣計算的場景」下是非常有價值有意義的。「但目前的增量學習依舊是一個很開放的研究問題,很大程度上還處於理論探索階段,在很多方面學界都沒有達成統一的共識,不少論文給出的結論常常會相互衝突,因此增量學習還沒有在細分領域中得到大規模的應用和落地。」

3.1 計算機視覺

大部分增量學習研究都是面向圖像分類任務的,近幾年也有不少論文將增強學習推廣到了更復雜目標檢測和語義分割任務上,下面列舉了一些有代表性的工作。

圖像分類

目標檢測

語義分割

3.2 自然語言處理

目前增量學習的研究主要還是面向計算機視覺,在自然語言處理領域還沒有得到太多關注。一個主要原因是目前自然語言處理社區的注意力主要集中在以 BERT 爲代表的自監督表示學習上,在大規模預訓練模型的推廣下,增量學習的應用價值就不是太明顯了。

3.3 機器人

機器人是增量學習天然的應用場景,因爲機器人必須學會通過連續的觀察來適應環境並與之互動,增量學習正好能夠很好地刻畫真實世界的環境,不過機器人領域本身有很多更重要的問題需要解決,因此增量學習的應用也不太多。

  1. 增量學習面臨的問題和挑戰

4.1 定量評估指標

增量學習的一些常見評估指標包括「準確率、記憶能力和遷移能力」等,其中記憶能力和遷移能力是衡量模型可塑性和穩定性的指標,但這些指標具體的公式定義卻是有爭議的。雖然人們已經提出了各種各樣的增量學習方法,但是在基準數據集的選取和評估算法有效性的指標上還沒有達成廣泛的共識。

其中一點是增量學習通常需要引入額外的超參數來平衡模型的穩定性和可塑性,這些超參數通常在驗證集上被優化,「但這本質上違反了增量學習不能獲取未來數據的因果律,從而會導致人們作出過於樂觀的結論,在真實的生產環境中常常無法重現實驗結果。」

針對超參數選取的問題,A continual learning survey: Defying forgetting in classification tasks (2020)[35] 提出了一種通用的增量學習超參數搜索框架,並設計了一系列相對公平的指標來比較增量學習算法,彙報了一些 SOTA 增量學習算法的表現。

在此基礎上,Class-incremental learning: survey and performance evaluation (2020)[36]在多個數據集上對最新的一些增量學習方法進行了綜合對比,作者發現在基於正則化的增量學習中,最早提出的 LwF 算法的表現是相當穩健的,許多後續改進的方法在一些條件下反而不如 LwF 算法,另外基於數據約束的方法 (LwF) 實際上通常比基於參數約束的方法 (EWC) 表現得更好,然而目前人們的研究注意力是偏向後者的。下面是另外一些討論和提出增量學習評估指標和模型對比的論文,這裏不再一一介紹:

4.2 真正的增量學習

增量學習本身是一個很開放的概念,目前人們研究的基於深度學習的增量學習大多限制在「有監督分類、任務式增量和多頭網絡結構的框架」下,這種特定領域的訓練方案通常不能直接應用於高度動態化和非結構化的真實環境中,Towards Robust Evaluations of Continual Learning[40] 指出「多頭設定下的增量學習隱藏了增量學習問題真正的難度」。另外,雖然目前人們主要研究的是有監督學習,但探索更接近真實環境的無監督增量學習,以及其他類型的增量方式也是非常有意義的。

目前的增量學習方法通常「隱式地要求任務的性質差異不能太大」,當任務的性質和難度差異太大時,大部分增量學習方法的性能都會嚴重下降,甚至低於簡單的基線模型。另外,有不少研究表明「目前還沒有任何一種增量學習方法在任何條件下都能表現良好」,大部分增量學習方法「對模型結構,數據性質、超參設定都比較敏感」,因此探索在所有任務設定中表現更穩健的增量學習方法也是很有意義的。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/fWUrS05w35jr1dTqQZexJA