劉冰瑤,劉進(jìn)鋒
(寧夏大學(xué)信息工程學(xué)院,銀川 750021)
隨著深度學(xué)習(xí)在計(jì)算機(jī)視覺(jué)領(lǐng)域的不斷應(yīng)用,如圖像分類(lèi)、目標(biāo)檢測(cè)、語(yǔ)義分割等,雖然在解決離線學(xué)習(xí)的問(wèn)題上表現(xiàn)良好,但以在線方式訓(xùn)練模型完成一系列任務(wù)時(shí)仍具有挑戰(zhàn)性。人類(lèi)的學(xué)習(xí)是一個(gè)漸進(jìn)的過(guò)程,需不斷地接受和學(xué)習(xí)新知識(shí),并對(duì)原有知識(shí)進(jìn)行補(bǔ)充和修正。為使深度學(xué)習(xí)接近或達(dá)到人類(lèi)的智能水平,學(xué)習(xí)系統(tǒng)需在不斷變化的環(huán)境中積累知識(shí),這個(gè)過(guò)程被稱(chēng)為持續(xù)學(xué)習(xí)(continual learning)或增量學(xué)習(xí)(incremental learning),與之概念等價(jià)的還有終身學(xué)習(xí)(lifelong learning)。具體來(lái)說(shuō),增量學(xué)習(xí)的要求是模型在推理過(guò)程中連續(xù)不斷地學(xué)習(xí)和更新自己,既能學(xué)習(xí)新的概念,同時(shí)又保持識(shí)別舊知識(shí)的能力。因此,增量學(xué)習(xí)是一種能夠進(jìn)行無(wú)遺忘在線學(xué)習(xí)的框架。
由于神經(jīng)網(wǎng)絡(luò)與人腦結(jié)構(gòu)有所不同,神經(jīng)網(wǎng)絡(luò)訓(xùn)練很難從批量學(xué)習(xí)模式轉(zhuǎn)變?yōu)檫B續(xù)學(xué)習(xí)模式,基于深度神經(jīng)網(wǎng)絡(luò)的系統(tǒng)在使用新數(shù)據(jù)進(jìn)行持續(xù)更新時(shí),會(huì)出現(xiàn)嚴(yán)重的遺忘問(wèn)題——在舊任務(wù)上的表現(xiàn)通常會(huì)顯著下降,我們稱(chēng)之為災(zāi)難性遺忘。為了緩解災(zāi)難性遺忘,我們希望模型既有可塑性,即從新數(shù)據(jù)中整合知識(shí)與提煉已有知識(shí)的能力;又具有穩(wěn)定性,即防止新輸入數(shù)據(jù)對(duì)已有知識(shí)的干擾。因此,增量學(xué)習(xí)的總體任務(wù)是解決穩(wěn)定性-可塑性困境。
在計(jì)算和存儲(chǔ)資源有限的條件下,為使增量學(xué)習(xí)過(guò)程與人類(lèi)在現(xiàn)實(shí)場(chǎng)景中的學(xué)習(xí)過(guò)程更接近,我們?cè)O(shè)定在其學(xué)習(xí)時(shí)需具有以下特點(diǎn):①隨著模型更新,需保持其在新任務(wù)和舊任務(wù)上的性能良好,即學(xué)習(xí)到新知識(shí)的同時(shí),又具有識(shí)別舊知識(shí)的能力;②由于增量學(xué)習(xí)在學(xué)術(shù)和工業(yè)中的應(yīng)用,模型在訓(xùn)練過(guò)程中會(huì)受到隱私約束,或計(jì)算能力與內(nèi)存會(huì)隨新任務(wù)數(shù)量的增加而緩慢增長(zhǎng),所以原始的訓(xùn)練數(shù)據(jù)不允許再被訪問(wèn);③為使模型具有內(nèi)在的增量性,在連續(xù)數(shù)據(jù)流中,隨著新數(shù)據(jù)到來(lái)我們要求模型是可以連續(xù)不斷地學(xué)習(xí)和更新的。
2019年,Van de Ven等基于是否在測(cè)試時(shí)需要提供任務(wù)標(biāo)識(shí),將增量學(xué)習(xí)進(jìn)一步劃分為三種子領(lǐng)域:任務(wù)增量學(xué)習(xí)、類(lèi)別增量學(xué)習(xí)和域增量學(xué)習(xí)。任務(wù)增量學(xué)習(xí)是要求在推理過(guò)程中使任務(wù)標(biāo)識(shí)保持已知的增量學(xué)習(xí),不同時(shí)刻到達(dá)的數(shù)據(jù)分屬于不同任務(wù),并要求提供任務(wù)ID,其共同目標(biāo)是設(shè)計(jì)一個(gè)網(wǎng)絡(luò),既可以以最小的規(guī)模運(yùn)行,又可以保持良好的性能。類(lèi)別增量學(xué)習(xí)旨在區(qū)分任務(wù)內(nèi)部和任務(wù)之間的類(lèi)別,不同時(shí)刻到達(dá)的數(shù)據(jù)屬于同一任務(wù)中不同類(lèi)別,其模型最終要求輸出類(lèi)別。域增量學(xué)習(xí)旨在連續(xù)區(qū)分每個(gè)任務(wù)內(nèi)部的類(lèi),而不是區(qū)分不同的任務(wù),即不同任務(wù)之間的結(jié)構(gòu)相同,而輸入分布不同,并在推理過(guò)程中不需要提供任務(wù)ID。
近年來(lái),人們?yōu)楸苊鉃?zāi)難性遺忘,解決模型穩(wěn)定性和可塑性困境提出了大量方法,本文將從基于回放(replay)、基于正則化(regularization)以及基于參數(shù)隔離(parameter isolation)三個(gè)方面進(jìn)行闡述。
基于回放的方法允許將部分早期階段的訓(xùn)練數(shù)據(jù)即舊數(shù)據(jù)存儲(chǔ)在緩存中,在新任務(wù)學(xué)習(xí)時(shí),舊數(shù)據(jù)將被用于重放或原型演練,以此來(lái)防止模型在學(xué)習(xí)新任務(wù)時(shí)對(duì)舊任務(wù)產(chǎn)生的災(zāi)難性遺忘。此時(shí),緩存大小、存儲(chǔ)數(shù)據(jù)選擇、數(shù)據(jù)存儲(chǔ)形式、新舊數(shù)據(jù)的混合方式都是重要的影響因素?;诨胤诺姆绞桨ɑ谟洃洝⒒谏芍胤诺确椒?。
1.1.1 基于記憶的方法
基于記憶的方法通常需要一個(gè)記憶緩沖區(qū)來(lái)存儲(chǔ)與之前任務(wù)相關(guān)的數(shù)據(jù)實(shí)例或其他相關(guān)信息,在學(xué)習(xí)新任務(wù)時(shí),重放這些信息以鞏固之前學(xué)習(xí)的知識(shí)。
在圖像分類(lèi)的任務(wù)中,Rebuffi 等首先提出了在類(lèi)增量學(xué)習(xí)過(guò)程中同時(shí)學(xué)習(xí)分類(lèi)器和特征表示的策略,稱(chēng)為基于表征學(xué)習(xí)的增量分類(lèi)器(iCARL)。在表征學(xué)習(xí)期間,iCARL利用所存儲(chǔ)的舊類(lèi)別具有代表性的少量數(shù)據(jù)實(shí)例和來(lái)自新任務(wù)的實(shí)例進(jìn)行訓(xùn)練。在分類(lèi)過(guò)程中,iCARL 采用最接近樣本均值的分類(lèi)策略,將給定圖像的標(biāo)簽分配給與原型最相似的類(lèi),利用潛在特征空間中數(shù)據(jù)實(shí)例之間的距離來(lái)更新內(nèi)存緩沖區(qū)。但此方法保留了部分舊樣本以及新任務(wù)的所有數(shù)據(jù)一起訓(xùn)練,對(duì)存儲(chǔ)空間及計(jì)算能力有一定的要求。
1.1.2 基于生成重放的方法
基于生成重放的方法是基于記憶方法的替代方案,使用可以再現(xiàn)與之前任務(wù)相關(guān)信息的生成模塊來(lái)替代內(nèi)存緩沖區(qū)。通常,大多數(shù)基于生成重放的方法只生成以前的數(shù)據(jù)實(shí)例及其對(duì)應(yīng)的標(biāo)簽。
Shin 等提出了一種深層生成重放(deep generative replay,DGR)方法,該方法通過(guò)GAN模型模仿以前的訓(xùn)練示例所生成的偽數(shù)據(jù)來(lái)對(duì)多個(gè)任務(wù)進(jìn)行順序?qū)W習(xí),并將其與對(duì)應(yīng)的標(biāo)簽進(jìn)行配對(duì)。但其缺陷是算法的有效性在很大程度上取決于生成器的質(zhì)量。
Zhang 等提 出 了 深 度 模 型 整 合(deep model consolidation,DMC),它首先使用標(biāo)記數(shù)據(jù)為新類(lèi)訓(xùn)練一個(gè)單獨(dú)的模型,然后利用公開(kāi)可用的未標(biāo)記輔助數(shù)據(jù),將新舊模型結(jié)合起來(lái),克服了由于無(wú)法訪問(wèn)遺留數(shù)據(jù)而帶來(lái)的困難,并在這些輔助數(shù)據(jù)中挖掘出豐富的可轉(zhuǎn)移表示來(lái)促進(jìn)增量學(xué)習(xí)。此外,使用輔助數(shù)據(jù)而不是新類(lèi)別的訓(xùn)練數(shù)據(jù),可以確保新模型公平地吸收來(lái)自舊模型的知識(shí)。
除了基于記憶和基于重放兩種方法外,Hu等提出了一個(gè)因果框架來(lái)解釋類(lèi)別增量學(xué)習(xí)中的災(zāi)難性遺忘問(wèn)題,通過(guò)對(duì)其分析,解釋了如何在舊數(shù)據(jù)和新數(shù)據(jù)之間建立暢通的因果路徑來(lái)緩解遺忘。從中提取出增量學(xué)習(xí)過(guò)程中的因果效應(yīng),證明這種提取在因果關(guān)系上等同于數(shù)據(jù)重放;并提出消除增量動(dòng)量效應(yīng),實(shí)現(xiàn)新舊類(lèi)預(yù)測(cè)的平衡。其方法基本上等同于數(shù)據(jù)重放的因果效應(yīng),但沒(méi)有重放存儲(chǔ)的任何成本。
基于正則化的方法通常是對(duì)各種模型參數(shù)和超參數(shù)在更新過(guò)程中進(jìn)行限制,達(dá)到在學(xué)習(xí)新任務(wù)的同時(shí)鞏固之前學(xué)習(xí)的知識(shí)的目的,以緩解持續(xù)學(xué)習(xí)中的災(zāi)難性遺忘?;谡齽t化的方法包括對(duì)重要模型參數(shù)進(jìn)行優(yōu)化約束、以舊模型為目標(biāo)添加蒸餾損失等方法。
1.2.1 正則化損失函數(shù)
其中最典型的方案是通過(guò)正則化損失函數(shù)來(lái)鞏固之前所學(xué)知識(shí)。在圖像分類(lèi)任務(wù)中,Kirkpatrick 等首先提出了一種稱(chēng)為可塑權(quán)重鞏固(EWC)的方法。EWC 在損失函數(shù)中引入了一個(gè)新的二次懲罰項(xiàng),以限制模型修改對(duì)之前學(xué)習(xí)任務(wù)較重要的權(quán)值。為使參數(shù)限定在任務(wù)之間常見(jiàn)的低損失區(qū)域,而不是只更新新任務(wù)的低損失區(qū)域,其中權(quán)重的重要性通過(guò)Fisher信息矩陣的對(duì)角線來(lái)計(jì)算,從而緩解災(zāi)難性遺忘問(wèn)題。
1.2.2 基于知識(shí)蒸餾的方法
基于知識(shí)蒸餾的方法是將知識(shí)蒸餾的思想融入到增量學(xué)習(xí)中,將前一個(gè)任務(wù)上訓(xùn)練模型中的知識(shí)提取到新任務(wù)上訓(xùn)練的模型中,以鞏固之前學(xué)習(xí)的知識(shí)。
在圖像分類(lèi)方面,Li和Hoiem提出了一種抗遺忘學(xué)習(xí)的方法(learning without forgetting,LwF)。在學(xué)習(xí)新任務(wù)之前,LwF 存儲(chǔ)以前模型參數(shù)的副本。然后,它將在新任務(wù)數(shù)據(jù)實(shí)例上得到的模型作為舊任務(wù)的分類(lèi)器目標(biāo),新任務(wù)的分類(lèi)器以達(dá)到ground truth 作為目標(biāo),計(jì)算新任務(wù)與舊任務(wù)損失的和來(lái)作為最終的損失。通過(guò)保證舊任務(wù)分類(lèi)器的輸出,緩解對(duì)舊知識(shí)的遺忘。
Kang 等提出了一種基于自適應(yīng)特征鞏固的知識(shí)蒸餾(AFC)方法。他們推導(dǎo)出每個(gè)特征分布差異和損失變化之間的關(guān)系,通過(guò)知識(shí)蒸餾調(diào)整每個(gè)特征圖的權(quán)重,實(shí)現(xiàn)損失增加最小化,此方法目的是最小化預(yù)期損失增加的上界。
Wang 等設(shè)計(jì)了一種基于特征增強(qiáng)和壓縮的類(lèi)增量學(xué)習(xí)范式(FOSTER)。他們將梯度提升算法應(yīng)用于類(lèi)增量學(xué)習(xí),保留舊模型只訓(xùn)練新模型,所有類(lèi)別的logits 都通過(guò)組合新特征提取器和舊特征提取器來(lái)表示,使用知識(shí)蒸餾來(lái)消除創(chuàng)建新模型時(shí)所存在冗余參數(shù)和特征維數(shù)等問(wèn)題,最終將擴(kuò)展模型壓縮到其原始大小。
基于參數(shù)隔離的方法通常是在新任務(wù)上擴(kuò)大舊模型,并對(duì)不同任務(wù)之間分配不同的模型參數(shù),進(jìn)行不同程度的隔離,以防止后續(xù)任務(wù)對(duì)之前學(xué)習(xí)的知識(shí)產(chǎn)生干擾。
Mallya 等提出了PackNet 方法,該方法首先固定舊任務(wù)的參數(shù),其次針對(duì)每個(gè)新任務(wù)訓(xùn)練整個(gè)神經(jīng)網(wǎng)絡(luò),訓(xùn)練完成后,使用基于權(quán)重的修剪技術(shù)釋放不必要的參數(shù),保留冗余的空間模型。
Zhang 等提 出 了 一 種 持 續(xù) 進(jìn) 化 分 類(lèi) 器(CEC),主要針對(duì)增量學(xué)習(xí)中的少鏡頭場(chǎng)景。他們首先將表征學(xué)習(xí)和分類(lèi)器學(xué)習(xí)分離,其中表征學(xué)習(xí)被凍結(jié)以避免產(chǎn)生遺忘,分類(lèi)器學(xué)習(xí)部分被CEC 取代,利用圖模型在分類(lèi)器之間傳播上下文信息,使其適應(yīng)不同的任務(wù)。
Kanakis 等提出了多任務(wù)學(xué)習(xí)的重參數(shù)化卷 積(reparameterized convolutions for multitask learning,RCM)方法,該算法將模型參數(shù)分離為濾波器組和調(diào)節(jié)器兩部分。每一層的濾波器組部分是預(yù)先訓(xùn)練的,并在編碼公共知識(shí)的任務(wù)之間共享,而調(diào)節(jié)器部分是特定于任務(wù)的,并分別針對(duì)每個(gè)新任務(wù)進(jìn)行微調(diào)。
在 圖 像 分 類(lèi) 方 面,F(xiàn)ernando 等提 出 了PathNet。在第一個(gè)任務(wù)的訓(xùn)練中,選擇幾條通過(guò)網(wǎng)絡(luò)的隨機(jī)路徑。然后,利用競(jìng)賽選擇遺傳算法為任務(wù)選擇訓(xùn)練的最佳路徑。然后對(duì)于接下來(lái)的每個(gè)任務(wù),凍結(jié)前面任務(wù)所選擇的所有路徑上的模型參數(shù),其余參數(shù)按照上述流程重新初始化并再次訓(xùn)練,最終得到最好的路徑。
除上述方法外,利用元學(xué)習(xí)方法凍結(jié)模型參數(shù)子集也受到了近年來(lái)的關(guān)注。Hurtado 等提出了一種名為元可重用知識(shí)(meta reusable knowledge,MARK)的方法,該方法對(duì)所有學(xué)習(xí)任務(wù)都有一個(gè)單一的公共知識(shí)庫(kù)。對(duì)于每個(gè)新任務(wù),MARK 使用元學(xué)習(xí)更新公共知識(shí)庫(kù),并使用可訓(xùn)練的掩碼從任務(wù)知識(shí)庫(kù)中提取相關(guān)參數(shù)。
本文首先介紹了增量學(xué)習(xí)的背景、存在的問(wèn)題及目前對(duì)抗該問(wèn)題的主流技術(shù):基于回放,基于正則化和基于參數(shù)隔離,并分別對(duì)其思路及代表性方法進(jìn)行闡述。在上述方法中,最穩(wěn)定有效的是基于參數(shù)隔離和基于回放兩種方法。因?yàn)樘卣魈崛H在輸出端施加效果,違反了端對(duì)端表示學(xué)習(xí)的規(guī)則,在新舊數(shù)據(jù)分布不均時(shí),從舊網(wǎng)絡(luò)中提取新數(shù)據(jù)的特征難以捕捉,故基于正則化的方法有時(shí)會(huì)起到負(fù)面作用。
目前,在增量學(xué)習(xí)的方法中,新舊任務(wù)之間的性質(zhì)差異幾乎不存在,且在數(shù)據(jù)集的設(shè)置上,不同任務(wù)之間沒(méi)有類(lèi)重疊。然而,在現(xiàn)實(shí)場(chǎng)景中,在時(shí)間先后順序上出現(xiàn)的數(shù)據(jù)并沒(méi)有標(biāo)記,且具有公共類(lèi),所以現(xiàn)有的增量學(xué)習(xí)與現(xiàn)實(shí)場(chǎng)景仍存在差距。增量學(xué)習(xí)的方法大多數(shù)集中在處理圖像分類(lèi)問(wèn)題上,但其他研究方向中的增量學(xué)習(xí)任務(wù)也值得研究,如:圖像語(yǔ)義分割、目標(biāo)檢測(cè)、語(yǔ)言任務(wù)等。另外,探索增量學(xué)習(xí)的可解釋的、穩(wěn)健的、輕量級(jí)的方法也具有深遠(yuǎn)的現(xiàn)實(shí)意義。