吳楚,王士同
1.江南大學 人工智能與計算機學院,江蘇 無錫214122
2.江蘇省物聯網應用技術重點建設實驗室,江蘇 無錫214122
持續學習(continual learning)[1]是受哺乳動物大腦學習過程啟發的一種思想,用于學習一系列非獨立同分布的連續任務,目的是在不影響先前學習任務性能的情況下不斷學習新任務。普通的深度神經網絡在單一任務中有不錯表現,而使用微調的遷移學習方法能高效地遷移源域的知識至目標域,并提升學習性能,但它在連續的任務序列中表現不佳:為了學習與當前任務相關的特征,不得不修改網絡的權重,導致對先前任務性能的大幅降低,也就是“災難性遺忘”(catastrophic forgetting)[2]。而持續學習的優勢恰恰在于能整合先前任務的知識用于當前任務的學習上,且不會發生“災難性遺忘”。
常用的持續學習方法主要分為三種[3]:
第一種是樣本重演方法,這類方法以原本形式存儲樣本或者在一個生成模型中存儲樣本的“壓縮版本”。在學習新任務時通過重演先前的任務樣本來減輕遺忘。例如,梯度情景記憶思想(gradient episodic memory for continual learning,GEM)由Lopez和Ranzato[4]提出,作者受啟發于人腦生理結構,將先前任務訓練過的數據保存用于后續訪問(梯度記憶),為此定義一個梯度記憶損失函數,并用一個不等式約束允許這個損失函數不增加,進而整體地優化目標。重演方法的主要缺點是類別規模方面的限制,需要額外的內存空間去存儲原始的輸入樣本。受限的存儲空間也限制了原始分布的復現。除此之外,存儲原始的樣本往往涉及隱私問題。
第二種是基于正則化的方法,這種方法考慮到數據隱私和內存需求,不使用先前任務的數據和標簽,而是在損失函數中引入了一個額外的正則化項,在學習新任務時鞏固先前的知識。典型的有Li等人[5]于2017年提出的無遺忘學習(learning without forgetting,LwF),該方法運用了知識蒸餾技術來應對“災難性遺忘”問題,對于新任務數據,使用舊任務模型作為教師模型,并用教師模型輸出的軟標簽對新任務模型的參數進行約束,以平衡新舊任務的性能。Kirkpatrick 等人[6]引入了一種彈性權重固化的思想(elastic weight consolidation,EWC),它用費舍爾矩陣定義模型中的參數的重要程度并進行保護,讓其變得不那么容易被更新,使得新任務的最優參數中包含了一定程度先前任務的重要信息,從而避免遺忘先前任務的知識。此類方法的不足之處在于,由于包含了保護鞏固知識的額外損失項[7],這些損失項在數據樣本有限的情況下,可能導致對新舊任務性能的權衡問題。
第三種方法是參數獨立方法,此類方法為每個任務分配了不同的模型參數。當網絡規模沒有限制的時候,每個任務都可以擁有部分相應網絡,同時凍結先前任務參數或為每個任務分配不同的模型參數,以防止遺忘。Rusu 等人2016年[8]提出的漸進神經網絡(progressive neural networks,PNN)結合了深度網絡應用到持續學習中。這種網絡結構的構成易理解,對所有之前任務的網絡進行保留,并且每學習一個新任務就新建立一個同樣的網絡分支,新任務的網絡層接收先前所有任務網絡分支的輸出與當前任務對應網絡層的輸出相結合一起輸出到下一層。Wu等人于2020年[9]則提出了一個漸進學習的深度框架。框架包含三部分:課程、漸進、剪枝。其中漸進過程采用了級聯運算而不是求和運算,以鼓勵特征重用。課程策略思想提倡有意義的任務順序,實驗表明采用課程策略訓練的模型要優于未經課程策略訓練的模型。然而這種方法沒有考慮到不同任務間的相關程度對學習性能的影響,同時級聯所有先前任務的參數進行訓練對存儲和學習效率也是不小的考驗。
本文關注的是參數獨立方法,通過在漸進學習階段添加新的網絡分支來學習新參數來避免遺忘問題和增強模型學習當前任務的能力,并做出了一些改進。主要貢獻可以歸納如下:
(1)提出了一種任務相似度引導的漸進學習方法。這種方法的主體基于一個用于持續學習的深度網絡,參考了PNN 的漸進網絡[8],為每個任務分配網絡分支(漸進塊)來漸進地學習。
(2)在漸進網絡PNN的基礎上,本文在漸進過程前加入了任務相似性評估這一步驟,而評估以后再漸進學習的兩段式的思想符合人腦的直覺和解決問題的認知行為:首先估計任務之間的大致相似程度;然后據此利用腦中的相關知識來求解當前問題。這暗示在進行漸進學習時,應該有一個評估任務間相似度的過程,然后將此作為漸進階段知識遷移的度量。本文采用了一種應用于不同域之間數據分布差異計算的方法來評估任務間的相似度。漸進階段參照當前任務與先前任務的相似度,并以此引導任務之間的參數遷移,有選擇地吸收先前任務中的知識,從而使當前任務的性能提升。實驗結果表明,有指導的漸進過程相比PNN學習得更快、更穩定。
(3)對于各個任務間知識遷移過程,該方法將各漸進塊間的網絡層的輸出級聯為一個級聯層,并作為當前漸進塊的下一網絡層的輸入,保留了各任務的信息,對級聯層基于閾值剪枝來選擇關鍵特征能促進正向遷移。在SPLIT-CIFAR100 和MNISTPermutation、MNIST-Rotation 數據集上實驗結果表明,任務相似度引導的漸進神經網絡在學習多個連續任務時,能利用之前任務的知識來幫助學習當前任務,多項評估指標與單任務學習、多任務學習模型和其他持續學習方法相比都要更好。
神經網絡是基于感知機的擴展,而深度神經網絡(deep neural networks,DNN)是有很多隱藏層的前饋神經網絡。在測試與訓練分布相同時表現良好。其中卷積神經網絡在圖像識別領域具有很好的效果,循環神經網絡被廣泛應用于時間序列任務上。從DNN按不同層的位置劃分,DNN內部的神經網絡層可以分為三類:輸入層、隱藏層和輸出層。對于一個多層的深度神經網絡,其第l層的輸出表示如下:
其中,σ為隱藏層的激活函數,θ(l)、b(l)分別表示第l層的權重矩陣和偏置向量矩陣。
深度神經網絡常用卷積層[10]來高效提取更復雜的特征,使用ReLU[11]激活函數以克服梯度消失問題,對于復雜的網絡采用Dropout[12]技巧有效減少過擬合,同時隨著計算設備計算能力的飛速發展,大大縮短了網絡的訓練時間。此后新的深度網絡架構不斷被提出和改進,如殘差網絡(residual network,ResNet)、生成對抗網絡(generative adversarial network,GAN)、循環神經網絡(recurrent neural network,RNN)等,網絡向更深、更復雜的方向發展。在如語音識別、機器翻譯、問答系統等具體細分領域,深度神經網絡也表現出了極佳的性能。
深度神經網絡為目標域任務特化網絡結構,以達到出色的性能。然而,在連續學習多個任務時,單個的深度神經網絡不會記住先前任務的任何特征或知識,這種遺忘現象可以視為一次性的單向學習行為,并不具備任何持續學習能力,克服這種遺忘現象是機器學習領域邁向更加智能化的重要一步,進行有效的持續學習也是人工智能的未來發展趨勢。
人和高級哺乳動物能在整個生命歷程中不斷、微調和轉移知識和技能。這種能力,被稱為終身學習(lifelong learning)或持續學習[13],是由一系列神經認知機制協調的過程,這些機制共同促進了感知運動技能的發展以及對長期記憶的鞏固和檢索。而在機器學習中,持續學習通常指的是一個智能系統能夠從連續的非獨立同分布的任務中不斷地學習新知識,同時在新任務的學習過程中不會忘記以前學習到的知識。
一個從零開始的有監督學習是指,基于獨立同分布的帶有標簽的數據集D={(x(i),y(i))|1 ≤i≤N}學習目標任務,最終訓練出一個模型f來準確預測同一個域內的未知數據(x*,y*)。
在連續學習的環境中,多個非獨立同分布的數據集D={D1,D2,…,DN}共同組成一個連續的任務序列T={t1,t2,…,tN}。任務序列可以來自于輸入域的各種變換(例如圖像的翻轉、裁剪),也可以是不同但相關聯的任務(例如細粒度分類任務)。連續學習的目標是依照任務的順序依次學習,最終訓練出一個模型f能夠準確預測這些不同域內的未知數據≤i≤N}。與從零開始的單任務學習相比,連續學習能兼顧多個任務,且可以利用已經學習過的任務知識來幫助學習新任務。
研究表明,深度神經網絡能很好地提取數據的特征,而參數獨立的持續學習方法結合了深度神經網絡的優勢。一方面,參數獨立方法不需要訪問或存儲先前任務的數據來避免災難性遺忘;另一方面,參數獨立方法也不需要通過正則化手段對新任務的參數進行二次懲罰來權衡新舊任務間的性能。圖1示意了結合深度神經網絡的參數獨立的持續學習方法。對于三個非獨立同分布的圖像識別序列任務,在持續學習過程中,為新任務分配額外的新網絡,將各個任務網絡之間的參數重疊共享于新任務的參數訓練中,而網絡設計為深度結構能獲取到更多的特征表示。這類持續學習方法注重的是前向遷移能力[14],其性能可以用平均分類精度(average accuracy,AA)和漸進知識遷移率(progressive knowledge transfer,PKT)[4,9]這兩項指標評估,這些評估標準將在實驗部分詳細介紹。

