周靖洋 曾新華
1(中國科學院合肥物質(zhì)科學研究院合肥創(chuàng)新工程院智能感知中心 安徽 合肥 230031) 2(中國科學技術(shù)大學 安徽 合肥 230026) 3(復旦大學工程與應用技術(shù)研究院 上海 200433)
深度學習在許多領(lǐng)域都取得了巨大的成就,如圖像識別和自然語言處理等,但同時也出現(xiàn)了許多問題,如用傳統(tǒng)深度學習優(yōu)化器訓練的模型,在訓練數(shù)據(jù)集上表現(xiàn)很好,卻無法在測試集上取得同樣的效果,造成了過擬合;在面對對抗攻擊[1]時,模型會做出錯誤的判斷,導致識別受到干擾,且穩(wěn)定性降低。因此如何提高模型的泛化能力和魯棒性,成了許多研究者的研究重點之一。
泛化能力和魯棒性是深度學習模型重要的評價指標。近年來不斷發(fā)現(xiàn),深度學習模型損失函數(shù)在更加平坦局部最小值時,有著更好的泛化能力[2],不同優(yōu)化器的選擇就是一種對初始化參數(shù)的正則化約束,可以得到更加平緩的局部最小值[3]。通過減小梯度的急劇變化,可以使損失曲線變得平緩,從而獲得更好的測試準確率[4],也意味著具有更好的泛化能力。深度學習模型在學習的時候,通常會利用數(shù)據(jù)中的所有特征,甚至那些人眼所感知不到的特征[5],更平緩的局部最小值可以讓深度學習模型更快地學習到這些數(shù)據(jù)的總體特征,得到更好的魯棒性。近年來學術(shù)界對元學習和梯度之間的關(guān)系[6-7]以及優(yōu)化器與“平緩”的局部最小值之間的關(guān)系[8-9]都進行了大量研究。因此,選擇一個可以使模型擁有“平緩”的局部最小值的優(yōu)化器,對模型的泛化能力和魯棒性來說,顯得十分重要。
借鑒元學習[10]的思想,本文通過研究元學習優(yōu)化器的訓練和優(yōu)化過程,分析了元學習的內(nèi)部機理,提出了四種針對元學習優(yōu)化器的正則化約束,使得在元學習優(yōu)化器訓練時,抑制模型參數(shù)的劇烈變化,得到更平緩的局部最小值。本文證明了經(jīng)過正則化約束訓練的元學習優(yōu)化器(記為Meta-reg),同未加入正則化約束訓練的元學習優(yōu)化器(記為Meta)、Adam、Adagrad和SGD相比,在兩層、四層CNN的Mnist分類上,提升了泛化能力;在兩層、四層CNN的Cifar10分類上,提升了在FGSM、PGD攻擊下的魯棒性。同時分析比較了四種不同的正則化約束的實驗結(jié)果,表明:在兩層CNN的Mnist分類上,用Hessian矩陣的特征譜密度作為正則化約束,在提升泛化能力上最好;在四層CNN的Mnist分類上,Hessian矩陣的跡作為正則化約束,在提升泛化能力上最好。
元學習的思路是先讓系統(tǒng)學習任務(wù)的先驗知識,再讓系統(tǒng)去驅(qū)動全新的任務(wù),元學習目前的主要實現(xiàn)方式有三種:基于長短記憶神經(jīng)網(wǎng)絡(luò)(LSTM)、基于強化學習和基于注意力機制的方法。原理如圖1所示。
元學習優(yōu)化器則是由待優(yōu)化的問題(記為optimizee)來驅(qū)動,再應用到不同的問題中。
結(jié)合元學習的思想,將基于梯度下降的優(yōu)化問題作為訓練任務(wù),讓機器經(jīng)過一定的優(yōu)化訓練,學會梯度下降,從而得到元學習優(yōu)化器。其相對于傳統(tǒng)的優(yōu)化器,具有設(shè)計簡便、優(yōu)化效果好的優(yōu)點。下面將主要介紹基于LSTM[12]神經(jīng)網(wǎng)絡(luò)的元學習優(yōu)化器的原理和如何加入正則化約束訓練元學習優(yōu)化器。
LSTM神經(jīng)網(wǎng)絡(luò)可以選擇性地記憶或丟棄一些信息,在時間序列的處理上有著廣泛的應用,而梯度下降算法也是一種基于時間序列的算法,因此元學習優(yōu)化器的工作原理就是:將待優(yōu)化問題的梯度輸入LSTM中,再讓LSTM根據(jù)之前選擇性保留的梯度信息,輸出一個更新值,通過這個更新值更新待優(yōu)化問題的參數(shù),從而實現(xiàn)優(yōu)化的過程。
1.1.1實驗的元學習優(yōu)化器選擇
Andrychowicz等[13]設(shè)計了一個兩層LSTM的元學習優(yōu)化器,隱藏層大小都是20,用它迭代optimizee 100次,得到對應的100個optimizee損失值并求和,通過用Adam迭代更新元學習優(yōu)化器的參數(shù),使得這100個optimizee損失值之和最小化,得到元學習優(yōu)化器。
Wichrowska等[14]提出了一種梯度下降的控制器作為元學習優(yōu)化器,得到optimizee的梯度后,控制器根據(jù)梯度輸出學習率,再通過學習率,輸出最終的更新值,更新optimizee。控制器由三層LSTM網(wǎng)絡(luò)組成,第一層LSTM處理optimizee每一個參數(shù),第二層LSTM處理第一層LSTM的參數(shù),第三層LSTM處理第二層LSTM的參數(shù),這樣通過分層的LSTM實現(xiàn)對梯度信息更加有效的管理和控制。
相比于文獻[13],文獻[14]的方法收斂性更好。實驗采用文獻[14]方法的元學習優(yōu)化器作為Meta,并在其基礎(chǔ)上,加入正則化約束訓練后得到Meta-reg。
1.1.2元學習優(yōu)化器的訓練過程
訓練一個元學習優(yōu)化器,讓元學習優(yōu)化器優(yōu)化optimizee,即對optimizee的參數(shù)迭代一次,得到optimizee的損失值lp,將若干個lp求和得到元學習優(yōu)化器的損失值LO,通過不斷降低LO,得到訓練的元學習優(yōu)化器。LO的計算原理如下:
(1)
式中:PO為元學習優(yōu)化器的參數(shù);ope為optimizee;n為optimizee的迭代次數(shù);w為optimizee的參數(shù);d為輸入optimizee的數(shù)據(jù)樣本。訓練一個元學習優(yōu)化器,即為不斷更新迭代PO,使得LO(PO,ope)降低,原理如下:
M=argminLO(PO,ope)
(2)
式中:M為訓練好的元學習優(yōu)化器。流程如圖2所示。
對于大型神經(jīng)網(wǎng)絡(luò)而言,單純使用梯度下降算法,由于參數(shù)量過多,并且遠超過訓練樣本,因此很容易陷入過擬合的情況,造成泛化能力差,結(jié)果在訓練集上表現(xiàn)很好,卻在測試集上表現(xiàn)差。采用正則化約束后,可以讓它避免陷入過擬合的情況。經(jīng)典理論認為,機器學習模型之所以會陷入過擬合,就是因為模型的損失值進入了相對“陡峭”(梯度值大)的局部最小值,只有使得“陡峭”的局部最小值變得“平緩”,才能抑制模型的過擬合和提升泛化能力。因此通過在原有的損失值上加入一個懲罰項,抑制梯度往陡峭的局部最小值方向下降,使得模型最終進入一個相對平緩的局部最小值。
由于元學習優(yōu)化器本質(zhì)上也是一種深度學習模型,通過加入正則化約束,可以讓訓練出來的元學習優(yōu)化器在優(yōu)化optimizee時,可以進入更加“平緩”的局部最小值。為此本文提出在元學習優(yōu)化器上加入正則化約束的方法,使其在優(yōu)化深度學習模型的時候,讓模型擁有“平緩”的局部最小值,進而提高模型的泛化能力和魯棒性,即在LO上加上正則化約束項來進行訓練。
本實驗提出的正則化約束分為以下兩類。
(1) Hessian正則化約束。Hessian正則化約束可由optimizee的Hessian矩陣計算得來。Hessian矩陣計算式為:
(3)
式中:y為optimizee的損失值;x1,x2,…,xn為optimizee的所有參數(shù);H為Hessian矩陣。
Hessian正則化約束有三種,即Hessian矩陣的跡(trace)、Hessian矩陣的最大特征值(eigen value)、Hessian矩陣的特征譜密度(eigen spectral density),它們按照Yao等[15]的方法計算而來。
研究采用Hessian矩陣的跡(trace)、Hessian矩陣的最大特征值(eigen value)、Hessian矩陣的特征譜密度(eigen spectral density)和雅可比行列式四種正則化約束方式。通過正則化約束,元學習優(yōu)化器在選擇梯度下降方向的時候,便會受到梯度值的約束,而無法沿梯度值最大的方向進行更新,只能沿梯度較為平緩的方向進行更新,從而更好地抑制過擬合,并取得更好的泛化能力。
為此在optimizee的迭代過程中的損失值上,加入正則化約束項,作為最終的LO,則:
(4)
式中:α為正則化項的系數(shù);reg為正則化約束項。流程如圖3所示。
深度學習模型在未知數(shù)據(jù)集上取得的表現(xiàn),稱為泛化能力,選擇測試準確率以及測試、訓練準確率之差,作為泛化能力的比較指標。
深度學習模型在遭到對抗攻擊時,輸出會產(chǎn)生巨大的偏差,因此提高模型魯棒性非常重要。
對抗攻擊是在原始數(shù)據(jù)樣本中,加入對抗干擾因素后,生成對抗樣本,并輸入到訓練好的網(wǎng)絡(luò)中,誘導其做出錯誤的判斷。其原理可用式(5)表示。
d^=d+σ
(5)
式中:d^為對抗樣本;d為原始數(shù)據(jù)樣本;σ為對抗干擾。目前主要有兩種對抗攻擊方式,即FGSM和PGD。
FGSM原理可用式(6)表示。
σ=e·sign(▽dl(w,d,s))
(6)
式中:e為迭代步長;l(w,d,s)為模型的損失值;▽d為l(w,d,s)對d求導的梯度;sign為▽d的方向;w為模型的參數(shù);s為原始數(shù)據(jù)樣本對應的標簽。
FGSM的目的在于:通過梯度上升,在原始數(shù)據(jù)樣本上加入對抗擾動,使得模型的損失值增大,從而做出錯誤的判斷。
PGD也稱為K-FGSM,即反復迭代K次FGSM的過程,由于PGD相比于FGSM對非線性模型的迭代方向有著更好的適應性,所以PGD的攻擊效果要遠好于FGSM的攻擊效果。實驗中K選擇為10。模型在對抗樣本上取得的準確率越高,則魯棒性越好。
實驗模型選擇:Hornik等[16]提出了通用近似理論證明,擁有無限神經(jīng)元的單層前饋網(wǎng)絡(luò),能逼近緊致實數(shù)子集上的任意連續(xù)函數(shù),只要網(wǎng)絡(luò)足夠復雜,則可以擬合任意連續(xù)的實數(shù)函數(shù)。Bengio等[17]研究了更深層的網(wǎng)絡(luò)比淺層的網(wǎng)絡(luò)有更好的函數(shù)擬合能力,通過增加網(wǎng)絡(luò)的層數(shù)使得網(wǎng)絡(luò)更加復雜,增加網(wǎng)絡(luò)的擬合能力和表征能力,提升網(wǎng)絡(luò)的效果。Montufar等[18]的研究表明在同樣的參數(shù)量下,深層網(wǎng)絡(luò)有著比淺層網(wǎng)絡(luò)更好的非線性,可以取得更好的效果。因此本文選擇在兩層和四層CNN上進行實驗,用于更深層的網(wǎng)絡(luò)上,也可以取得更好的效果。
實驗分成三步:(1) 在optimizee上訓練Meta-reg;(2) 得到訓練好的Meta-reg后,再用Meta-reg在測試問題上測試,得到訓練好的測試問題模型,獨立重復10次;(3) 從訓練好的測試問題模型中,選擇測試準確率最高的一次,進行模型魯棒性測試。
訓練optimizee在兩層CNN的Mnist分類上進行。泛化能力測試分別在兩層、四層CNN的Mnist分類上進行,魯棒性測試分別在兩層、四層CNN的Cifar10分類上進行(在兩層CNN的Mnist、Cifar10分類中,每層卷積核個數(shù)均為16;在四層CNN的Mnist、Cifar10分類中,每層卷積核個數(shù)均為32。激活函數(shù)為ReLU)。兩層和四層CNN的結(jié)構(gòu)分別如圖4和圖5所示。
實驗在英偉達RTX2080ti上進行,選擇數(shù)據(jù)集為Mnist,批大小為64,Meta-reg訓練epoch數(shù)為5,用Rmsprop訓練Meta-reg,學習率為。所有optimizee的參數(shù)均為正態(tài)隨機初始化,采用交叉熵作為損失函數(shù)。
從Mnist的訓練集中隨機采樣出10 000個訓練樣本,按批輸入到訓練optimizee中,Meta-reg對optimizee的參數(shù)進行一次迭代得到lp,并在lp上加上對應的正則化約束項reg,得到正則化損失值,將300次迭代過程的正則化損失值求和,作為Meta-reg的損失值,用Rmsprop對Meta-reg的參數(shù)進行更新迭代,使其不斷降低,訓練5個epoch后,得到訓練好的Meta-reg。實驗中通過不斷地調(diào)整正則化項系數(shù)α,使得正則化約束獲得最好的效果,依次得到對應的四種Meta-reg。
訓練好Meta-reg后,分別在兩層、四層CNN的Mnist分類上,訓練100個epoch,獨立重復進行10次,取測試準確率最高的一次,進行比較(Meta、Adam、Adagrad和SGD的測試過程同理)。在兩層、四層CNN的Cifar10分類上,測試過程同理。
3.1.1兩層CNN的Mnist分類的泛化能力
將Adam、Adagrad、SGD、Meta和Meta-reg在兩層CNN的Mnsit分類上的實驗結(jié)果進行比較,結(jié)果分別如圖6-圖9所示。其中:圖6和圖7分別是測試準確率總曲線和其細節(jié)展示;圖8和圖9分別是測試、訓練準確率之差的總體曲線及其細節(jié)展示。
3.1.2四層CNN的Mnist分類的泛化能力
將Adam、Adagrad、SGD、Meta和Meta-reg在四層CNN的mnsit分類上的實驗結(jié)果進行比較。泛化能力比較結(jié)果如圖10、圖11、圖12和圖13所示,其中:圖10是測試準確率總體曲線;圖11是測試準確率的細節(jié)展示;圖12是測試、訓練準確率之差的總體曲線;圖13是測試、訓練準確率之差的細節(jié)展示。
3.2.1兩層CNN的Cifar10分類上的魯棒性比較
依次選擇Meta、Adam、Adagrad、SGD和Meta-reg在兩層CNN的Cifar10分類上,測試準確率最高的模型,進行魯棒性比較。先用FGSM分別對Meta、Adam、Adagrad、SGD和Meta-reg的模型,進行對抗攻擊測試,對抗樣本按照epsilon從0.1/255、0.2/255、0.3/255、0.4/255、0.5/255的順序生成,測取模型對抗攻擊的準確率,PGD過程同理。實驗結(jié)果見表1、表2。
表1 不同優(yōu)化器訓練的兩層CNN在FGSM
表2 不同優(yōu)化器訓練的兩層CNN在PGD
3.2.2四層CNN的Cifar10分類上的魯棒性比較
依次選擇Meta、Adam、Adagrad、SGD和Meta-reg在四層CNN的Cifar10分類上,測試準確率最高的模型,進行魯棒性比較。先用FGSM分別對Meta、Adam、Adagrad、SGD和Meta-reg的模型,進行對抗攻擊測試,對抗樣本按照epsilon從0.1/255、0.2/255、0.3/255、0.4/255、0.5/255的順序生成,測取模型對抗攻擊的準確率,PGD過程同理。實驗結(jié)果見表3和表4。
表3 不同優(yōu)化器訓練的四層CNN在FGSM
表4 不同優(yōu)化器訓練的四層CNN在PGD
實驗以Meta作為基準參考對象,與加入四種不同的Meta-reg進行比較,其中Hessian矩陣的特征譜密度、Hessian矩陣的最大特征值和Hessian矩陣的跡分別記為Meta-Hessian-EV、Meta-Hessian-ESD、Meta-Hessian-Trace,Jacobian正則化約束記為Meta-Jacobian。在兩層CNN上進行的實驗結(jié)果,分別如圖14、圖15所示,在四層CNN上實驗的結(jié)果分別如圖16、圖17所示。
以上結(jié)果表明,加入了正則化約束訓練后的元學習優(yōu)化器,與其他優(yōu)化器相比,在兩層和四層CNN上,Meta-reg在泛化能力上均明顯優(yōu)于其他的優(yōu)化器,隨著epoch的增加,測試、訓練準確率之差曲線始終保持相對平穩(wěn),并且低于其他優(yōu)化器,測試準確率也比其他優(yōu)化器的結(jié)果更好。四層CNN與兩層CNN相比測試準確率提升了0.5%,而且已有研究[16-18]證明,神經(jīng)網(wǎng)絡(luò)有著擬合任意函數(shù)的能力,這種擬合能力會隨著其層數(shù)加深,而越來越好。因此,實驗的方法能在更復雜的神經(jīng)網(wǎng)絡(luò)上取得很好的效果。
在對抗攻擊的魯棒性方面:在兩層、四層的CNN的Cifar10分類上,用FGSM按epsilon為0.1/255、0.2/255、0.3/255、0.4/255、0.5/255分別進行對抗攻擊,用Meta-reg訓練出來的模型均有最高的魯棒性,同樣用PGD按epsilon為0.1/255、0.2/255、0.3/255、0.4/255、0.5/255分別進行對抗攻擊,用Meta-reg訓練出的模型均有最高的魯棒性。四層CNN與兩層CNN相比,在FGSM和PGD對抗攻擊下,魯棒性更好。
圖14、圖15實驗結(jié)果表明,在兩層CNN的Mnist分類上,用Hessian矩陣的特征譜密度作為正則化約束,在泛化能力上最好;圖16、圖17實驗結(jié)果表明,在四層CNN的Mnist分類上,Hessian矩陣的跡作為正則化約束泛化能力最好。
本文對近年來深度學習所面臨的過擬合和易受對抗攻擊等問題,結(jié)合當前新興的元學習優(yōu)化器,通過研究元學習優(yōu)化器的原理,研究并提出四種正則化約束,用于訓練元學習優(yōu)化器,使得Meta-reg在訓練深度學習模型時,提高了模型的泛化能力和魯棒性。并且在兩層、四層CNN的Mnist分類問題上,Meta-reg都比其他優(yōu)化器具有更好的泛化能力。
在兩層、四層CNN的Cifar10分類上,用FGSM和PGD進行對抗攻擊后,Meta-reg訓練出的模型都有最高的魯棒性。
通過對不同的正則化約束實驗進行比較發(fā)現(xiàn):在兩層CNN上,Hessian矩陣的跡約束效果最好;在CNN網(wǎng)絡(luò)上,Hessian矩陣的最大特征值約束效果最好。
以上研究和實驗表明,通過精心設(shè)計的正則化約束項訓練后,相比其他優(yōu)化器,Meta-reg訓練的深度學習模型取得了最好的泛化能力和魯棒性,用于更復雜的深度學習模型效果會更好。