莫建文,朱彥橋,歐陽寧,林樂平+
(1.桂林電子科技大學 信息與通信學院 認知無線電與信息處理省部共建教育部重點實驗室, 廣西 桂林 541004;2.桂林電子科技大學 信息與通信學院,廣西 桂林 541004)
人類和動物可以持續(xù)地積累和鞏固從先前觀察到的任務中獲取的知識,并不斷地學習解決新的問題或任務。但現(xiàn)如今的大多數(shù)深度學習系統(tǒng)卻缺乏這樣的能力,當它們無法一次性訪問所有數(shù)據(jù)的時候,為了適應當前的數(shù)據(jù),它們必須通過反向傳播來調(diào)整先前學習到的參數(shù),這就會導致先前學習到的知識被干擾甚至被完全覆蓋,這樣的現(xiàn)象被稱為災難性遺忘[1]。
克服災難性遺忘是深度學習領(lǐng)域中一個長期研究的問題,其本質(zhì)上是如何令系統(tǒng)在穩(wěn)定性與可塑性之間尋求平衡,穩(wěn)定性指的是在學習新知識的同時記憶舊知識的能力,可塑性指的是模型整合新知識的能力。近年來,許多增量學習方法相繼涌現(xiàn),但這并不意味著深度學習模型已經(jīng)能很好地適應增量式場景,因為現(xiàn)有的多數(shù)增量學習方法都過度關(guān)注如何提高模型的穩(wěn)定性,卻忽視了模型學習的可持續(xù)性。這就使得深度學習模型必須將大量資源耗費在對舊知識的鞏固上,但當處于模型容量有限的環(huán)境時,這些模型往往會因為無法合理地利用有限的資源而導致其難以適應新任務。
基于這樣的觀察,提出一種更均衡的增量學習策略,它吸收了穩(wěn)定性與可塑性間的互補優(yōu)勢,同時最小化它們各自的弱點,實現(xiàn)一個更高效的增量學習模型。
最近的研究[2]中,緩解災難性遺忘的方法大致可分為3類:基于樣本重現(xiàn)的方法、基于網(wǎng)絡(luò)結(jié)構(gòu)的方法、基于正則化的方法。
基于樣本重現(xiàn)的方法根據(jù)一些篩選標準,從舊數(shù)據(jù)集中抽取一些具有代表性的原始樣本,將它們和新任務的樣本進行聯(lián)合訓練來達到記憶的目的。例如Rebuffi等提出的增量分類與表示學習(incremental classifier and representation learning,iCaRL)[3],他們根據(jù)樣本的特征向量從舊樣本集中抽取最接近平均特征向量的樣本,并使用它們來模擬已訓練數(shù)據(jù)的特征分布。而何麗等[4]則通過快速查找發(fā)現(xiàn)密度峰值進行聚類的方法來篩選典型樣本。在某些場景中,舊任務的樣本并非隨時都是可用的,當無法獲取舊樣本集的時候,一個替代方案是通過一些生成模型合成與原始樣本相似度較高的偽樣本。例如文獻[5,6]利用對抗網(wǎng)絡(luò)合成高質(zhì)量的偽樣本來代替原始樣本。
基于網(wǎng)絡(luò)結(jié)構(gòu)的方法則采用更直觀的方法來克服災難性遺忘,它們將網(wǎng)絡(luò)劃分為多個獨立的部分,每個部分都對應特定的任務,在對當前任務進行訓練時,則將其它部分隔離,以防止任何可能的干擾。此類方法又分為兩種場景,當對網(wǎng)絡(luò)結(jié)構(gòu)大小沒有限制時,可以通過凍結(jié)先前任務學習到的參數(shù)集,并為新任務增加新的分支來實現(xiàn)[7,8]。而當處于無法進行擴展的靜態(tài)模型中時,則可以通過在訓練新任務期間將用于舊任務的部分屏蔽來實現(xiàn),例如Packnet[9]借鑒了模型剪枝的思想,使用二進制掩碼隔離舊任務的權(quán)值。而HAT[10]則使用基于節(jié)點的硬注意力機制來隔離重要節(jié)點。
基于正則化的方法通過在損失函數(shù)上引入額外的正則項來對權(quán)值的調(diào)整進行約束。這方面最早的工作為Kirkpatricka等提出的彈性權(quán)值固定——EWC(elastic weight consolidation)[11],它通過Fisher信息來評估網(wǎng)絡(luò)權(quán)值對歷史任務的重要性,然后根據(jù)權(quán)值的重要性對權(quán)值施加相應的固定力度,使重要性較高的權(quán)值進行更小幅度的調(diào)整來保存舊樣本的特征。之后的很多方法都借鑒了EWC的思想,主要區(qū)別在于獲取參數(shù)信息量的方法。例如,Aljundi等提出的MAS(memory aware synapses)[12]根據(jù)模型的輸出對權(quán)值變化的敏感性,為網(wǎng)絡(luò)的權(quán)值積累重要度。還有一些工作探索過如何通過不確定性判斷模型參數(shù)的重要性。例如Hur等[13]將不確定性作為參數(shù)重要性的衡量標準,并應用于模型裁剪,而Jian等[14]則將不確定性應用到了持續(xù)學習領(lǐng)域,他們認為如果權(quán)值具有較低的熵值,則說明權(quán)值已處于穩(wěn)態(tài),相反,熵較大的權(quán)值具有更大的隨機性,通過保留熵值較低的權(quán)值而更新那些熵較高的權(quán)值,更有利于模型的持續(xù)學習。
貝葉斯增量學習是正則化方法在貝葉斯神經(jīng)網(wǎng)絡(luò)中的應用模式,在貝葉斯神經(jīng)網(wǎng)絡(luò)的框架下,網(wǎng)絡(luò)權(quán)值不再是某個固定的數(shù)值,而是由均值和方差定義的概率分布。Ebrahimi等提出在貝葉斯神經(jīng)網(wǎng)絡(luò)的框架下,通過權(quán)值的不確定性來定義權(quán)值重要性并對權(quán)值的更新進行相應限制的持續(xù)學習框架——UCB(uncertainty-guided continual bayesian neural networks)[15]。
以上方法都在增量學習領(lǐng)域取得了很好的效果,但正如引言所述,它們?nèi)匀淮嬖诳梢愿倪M的空間。例如基于正則化的方法[11,12,14,15]過于注重克服模型的遺忘問題,在訓練過程中參數(shù)重要性的累積會導致優(yōu)先訓練的任務占用了大部分資源,由于這些參數(shù)已經(jīng)被施加了很強的正則化力度,它們對于新任務來說是難以訓練的,隨著網(wǎng)絡(luò)中可訓練參數(shù)的急劇減少,網(wǎng)絡(luò)的訓練很快便會變得不可持續(xù)。通過注意力機制為任務劃分參數(shù)集的方法[9,10]也同樣存在這樣的問題,優(yōu)先訓練的任務總是能獲得更多資源,隨著訓練的深入,資源分配不均的問題會愈發(fā)凸顯。
針對以上問題,提出一種結(jié)合了貝葉斯神經(jīng)網(wǎng)絡(luò)和權(quán)值篩選策略的增量學習方法。首先它在貝葉斯神經(jīng)網(wǎng)絡(luò)的框架下,根據(jù)權(quán)值的不確定性調(diào)整每個權(quán)值的學習率,令重要性較高的權(quán)值保持較低的學習率,避免它們被過度調(diào)整。然后考慮到一昧地限制權(quán)值的變化會影響后續(xù)任務的學習效果,所以提出一種可選擇性進行權(quán)值釋放的策略,通過有選擇地提高部分權(quán)值的更新步長,將它們從正則化的束縛中釋放,使它們能更好地適應新任務。該方法的參數(shù)計算量始終保持恒定,在不進行網(wǎng)絡(luò)結(jié)構(gòu)擴展的情況下仍然能更學習到一個持續(xù)學習能力更強的模型。
貝葉斯推理需要一個完整的概率模型,其中包括模型參數(shù)的先驗分布P(Z) 和數(shù)據(jù)的似然P(D|Z), 然后通過貝葉斯公式求出模型的后驗分布
(1)
但由于式(1)中的分母P(D) 是一個僅與訓練數(shù)據(jù)有關(guān)的概率分布,其實際構(gòu)成比較復雜,所以導致直接求解后驗分布在實際場景中很難實現(xiàn),在實際操作中往往結(jié)合變分推理來近似求解模型的真實后驗分布。
基于變分推理的貝葉斯優(yōu)化,首先要假設(shè)一個基于參數(shù)θ=(μ,σ) 的高斯分布簇Q(Z|θ), 然后通過最小化Q(Z|θ) 與P(Z|D) 間的KL散度令Q(Z|θ) 近似于P(Z|D)
(2)
式(2)中的logP(D)是與變量無關(guān)的常數(shù),也稱為證據(jù)(evidence),右邊第二項被稱為最小證據(jù)因子下界(evidence lower bound,ELBO)。若保持logP(D) 不變,則最小化KL散度的問題也可以轉(zhuǎn)化為針對ELBO的優(yōu)化問題
(3)
其中, KL[Q(Z|θ)‖P(Z)] 在式(3)中充當了正則項的角色,公式通過最小化Q(Z|θ) 與先驗P(Z) 間的KL散度,將模型的對數(shù)似然最大化。同時,為了適應一些復雜的后驗分布,可以將先驗指定為由兩個零均值高斯分布組成的混合高斯分布,并通過多次蒙特卡洛采樣求出式(3)的近似表達式
(4)
其中,Zn表示第n次采樣后得到的權(quán)值,由于直接從概率分布中采樣權(quán)值無法對參數(shù)進行梯度估計,所以一般使用重參數(shù)技巧來獲取用于前向傳播的權(quán)值
Z=μ+σ·ε
(5)
結(jié)合了變分估計的貝葉斯推理,因為需要通過正則項來近似后驗分布,所以為將貝葉斯推理應用于增量學習場景提供了可能性。
Ebrahimi等提出的思想[15],參數(shù)的更新步長可以定義為前一任務學習到的標準差σt-1與初始學習率ηinit的乘積,然后在訓練當前任務時,根據(jù)權(quán)值的標準差動態(tài)地調(diào)整均值更新的步長。與信息熵類似,標準差反映了模型參數(shù)的信息量大小,當標準差較大時,意味著權(quán)值采樣具有更大的不確定性,從貝葉斯優(yōu)化的角度考慮,這樣的權(quán)值具有更大的訓練價值,此時相應的更新步長Λ會更大,以促使權(quán)值做出更多改變來適應新任務,相反,標準差較小的權(quán)值,表示其在學習舊任務時已經(jīng)達到穩(wěn)態(tài),需要限制它的變化來保存舊任務的信息
(6)
以上操作實現(xiàn)了基本的對權(quán)值的彈性約束,但這樣的方法無法適應長序列的任務,因為權(quán)值的重要性會隨著訓練次數(shù)的增加而不斷累積,從而使權(quán)值變得越來越難以訓練,這對后續(xù)任務的學習非常不利。Schwarz等[16]針對這樣的問題提出了另一種克服災難性遺忘的思路,他們認為為了能保持模型的學習能力,對于已經(jīng)學習過的舊任務,最好能以一種優(yōu)雅而非災難性的方式遺忘它們。這種理念也是增量學習的重要組成部分,尤其是在無法對網(wǎng)絡(luò)進行擴展的環(huán)境下,緩慢地遺忘舊任務能為新任務的學習提供更多空間。
根據(jù)這樣的理念,提出一個選擇性釋放資源的機制,它的概念如圖1所示。
圖1 選擇性釋放機制概念
如圖1所示,兩個橢圓分別表示訓練了前t-1個任務后形成的參數(shù)空間和訓練第t個任務后的參數(shù)空間,傳統(tǒng)的訓練方式采用隨機梯度下降法令參數(shù)完全落入任務t的參數(shù)空間。而以EWC[12]為代表的正則化方法則通過控制權(quán)值的更新方向,令權(quán)值落入舊任務與新任務參數(shù)空間的交匯處,但隨著任務量的增加,越來越多的權(quán)值被限制,權(quán)值更新方向會逐漸向舊任務的參數(shù)空間偏移,即模型越來越傾向于記憶舊任務而非學習新任務。本文的方法采取一個折中策略,它令參數(shù)的調(diào)整方向逐漸向任務t的參數(shù)空間靠攏,即適當?shù)靥岣吣P偷膶W習能力來促進新任務的學習,同時緩慢地遺忘舊任務。
2.3.1 權(quán)值篩選
該機制的目的在于令舊任務主動舍棄部分資源來為未來任務騰出足夠的學習空間,而自己則緩慢地遺忘先前學習過的知識。所以為了避免任務性能的突然崩潰,在釋放前,首先需要確立一個篩選標準來對權(quán)值進行篩選。
首先將一層內(nèi)的所有權(quán)值按標準差大小排序
(7)
然后設(shè)置一個釋放比例r
r=i/I
(8)
然后根據(jù)比例將這I個權(quán)值中標準差最大的i個視為重要性較低,將它們歸入集合GA,另外I-i個標準差較小的權(quán)值則視為重要性相對更高,將它們組成集合GB,在訓練過程中,將對集合GA內(nèi)的權(quán)值進行釋放。
2.3.2 資源釋放
對權(quán)值進行釋放的具體操作,則通過在式(6)增加一個動態(tài)因子α來實現(xiàn)
(9)
(10)
如式(9)和式(10)所示,Y中的元素γi定義了每個權(quán)值釋放的強度。式(6)僅根據(jù)權(quán)值對歷史任務的重要性來對權(quán)值的調(diào)整進行約束,但加入了Y后,式(10)能根據(jù)權(quán)值的標準差大小在釋放與固定之間進行動態(tài)切換,對于GA內(nèi)的權(quán)值,對應位置的γ的取值為1,在優(yōu)化時仍傾向于令權(quán)值的分布保持與先前相同的均值。但當權(quán)值的標準差高于該閾值時,對應的γ切換為一個大于1的常數(shù),此時在優(yōu)化過程中權(quán)值的學習率相較于式(6)會有所提高,這就允許權(quán)值在優(yōu)化過程中可以做更大的調(diào)整來適應新任務。
權(quán)值篩選是基于正則化方法的一個有效補充,但因為以上操作都沒有考慮到概率分布的均值,所以在權(quán)值的選擇策略上仍然可以進行改善。因此,在原基礎(chǔ)上將權(quán)值的篩選標準進行進一步完善
(11)
如式(11)所示,在原來的基礎(chǔ)上,使用均值的絕對值與標準差的比值(信噪比)取代原來單一的標準差作為權(quán)值的篩選標準。信噪比是工程領(lǐng)域的常用參數(shù),通過信噪比能更準確地反映權(quán)值的重要程度,當權(quán)值的信噪比較小時,表示權(quán)值的重要性相對較低,模型按比例篩選出信噪比最小的i個權(quán)值歸入集合GA,然后仍然按照式(9)對它們進行釋放,而集合GB內(nèi)的I-i個權(quán)值,則繼續(xù)維持原狀。接下來的實驗結(jié)果表明,通過信噪比篩選權(quán)值再進行釋放,能讓模型具有更高的魯棒性。整個算法的流程見表1。
MNSIT:由手寫數(shù)字組成,共有10個類別,包括60 000個訓練樣本和10 000個測試樣本。在實驗中,以隨機排列的方式將MNIST中的圖像像素進行重新排序[11],形成多個分布不同的數(shù)據(jù)集(Perturbation-MNIST)來進行
表1 基于權(quán)值篩選策略的增量學習方法流程
多任務測試。對于類增量測試,則將MNIST劃分為5個獨立的子集(Split-MNIST),每個子集包含兩個獨立的類別,并按順序輸入網(wǎng)絡(luò)進行類增量測試。
Fashion-MNIST:由10類服裝圖像組成,相較于MNIST,F(xiàn)ashion-MNIST更貼近真實場景,也更能反映模型的分類性能。在實驗中,和MNIST一樣,將其劃分為5子集(Split-Fashion),并逐一輸入網(wǎng)絡(luò)進行二分類學習。
數(shù)據(jù)集的示例圖如圖2所示。
圖2 數(shù)據(jù)集樣本示例圖
為了驗證方法的有效性,將完整的算法和經(jīng)過簡化后的算法在數(shù)據(jù)集上進行實驗對比。實驗使用含有兩個隱藏層的全連接神經(jīng)網(wǎng)絡(luò),對于Perturbation-MNIST,將每層的神經(jīng)元數(shù)目設(shè)為256個,對于Split-MNIST,則將神經(jīng)元數(shù)目設(shè)為150個,而對于較難訓練的Split-Fashion,則將每層節(jié)點增加到250個。實驗遵循持續(xù)學習的原則,每個階段僅對當前任務的樣本樣本進行訓練,先前任務的數(shù)據(jù)樣本無法再次訪問,圖3展示了每次訓練結(jié)束后所有任務的平均分類精度。
圖3 3種設(shè)置的分類精度
由圖3可知,無論是多任務設(shè)置(Perturbation-MNIST)還是類增量設(shè)置(Split-MNIST、Split-Fashion),以信噪比為標準的權(quán)值篩選策略都能獲得最高的分類精度。而只以標準差為標準的釋放策略在Perturbation-MNIST和Split-MNIST上可以取得比只有固定操作的方法更好的精度,但在更難訓練的Split-Fashion上未能表現(xiàn)出更好的性能。以上結(jié)果表明,主動釋放資源的理念的確為模型的持續(xù)學習帶來了積極的影響。
本節(jié)將分析釋放策略對模型穩(wěn)定性與可塑性的影響。表2和表3展示了在3.2節(jié)的網(wǎng)絡(luò)配置中,Split-MNIST和Perturbation-MNIST在訓練完成后,每個任務的最終分類精度。
表2 Split-MNIST上單個任務的最終分類精度/%
表3 Perturbation-MNIST單個任務的最終分類精度/%
由表2和表3可知,引入釋放策略后的方法,其在兩個數(shù)據(jù)集中的第一個任務的分類精度都要略低于僅有固定操作的模型,但后續(xù)任務的分類精度都要高于后者,這說明當沒有引入權(quán)值篩選策略時,模型為了記憶舊任務的知識而限制了權(quán)值的調(diào)整,因此先前任務都能保持較高的分類精度,但當加入釋放機制后,舊任務的資源得到釋放,這些被釋放的資源促進了后續(xù)任務的學習使得后續(xù)任務的分類性能得到提高,而且只要釋放的比例與釋放的強度控制得當,并不會嚴重損害舊任務的性能。釋放機制的引入更充分地發(fā)掘了模型的持續(xù)學習能力。
圖4 均值變化趨勢分析
如圖4所示,當加入權(quán)值篩選策略后,均值的變化量在任何一個訓練階段都要高于僅有固定操作的模型。由于范數(shù)的大小一定程度上反映了矩陣中的元素大小,所以圖4的結(jié)果說明了權(quán)值篩選策略的引入使得模型對參數(shù)的約束力度得到一定程度的減小,模型也就能做更多調(diào)整來適應新任務。
將本文提出的權(quán)值篩選策略與目前最常用的幾種增量學習方法進行比較。
為了更準確地評估模型的分類性能,對網(wǎng)絡(luò)規(guī)模進行了不同設(shè)置。同時為了驗證提出的方法同樣適用于卷積神經(jīng)網(wǎng)絡(luò),對Split-Fashion改用resnet18網(wǎng)絡(luò)進行測試,其中表4列出了對resnet18的網(wǎng)絡(luò)規(guī)模進行的3種不同設(shè)置的具體參數(shù)信息。對于Perturbation-MNIST和Split-MNIST,則繼續(xù)沿用3.2節(jié)中的全連接神經(jīng)網(wǎng)絡(luò),但同樣對中間兩個隱藏層的節(jié)點數(shù)目進行不同設(shè)置。
表4 resnet18的3種網(wǎng)絡(luò)規(guī)模
表5、表6、表7顯示了每種方法在完成所有任務訓練后的平均分類精度,其中括號內(nèi)數(shù)據(jù)表示每種方法的分類精度與本文方法的差距。由實驗結(jié)果可知,本文提出的方法不僅能在不同規(guī)模的網(wǎng)絡(luò)結(jié)構(gòu)都保持著最高的分類精度,而且隨著網(wǎng)絡(luò)規(guī)模的縮小,其它方法與本文方法的差距基本上呈現(xiàn)拉大的趨勢,例如使用Perturbation-MNIST測試時,當每層節(jié)點數(shù)目為256時,UCB的分類精度與本文算法的差距僅為1.05%,但當節(jié)點數(shù)目減少到150時,這個差距擴大到4.24%。這說明在資源有限的環(huán)境下,資源釋放理念的引入能更好地保持網(wǎng)絡(luò)的學習能力,促進有限資源的合理分配。
表5 Split-Fashion在不同網(wǎng)絡(luò)中的分類精度/%
本節(jié)列出了本文的方法在3.5節(jié)中的每個實驗上當達到最高分類精度時釋放策略的兩個主要超參數(shù)釋放比例r和釋放強度γ各自的取值。
表6 Split-MNIST在不同網(wǎng)絡(luò)中的分類精度/%
表7 Perturbation-MNIST在不同網(wǎng)絡(luò)中的分類精度/%
通過表8、表9、表10可知,當網(wǎng)絡(luò)資源相對充足時,可以將r和γ設(shè)置得更大,例如每層神經(jīng)元數(shù)目達到256個和使用Network 1訓練時,r和γ可以達到50%和2。當網(wǎng)絡(luò)資源較少時,則需要將兩個參數(shù)的取值適當減小,例如當每層神經(jīng)元僅有100個或使用Network 3訓練時,在Perturbation-MNIST和Split-Fashion上r和γ需要減小至20%和1.5才能達到最優(yōu)的分類精度。
表8 Split-Fashion
表9 Split-MNIST
表10 Perurbation-MNIST
針對通過正則化保留重要參數(shù)的增量學習方法存在的穩(wěn)定性與可塑性失衡的問題,提出了一個選擇性釋放網(wǎng)絡(luò)資源來促進模型持續(xù)學習的策略。該策略首先在貝葉斯神經(jīng)網(wǎng)絡(luò)框架下通過權(quán)值的不確定性對權(quán)值的調(diào)整施加相應強度的限制,然后為了提高模型學習的持續(xù)性,根據(jù)信噪比篩選出部分權(quán)值進行適當強度的釋放,該方法可以在不增加網(wǎng)絡(luò)參數(shù)量的前提下將模型的學習能力維持在一個較高的水平,同時又不會嚴重損害舊任務的性能。實驗結(jié)果表明,無論在多任務場景還是在類增量場景,本文提出的方法在幾種對比方法中都保持著最高的分類性能。