圖1 結合深度神經網絡的參數獨立的持續學習方法Fig.1 Parameter-isolated continuous learning method combined with deep neural network
但是任務網絡之間的參數遷移是一個值得探究的問題,學習新任務時逐層全部遷移先前任務的參數是通用的基準方法,但不考慮任務間的相似程度很有可能造成負向遷移[15],導致新任務性能的降低。為改善這一問題,本文提出了一種任務相似度引導的漸進深度神經網絡(task-similarity guided progressive neural network,TSGPNN)。
現實世界中,人腦在學習不同任務時常常用到“遷移”的概念,即人腦具有由一任務域到目標任務域適配的機制。考慮一組識別家貓和獵豹的任務,在識別獵豹的過程中往往會借鑒家貓的特征,相反,在識別家貓和犬類的任務中,想要準確識別犬類,可能僅需要借鑒家貓的一些基本特征。在持續學習過程中,新舊任務之間的相似程度越高,數據的分布差異越小,它們之間可共用的特征信息也就越多,也就越能提升學習目標任務的性能。如果新舊任務之間的相似度很低,那么遷移過來的特征信息可能會對新任務的學習性能產生負影響[16]。
本文定義了一種不同域間距離計算的方法,利用這種計算方法衡量不同任務域的相似度,并依據相似度決定任務間參數的遷移量。這種方法受Shen的域適配計算方法——最大密度散度(maximum density divergence,MDD)啟發。于是在設置的多個漸進任務內,任務i有Ni個樣本{xi,1,xi,2,…,xi,Ni},任務j有Nj個樣本{xj,1,xj,2,…,xj,Nj},本文定義了一個參照量來評估這兩個具有不同分布的任務間的相似程度,相似度計算公式如下:
其中,是與xi獨立同分布的副本,為歐幾里德距離范數的平方。在上式中,參照量λi,j由兩部分組成,分子項代表兩個不同任務間的域間散度,分母項表示同一任務的域內密度。在有限的概率空間中,如果兩個域相同,那么MDD 就等于0。相同地,在等式(2)中,因為是與xi獨立同分布的副本,所以如果兩個任務Ni與Nj十分相似,它們各自的域是近似對齊的,那么任務Ni中樣本與任務Nj中樣本的距離應接近其副本域中樣本的距離,參照量λ應趨近于1。本文選用這種計算方式進行任務間相似性評估主要有以下理由[17]:(1)在有限的概率空間內,MDD是對稱KL散度的一個下界。(2)這種計算方式繼承了MDD的優勢,直接考慮了兩個任務域間所有樣本的距離信息,而不需要知道兩個域的概率分布信息,這與連續學習的場景十分契合。
對于N個任務的任務池,兩兩任務之間進行相似度計算后得到一個上三角的相似度矩陣λ,λi,j∈λ={λi,j|1 ≤i,j≤N,i≠j}表示第i個任務與第j個任務的相似度。
學習當前任務時理應借鑒舊任務的知識,但是這部分舊任務的知識并不應全部參與當前任務的訓練。因此在修剪漸進任務間的參數特征時,本算法在Han 等人的深度神經網絡權重修剪方法[18]的基礎上,設置了相似度敏感因子c這一超參數,它反映參數修剪量受各個任務間相似度的影響程度,用于懲罰漸進學習中與它較為不相似的任務,根據它對舊任務漸進塊中的參數進行修剪,c將在不同的實驗中分別取不同值。修剪過程的具體步驟將在2.2.2小節中介紹。
參數修剪完成后,再將保留下來的參數與新任務前一層的輸出級聯作為新任務對應漸進塊的輸入進行再訓練。實驗中對SPLIT-CIFAR100、MNISTPermutation 和MNIST-Rotation 數據集都進行了這樣的設置。
本文依據參數獨立的思想,提出了任務相似度引導的在多個任務間漸進學習的深度網絡TSGPNN。TSGPNN的基本結構參考了Rusu等人[8]提出的PNN。本質上是為每個任務單獨構建一個深度網絡,在整個漸進神經網絡里稱為漸進塊,訓練時凍結先前任務的參數并基于任務相似度來引導吸收從先前任務的漸進塊級聯而來的參數,在避免災難性遺忘的同時,提升當前任務性能。漸進學習的目標是在任務池T訓練出一個包含多個漸進塊fi的模型F。每個漸進塊fi都是對應于任務ti基于數據集Di訓練的深度神經網絡。圖2 舉例介紹了TSGPNN 基于SPLITCIFAR100 數據集的第四個任務的漸進學習的過程,其中虛線代表輸入僅前向傳播。漸進學習過程分為漸進前向傳播、漸進塊間參數修剪和反向傳播三部分。

