增量學習(Incremental Learning)小綜述

NewBeeNLP公衆號原創出品       node

公衆號專欄做者 @Maple小七     web

北京郵電大學·模式識別與智能系統面試


1. 增量學習的概念

1.1 什麼是增量學習

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

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

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

1.2 爲何要增量學習

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

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

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

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

1.3 增量學習的特色

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

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

  • 學習新知識的同時可以保留之前學習到的大部分知識,也就是模型在舊任務和新任務上均能表現良好。
  • 計算能力與內存應該隨着類別數的增長固定或者緩慢增加,最理想的狀況是一旦完成某一任務的學習,該任務的觀測樣本便被所有丟棄。
  • 模型能夠重新任務和新數據中持續學習新知識,當新任務在不一樣時間出現,它都是可訓練的。

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

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

2. 增量學習的實現方式

增量學習是一個接二連三的學習過程,在這個過程當中,咱們假設模型已經學習了前 個任務: ,當面對任務 和對應的數據 時,咱們但願能夠利用從舊任務中學習到的先驗知識幫助 的學習,而後更新模型所學習到的知識。這個過程要求咱們在當前任務 中尋找參數 最小化下面的損失函數:

其中舊數據 是部分可見或徹底不可見的。

增量學習方法的種類有不少種劃分方式,本文將其劃分爲如下三種範式:

  • 正則化(regularization)
  • 回放(replay)
  • 參數隔離(parameter isolation)

其中基於正則化和回放的增量學習範式受到的關注更多,也更接近增量學習的真實目標,參數隔離範式須要引入較多的參數和計算量,所以一般只能用於較簡單的任務增量學習。關於其餘劃分方式和不一樣類別的增量學習的優缺點對比可見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參數 。基於 來學習 的方法包括以下幾類:

  • 微調(Fine-tuning):微調沒有舊任務參數和樣本的指導,所以模型在舊任務上的表現幾乎必定會變差,也就是發生災難性遺忘。

  • 聯合訓練(Joint Training):聯合訓練至關於在全部已知數據上從新訓練模型,效果最好,所以一般被認爲是「增量學習的性能上界」,但訓練成本過高。

  • 特徵抽取(Feature Extraction):特徵抽取只訓練 ,共享參數 沒有獲得更新,雖然不影響模型在舊任務上的表現,但不能有效捕獲新任務獨有的特徵表示,在新任務上的表現一般不如人意。

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]

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

  • Learning without Memorizing (CVPR 2019) [9]
  • Learning a Unified Classifier Incrementally via Rebalancing (CVPR 2019) [10]
  • Class-incremental Learning via Deep Model Consolidation (WACV 2020) [11]

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來生成舊數據,從而避免了基於回放的方法潛在的數據隱私問題,這本質上至關於用額外的參數間接存儲舊數據,可是生成模型自己還沒達到很高的水平,這類方法的效果也不盡人意。

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

3. 增量學習的應用

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

3.1 計算機視覺

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

圖像分類

  • A comprehensive, application-oriented study of catastrophic forgetting in DNNs (ICLR 2019) [21]
  • A Comprehensive Study of Class Incremental Learning Algorithms for Visual Tasks [22]

目標檢測

  • Incremental Few-Shot Object Detection (CVPR 2020) [23]
  • Incremental Learning of Object Detectors without Catastrophic Forgetting (ICCV 2017) [24]

語義分割

  • Modeling the Background for Incremental Learning in Semantic Segmentation (CVPR 2020) [25]
  • Incremental Learning Techniques for Semantic Segmentation (ICCV workshop 2019) [26]
  • Incremental Learning for Semantic Segmentation of Large-Scale Remote Sensing Data [27]

3.2 天然語言處理

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

  • LAMOL: LAnguage MOdeling for Lifelong Language Learning (ICRL 2020) [28]
  • Episodic Memory in Lifelong Language Learning (NIPS 2019) [29]
  • Continual Learning for Sentence Representations Using Conceptors (NAACL 2019) [30]
  • Neural Topic Modeling with Continual Lifelong Learning (ICML 2020) [31]
  • Incremental Natural Language Processing: Challenges, Strategies, and Evaluation (COLING 2018) [32]

3.3 機器人

機器人是增量學習自然的應用場景,由於機器人必須學會經過連續的觀察來適應環境並與之互動,增量學習正好可以很好地刻畫真實世界的環境,不過機器人領域自己有不少更重要的問題須要解決,所以增量學習的應用也不太多。

  • Continual Learning for Robotics: Definition, Framework, Learning Strategies, Opportunities and Challenges [33]
  • Efficient Adaptation for End-to-End Vision-Based Robotic Manipulation (ICML workshop 2020) [34]

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

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)表現得更好,然而目前人們的研究注意力是偏向後者的。下面是另一些討論和提出增量學習評估指標和模型對比的論文,這裏再也不一一介紹:

  • A comprehensive, application-oriented study of catastrophic forgetting in DNNs (ICLR 2019) [37]
  • Don’t forget, there is more than forgetting: new metrics for Continual Learning (ICML workshop 2020) [38]
  • Towards robust evaluations of continual learning [39]

4.2 真正的增量學習

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

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

一塊兒交流

想和你一塊兒學習進步!『NewBeeNLP』目前已經創建了多個不一樣方向交流羣(機器學習 / 深度學習 / 天然語言處理 / 搜索推薦 / 圖網絡 / 面試交流 /  等),名額有限,趕忙添加下方微信加入一塊兒討論交流吧!(注意必定要備註信息才能經過)

本文參考資料

[1]