圖2 SPLIT-CIFAR100數據集第四個任務的漸進學習過程Fig.2 Progressive learning process of the fourth task in SPLIT-CIFAR100 dataset
2.2.1 漸進前向傳播
在漸進前向傳播過程中,首先對包含N個不同域的規定任務順序的任務池T={t1,t2,…,tN}中的所有任務使用等式(2)進行相似度計算,得到一個上三角的相似度矩陣λ,λi,j∈λ={λi,j|1 ≤i,j≤N,i≠j}表示第i個任務數據集Di與第j個任務數據集Dj間的相似度。
之后進行漸進神經網絡的搭建,從任務池T={t1,t2,…,tN}中選出第一個任務t1。任務t1的數據集D1由樣本集X(1)和對應標簽集Y(1)構成。確定任務后,隨后為該任務建立一個漸進神經網絡f1,在整個漸進學習中統稱為漸進塊。首個任務的網絡前向傳播與一般的深度神經網絡相同。
其中,σ為隱藏層的激活函數,θ(l)表示此漸進塊中第l層的權重矩陣。在訓練完首個任務的漸進塊后,將該漸進塊中的參數凍結。從任務池T中選出新任務{ti|1 <i≤N} 。確定任務后,為其建立漸進塊{fi|1 <i≤N},漸進塊fi的不考慮偏置項的網絡層的前向傳播表示如下:用[19],從而使新任務漸進塊的每一層與舊任務漸進塊的相應層建立了聯系,這點在Wu 等人[9]的實驗中已得到驗證。圖3為漸進過程中網絡層的級聯操作。

圖3 級聯操作表示Fig.3 Concatenation operation representation
2.2.2 漸進塊間參數修剪
這部分的修剪策略具體為設置一個修剪閾值用來刪除傳播到級聯層中不重要的小的參數。本文認為當前塊fi的修剪閾值應由該塊與先前塊fk的任務相似度決定。相似度關系到漸進塊間各個網絡層輸出向量的修剪量r,相似度越低,修剪量r越大。如下式所示:
2.2.3 反向傳播
漸進學習中漸進塊的反向傳播與單個神經網絡的反向傳播相同,所設置的目標函數為多分類任務常用的交叉熵損失函數:
其中,m為輸入漸進塊的樣本數量,n為類別的數量。labelij為標簽的實際分布,當樣本i的真實類別等于j,取1,否則取0。yij為樣本i在漸進塊中經前向傳播計算后的向量的第j個分量,pij為預測輸出,即漸進塊前向傳播中softmax分類器預測樣本i屬于類別j的概率值,在0 到1 之間,計算如等式(8)。交叉熵能夠衡量同一個隨機變量中的兩個不同概率分布的差異程度,在機器學習中就表示為真實概率分布與預測概率分布之間的差異。這個差異越小,代表模型預測效果就越好。
TSGPNN 使用帶動量的隨機梯度下降算法(stochastic gradient descent,SGD)[21],是受物理領域啟發的梯度下降優化方法。一般而言,一個物體的動量指的是這個物體在它運動方向上保持運動的趨勢。在當前梯度更新時,引入動量會加強與歷史梯度方向相似的更新,減弱與歷史梯度方向不同的更新,使得梯度改變時就會有一段逐漸加速或逐漸減速的過程,從而加速學習過程,可以在鞍點處繼續前行,也可以逃離一些較小的局部最優區域。算法2 舉例描述了漸進塊fi的參數θi的更新迭代過程。
算法2漸進塊fi的參數θi的更新迭代步驟
輸入:學習率α,漸進塊fi參數θi,動量m,動量的衰減率β,訓練次數epochs。
輸出:收斂后的參數θi,t。
t為迭代步時,mt為梯度gt的動量,超參數β為動量mt的衰減率。在漸進塊fi訓練完收斂后,依次為剩余任務建立漸進塊并訓練,待最后一個任務學習完成后,用于持續學習任務池T={t1,t2,…,tN}所有任務的整個漸進神經網絡的模型F訓練完成。算法3簡要描述了以監督學習為例的任務相似度引導的漸進式學習的基本步驟。
算法3任務相似度引導的漸進式學習在監督學習實例中的基本步驟
輸入:有序任務池T={t1,t2,…,tN} ;數據池D={D1,D2,…,DN};訓練次數epochs。
輸出:模型F={f1,f2,…,fN}。
本章展示任務相似度引導的漸進神經網絡在SPLIT-CIFAR100 和MNIST-Permutation 和MNISTRotation數據集上的實驗結果,并在相同的實驗環境下與單任務學習、多任務學習以及一些有代表性的持續學習方法進行了對比。環境配置為AMD Ryzen 5 3600 6-Core Processor 3.59 GHz,內存16 GB,在python3.6基于Tensorflow-gpu2.5.0的框架下實現。
在實驗中主要考慮了以下3個持續學習數據集:
MNIST-Permutation 數據集[6]:它是手寫數字MNIST 數據集的一種變體,其中每個不同任務的圖像都由不同排列的像素打亂轉換而成。在這個數據集中,每個任務的分布都是不相關的。據此具體設置了5 個任務,這些任務的訓練集為10 000 張28×28像素大小的圖像,測試集為2 000 張28×28 像素大小的圖像。
MNIST-Rotation數據集[4]:它也是手寫MNIST數據集的一種變體,其中每個不同任務的圖像都進行0°到180°內的隨機角度旋轉處理。任務數量的設置和訓練集、測試集的劃分和大小都與MNIST-Permutation數據集相同。
SPLIT-CIFAR100 數據集[9,22]:它是CIFAR100 數據集[23]進行重新切分的變體。據此設置了10 個任務,每個任務將從CIFAR100 數據集中的100 類中隨機抽取10個類,所有任務中的類別是互斥的,對于每個任務,訓練集為5 000張32×32×3像素的圖像,測試集為1 000 張32×32×3 像素的圖像。而對于MNIST變形數據集(MNIST-Permutation、MNIST-Rotation)的實驗和SPLIT-CIFAR100 數據集的實驗采用了不同的網絡結構,如表1和表2所示。