Continual lifelong learning with neural networks: A review: https://arxiv.org/pdf/1802.07569.pdf

[2]

《Lifelong Machine Learning》: https://www.cs.uic.edu/~liub/lifelong-machine-learning-draft.pdf

[3]

A Comprehensive Study of Class Incremental Learning Algorithms for Visual Tasks: https://arxiv.org/abs/2011.01844

[4]

Learning without Forgetting (ECCV 2016): https://arxiv.org/abs/1606.09282

[5]

knowledge distillation: https://arxiv.org/abs/1503.02531

[6]

Encoder Based Lifelong Learning (ICCV 2017): https://arxiv.org/abs/1704.01920

[7]

Overcoming catastrophic forgetting in neural networks (PNAS 2017): https://arxiv.org/abs/1612.00796

[8]

Rotate your Networks: Better Weight Consolidation and Less Catastrophic Forgetting (ICPR 2018): https://arxiv.org/abs/1802.02950

[9]

Learning without Memorizing (CVPR 2019): https://arxiv.org/abs/1811.08051

[10]

Learning a Unified Classifier Incrementally via Rebalancing (CVPR 2019): https://openaccess.thecvf.com/content_CVPR_2019/papers/Hou_Learning_a_Unified_Classifier_Incrementally_via_Rebalancing_CVPR_2019_paper.pdf

[11]

Class-incremental Learning via Deep Model Consolidation (WACV 2020): https://arxiv.org/abs/1903.07864

[12]

iCaRL: Incremental Classifier and Representation Learning (CVPR 2017): https://arxiv.org/abs/1611.07725

[13]

Experience Replay for Continual Learning (NIPS 2019): https://arxiv.org/abs/1811.11682

[14]

End-to-End Incremental Learning (ECCV 2018): https://arxiv.org/abs/1807.09536

[15]

Large Scale Incremental Learning (CVPR 2019): https://arxiv.org/abs/1905.13260

[16]

Gradient Episodic Memory for Continual Learning (NIPS 2017): https://arxiv.org/abs/1706.08840

[17]

Efficient Lifelong Learning with A-GEM (ICLR 2019): https://arxiv.org/abs/1812.00420

[18]

Gradient based sample selection for online continual learning (NIPS 2019): https://arxiv.org/abs/1903.08671

[19]

Variational Continual Learning (ICLR 2018): https://arxiv.org/abs/1710.10628

[20]

Continual Learning with Deep Generative Replay (NIPS 2017): https://arxiv.org/abs/1705.08690

[21]

A comprehensive, application-oriented study of catastrophic forgetting in DNNs (ICLR 2019): https://arxiv.org/abs/1905.08101

[22]

A Comprehensive Study of Class Incremental Learning Algorithms for Visual Tasks: https://arxiv.org/abs/2011.01844

[23]

Incremental Few-Shot Object Detection (CVPR 2020): https://arxiv.org/abs/2003.04668

[24]

Incremental Learning of Object Detectors without Catastrophic Forgetting (ICCV 2017): https://arxiv.org/abs/1708.06977

[25]

Modeling the Background for Incremental Learning in Semantic Segmentation (CVPR 2020): https://arxiv.org/abs/2002.00718

[26]

Incremental Learning Techniques for Semantic Segmentation (ICCV workshop 2019): https://arxiv.org/abs/1907.13372

[27]

Incremental Learning for Semantic Segmentation of Large-Scale Remote Sensing Data: https://arxiv.org/abs/1810.12448

[28]

LAMOL: LAnguage MOdeling for Lifelong Language Learning (ICRL 2020): https://arxiv.org/abs/1909.03329

[29]

Episodic Memory in Lifelong Language Learning (NIPS 2019): https://arxiv.org/abs/1906.01076

[30]

Continual Learning for Sentence Representations Using Conceptors (NAACL 2019): https://arxiv.org/abs/1904.09187

[31]

Neural Topic Modeling with Continual Lifelong Learning (ICML 2020): https://arxiv.org/abs/2006.10909

[32]

Incremental Natural Language Processing: Challenges, Strategies, and Evaluation (COLING 2018): https://arxiv.org/abs/1805.12518

[33]

Continual Learning for Robotics: Definition, Framework, Learning Strategies, Opportunities and Challenges: https://arxiv.org/abs/1907.00182

[34]

Efficient Adaptation for End-to-End Vision-Based Robotic Manipulation (ICML workshop 2020): https://openreview.net/forum?id=CVN5cZBFFFG

[35]

A continual learning survey: Defying forgetting in classification tasks (2020): https://arxiv.org/abs/1909.08383

[36]

Class-incremental learning: survey and performance evaluation (2020): https://arxiv.org/abs/2010.15277

[37]

A comprehensive, application-oriented study of catastrophic forgetting in DNNs (ICLR 2019): https://arxiv.org/pdf/1905.08101.pdf

[38]

Don’t forget, there is more than forgetting: new metrics for Continual Learning (ICML workshop 2020): https://marcpickett.com/cl2018/CL-2018_paper_5.pdf

[39]

Towards robust evaluations of continual learning: https://arxiv.org/abs/1805.09733

[40]

Towards Robust Evaluations of Continual Learning: https://arxiv.org/abs/1805.09733


- -




斯坦福大學——人工智能本科4年課程清單

2021-02-13

微軟亞洲研究院周明 | 從語言智能到代碼智能

2021-02-16

談一談算法工程師的落地能力

2021-02-17

跨界出圈 | 談談BERT跨模態預訓練

2021-02-10



本文分享自微信公衆號 - NewBeeNLP(NewBeeNLP)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索