表1 MNIST-Permutation和MNIST-Rotation數據集網絡結構Table 1 Network structure of MNIST-Permutation and MNIST-Rotation datasets
在以上3個數據集的漸進學習實驗中,第一個任務上使用與單任務學習相同的網絡結構,而在隨后的任務中為每個塊后添加如表1、表2 所示的級聯層(concatenation layer)。漸進學習過程中級聯層級聯上一個任務平行的層的輸出,并作為當前任務下一層的輸入進行前向傳播,如圖2所示。在每個新任務漸進過程中,新任務所構建的網絡參數將被重新初始化,并使用與先前任務相同的訓練超參數設置進行訓練。使用了早停法對SPILT-CIFAR100數據集實驗的訓練過程做監控。為防止過擬合現象,訓練時每隔一個epoch 查看驗證集的loss 變化情況,如果在驗證集的loss 在給定的epoch 內仍然沒有下降,則停止訓練,如圖4所示。

圖4 早停監控演示Fig.4 Early stop monitoring demonstration

表2 SPLIT-CIFAR100數據集網絡結構Table 2 Network structure of SPLIT-CIFAR100 dataset
本文所提出的方法將與單任務學習、多任務學習和三類經典(樣本重演、正則化方法和參數獨立方法)的持續學習方法進行對比。為確保對比的公平性,以下對比方法所使用的網絡結構都是相同的(除多任務學習外),所使用的優化器、學習率以及迭代次數、訓練批次數與漸進學習實驗也都相同,如表3。各方法介紹如下:

表3 實驗的超參數設置Table 3 Hyperparameter settings in experiments
(1)ONE(one task learning):單任務學習。使用與TSGPNN相同的網絡結構分別針對每個任務進行訓練和測試,即每個任務用一個重新初始化的模型來訓練。
(2)GEM(gradient episodic memory):梯度情景記憶。在學習當前任務時,訪問之前所有任務的部分數據,這些數據被收集在一個稱為“梯度記憶”的地方。在復現實驗中,本文的超參數梯度記憶空間大小和記憶權分別為(256,256,1 024)、(0.5,0.5,0.5)。
(3)EWC(elastic weight consolidation):彈性權重固化。通過選擇出對于先前任務較重要的權重進行保護,在優化時確保權重的更新不會對先前任務性能產生較大影響。在復現實驗中,本文的超參數設置參考了Facebook官方的復現腳本(https://github.com/facebookresearch)。
(4)MTL(multi-task learning):多任務學習。建立了一個比單任務學習模型更復雜的類似ZenkeNet[22]的網絡模型,采用了shared-bottom 結構[24],不同的任務間共用輸入層和中間層(4個卷積層組成),而每個任務享有不同的頂層輸出(由兩個全連接層組成)。
(5)PNN(progressive neural network):漸進神經網絡,為每個任務建立相同的基礎網絡,對所有的之前任務的網絡保留并固定。每次有一個新任務就新建一個網絡,訓練時通過逐層的側邊連接以求和的方式融合參數來完成不同任務間的知識遷移。
本文使用平均分類精度(average accuracy,AA)、漸進知識遷移率(progressive knowledge transfer,PKT)和各任務精度標準差(pertask-accuracy standard deviation,STD)這3項指標評估模型的性能。
所有任務的平均分類精確率作為主要的評估標準:
其中,N是已學習任務的數量,Ai是指漸進網絡模型評估任務ti的精確率。
漸進知識遷移率被用來評估漸進學習模型和單任務學習模型同一任務之間的性能差異。一般而言,PKT越大,模型學習完序列任務后對先前任務的性能提升越大。如下所示:
其中,Ai指漸進網絡模型評估對應任務ti的精確率,指單任務學習下第i個任務的精確率。漸進知識遷移率是從i=2 時開始計算的,因為當i=1時,漸進學習僅有一個漸進塊,等同于獨立學習,二者間無性能差異。
漸進學習任務間的精度標準差一定程度上反映了各任務學習過程中任務學習的穩定程度。理想情況下,漸進學習多個任務時,應盡量避免負向遷移的出現,各任務的性能都應處于較高的水平,使標準差控制在較小的范圍內。
考慮到深度網絡帶來的精度波動,本文將如下所有對比方法與TSGPNN(相似度敏感因子c分別為0.5、5.0、12.0)在各數據集上運行10 次后,取各項評估標準的平均值進行對比和分析。
3.4.1 不同epoch學習性能分析
在MNIST-Permutation數據集上的5項任務中進行不同迭代次數的訓練后,測試集精度的對比實驗顯示,如圖5 所示。為確保比較公平性,所有比較方法網絡的參數初始化方法都是相同的。在1 到5 個epoch的訓練后進行測試,GEM方法的5項任務的平均學習性能表現最佳,能在較少的epoch 內接近收斂,TSGPNN 次之。在10 到20 個epoch 后漸進神經網絡學習方法(PNN、TSGPNN)的各項任務的學習性能表現均優于單任務學習和其他持續學習方法,側面體現了漸進式學習明顯的學習速率優勢,而本文提出的方法還要優于PNN,這是因為TSGPNN 從體現了先前任務知識的各個漸進塊中使用級聯操作獲得了更多的信息,相較于其他方法收斂變得更平穩和迅速。

圖5 不同epoch下MNIST-Permutation平均精確度Fig.5 Average accuracy on MNIST-Permutation dataset under different epochs
3.4.2 綜合評估標準對比
任務相似度引導的漸進學習方法與其他方法的平均精度、漸進知識遷移率以及精度標準差如表4~表6所示。實驗的超參數設置如表3。結合圖6可以看出,與基準方法相比,TSGPNN 帶來了更好的分類性能。在MNIST 變體數據集的5 項任務上,本文平均精度達到了91.75%和95.08%,每項任務的漸進遷移率為0.65%和0.63%。而在SPLIT-CIFAR100 這樣的類別信息較為復雜的數據集中,本文方法相比其他持續學習方法表現更好,平均精度提升到了65.36%,漸進知識遷移率達到了1.81%。
從表4~表6和圖6可以看出,對比參數正則化方法EWC和樣本重演方法GEM,漸進式學習方法的平均精度更高,且學習每個任務的效果相較于從零開始的單任務學習有明顯提升。與同樣是采用參數獨立方法的PNN 相比,TSGPNN 在MNIST-Permutation和MNIST-Rotation 數據集上的平均精度要更高,穩定度也基本持平,而在SPLIT-CIFAR100數據集10個漸進任務的實驗中,PNN在前幾項任務中表現尚可,但是在最后的幾項任務中精度開始變差。在0.05的學習率下出現了較大的負遷移現象,需要對學習率等超參數進行一定的調整才能使后續任務性能達到理想水平,而在同樣的實驗參數設置上,本文提出的方法三項評估標準都要明顯優于PNN,這表明了本文基于PNN改進的思路是正確的。

表4 MNIST-Permutation數據集上的測試結果(5漸進任務)Table 4 Test result on MNIST-Permutation dataset(5 tasks) 單位:%

表5 MNIST-Rotation數據集上的測試結果(5漸進任務)Table 5 Test result on MNIST-Rotation dataset(5 tasks) 單位:%

表6 SPLIT-CIFAR100數據集上的測試結果(10漸進任務)Table 6 Test result on SPLIT-CIFAR100 dataset(10 tasks) 單位:%

圖6 各方法在SPLIT-CIFAR100數據集上的平均精度(10漸進任務)Fig.6 Average accuracy of each method on SPLIT-CIFAR100 dataset(10 tasks)
3.4.3 相似度敏感因子分析
本文對不同漸進學習數據集的相似度敏感因子c的取值做了研究。c控制了各個任務漸進塊間的參數修剪量,而c由各個任務間的相似度決定(上文的等式(5)~(7)可以體現)。如圖7所示,根據不同數據集的多個任務的相似度矩陣,為任務較多且任務域間相似度差別較小的數據集SPLIT-CIFAR100 實驗設置較大的c值,為任務較少且任務域間相似度差別較大的數據集MNIST-Permutation 實驗設置較小的c值,以防止修剪掉過多的先前任務知識。而對MNIST-Rotation數據集實驗選擇了折中的設置。

圖7 各個數據集的多個任務的相似度矩陣Fig.7 Similarity matrix of multiple tasks of each dataset
基于此,本文對超參數相似度敏感因子c做了多組不同的取值,在三個漸進數據集上做了實驗,MNIST變體數據集的各個任務(除第一個任務,因為在漸進學習過程中,第一個任務相當于獨立學習)的平均精度變化隨c值影響如圖8 所示。MNIST-Permutation實驗各項任務的最佳表現的c值在0.5 附近;而MNIST-Rotation實驗各項任務的最佳表現的c值在2或5附近。

圖8 不同敏感因子在MNIST變體數據集上的精度Fig.8 Accuracy of different sensitive factors on variants of MNIST dataset
此外本文還關注了SPLIT-CIFAR100 數據集實驗的其他兩個評估標準,如表7所示。可以看出在基于LeNet5 網絡的漸進式學習下,c值取在9 到15 之間能使整個模型表現更好,在能較高地提升對于任務的精度的同時使各個任務間精度的標準差也較小。而三項實驗的最佳c值都不處于兩端,這說明漸進任務之間過多或過少的參數修剪都將使得性能變差,特別是在任務數量多和數據場景較為復雜的情況下。在處理不同任務時,任務相似度引導的漸進階段需要有選擇地吸收不同任務間的知識,進而減少相關度小的任務間的負向影響,以此控制學習知識的穩定性和緊湊性。

表7 不同敏感因子在SPLIT-CIFAR100數據集上的表現(10漸進任務)Table 7 Performance of different sensitive factors on SPLIT-CIFAR100 dataset(10 tasks)
為了提高持續學習過程中的知識的前向遷移能力,本文提出了一種任務相似度引導的漸進深度網絡。一般的漸進神經網絡PNN采用了參數獨立的思想,為每個任務額外分配網絡分支來漸進地學習任務,以避免災難性遺忘,且通過側邊連接的方式融合參數促進任務間的知識重用。本文認為不同任務域間的分布對漸進學習的參數遷移過程有重要影響。為避免任務間的負向遷移,將各任務的漸進塊間的參數級聯,并以任務間相似度為參考修剪漸進塊的參數,使當前任務能吸收先前任務重要的特征,從而提升當前任務的性能。實驗表明,該方法在多個的連續任務場景中對比單任務學習、多任務以及持續學習方法性能有較明顯的提升,且在各個任務的穩定性也更佳,而對于不同的連續學習任務域需要選擇不同的任務相似度敏感因子。未來將關注差異更大的域之間任務對漸進式學習的影響以及探究在線的任務間相似度計算方法。