国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于可分離結(jié)構(gòu)變換的輕量級Vision Transformer

2022-10-18 06:56黃延輝
計算機(jī)與現(xiàn)代化 2022年10期
關(guān)鍵詞:剪枝注意力精度

黃延輝,蘭 海,魏 憲

(1.福州大學(xué)電氣工程與自動化學(xué)院,福建 福州 350100;2.中國科學(xué)院福建物質(zhì)結(jié)構(gòu)研究所泉州裝備制造研究中心,福建 泉州 362200)

0 引 言

隨著AlexNet[1]奪得2012年ImageNet[2]大規(guī)模圖像識別競賽(ILSVRC2012)的冠軍,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks, CNN)也成為計算機(jī)視覺領(lǐng)域的研究熱點(diǎn),VGG[3]和ResNet[4]等經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)模型被相繼提出,CNN逐漸成為視覺領(lǐng)域的主流網(wǎng)絡(luò)結(jié)構(gòu)。2020年Vision Transformer[5](ViT)橫空出世,這個以Transformer為基本架構(gòu)的新模型在ImageNet數(shù)集上取得了最高的分類精度,此后越來越多的ViT變體被提出,迅速席卷了計算機(jī)視覺領(lǐng)域各個下游任務(wù)。目前在圖像分類[6]、目標(biāo)檢測[7]和圖像分割[8]等視覺任務(wù)上的最優(yōu)模型都與Transformer有關(guān)。

隨著移動設(shè)備數(shù)量的增長和物聯(lián)網(wǎng)的普及,深度學(xué)習(xí)模型越來越需要被部署到一些實(shí)時終端設(shè)備上,如智能手機(jī)、可穿戴醫(yī)療設(shè)備、自動駕駛汽車和安防監(jiān)控攝像頭等。雖然實(shí)驗(yàn)室環(huán)境下Transformer結(jié)構(gòu)模型的性能在許多視覺任務(wù)上都超越了卷積神經(jīng)網(wǎng)絡(luò),但是如果將其部署到終端設(shè)備中則必須解決模型參數(shù)量大和推理速度慢的問題。因?yàn)檫@些設(shè)備大多不僅要求實(shí)時性強(qiáng),而且自身資源還有限,無法滿足快速運(yùn)行大型模型所需的內(nèi)存和算力要求。Transformer模型依賴于自注意力機(jī)制,一方面因?yàn)樽宰⒁饬C(jī)制中大量使用全連接層,這使得多層Transformer模型參數(shù)量非常大。另一方面,自注意力機(jī)制的計算復(fù)雜度相對于序列長度的時間和空間復(fù)雜度均是O(n2),當(dāng)序列長度過大時計算成本難以承受[9]。

在Transformer結(jié)構(gòu)應(yīng)用到視覺領(lǐng)域之前已有一些工作探索通過降低注意力矩陣計算成本來使得Transformer模型更加高效[10-13]。但這些方法大多沒有或者只是略微降低了模型的參數(shù)量,并且由于注意力矩陣存在低秩瓶頸[14],許多方法可能會使得模型的表達(dá)能力有所損失。

與Transformer模型不同的是,CNN模型的計算大多伴隨隱藏層出現(xiàn),很少有額外的中間計算。所以在CNN模型中參數(shù)量的減少也會帶來計算成本的降低,這使得CNN壓縮算法大多專注于降低模型參數(shù)量。模型壓縮算法大體上可以分為4類:低秩分解[15]、量化[16]、知識蒸餾[17]、剪枝[18]。剪枝法是研究最廣泛、競爭力最強(qiáng)的一類模型壓縮算法,它主要通過修剪不重要的權(quán)重來壓縮模型。但使用剪枝法修剪注意力機(jī)制中的全連接層時可能會使特征矩陣Q與特征矩陣K中大量元素為0,使得它們點(diǎn)積生成的注意力矩陣低秩,影響模型的表達(dá)能力[14]。

基于以上問題,本文提出一種基于可分離結(jié)構(gòu)變換的輕量級Visual Transformer模型,通過將ViT模型中的全連接層變換為可分離結(jié)構(gòu)(Separable Structured Transformations, SST)來降低參數(shù)量,在加速模型的同時盡可能保留模型的精度。本文的主要工作有:

1)提出一種基于克羅內(nèi)克積分解的可分離結(jié)構(gòu)變換,能夠?qū)鹘y(tǒng)全連接層變換為一種新型全連接結(jié)構(gòu),使得Transformer結(jié)構(gòu)模型在降低參數(shù)量、加速計算的同時避免注意力矩陣低秩從而保證了模型的表達(dá)能力。

2)提出一種基于SVD的克羅內(nèi)克積近似分解法,命名為NKP-SST。使用該法可以將公開的ViT預(yù)訓(xùn)練參數(shù)分解后加載到ViT-SST上,可以提升模型精度。這為解決Transformer結(jié)構(gòu)模型預(yù)訓(xùn)練時間成本高昂的問題提供了一種新的方向。

1 研究現(xiàn)狀

1.1 Vision Transformer

在Dosovitskiy等人[5]提出Vision Transformer之前,CNN主導(dǎo)了機(jī)器視覺領(lǐng)域。CNN網(wǎng)絡(luò)依靠權(quán)值共享、尺度分離和平移不變性等特性,獲得了強(qiáng)大和高效的圖像特征提取能力。雖然Transformer結(jié)構(gòu)網(wǎng)絡(luò)沒有像CNN那樣直接表現(xiàn)出強(qiáng)大的歸納偏置,但其獨(dú)特的結(jié)構(gòu)使它可以通過平移不變性來獲得歸納偏置。具體來說,標(biāo)準(zhǔn)的Vision Transformer包括以下部分:令牌嵌入、位置嵌入、Transformer編碼器和分類頭。該模型首先將圖片切分為固定尺寸大小的圖片塊,通過令牌嵌入層將圖片塊編碼,再通過位置嵌入添加位置編碼信息,然后將其送入Transformer的編碼器中進(jìn)行特征提取,最后通過分類頭輸入分類結(jié)果。隨著對Transformer結(jié)構(gòu)網(wǎng)絡(luò)的探索,許多基于Transformer結(jié)構(gòu)的模型被提出并有效解決視覺任務(wù)。Wu等人[19]則通過結(jié)合Transformer和CNN以獲得理想的性能。Liu等人[7]提出了Swin Transformer,它采用圖片塊劃分、線性嵌入、金字塔結(jié)構(gòu)和基于窗口的自注意力機(jī)制來獲得強(qiáng)大的性能。

1.2 Efficient Transformer

借助自注意力機(jī)制,Transformer結(jié)構(gòu)在許多領(lǐng)域得到廣泛應(yīng)用。但在注意力計算過程中特征矩陣Q與特征矩陣K的點(diǎn)積會產(chǎn)生一個很大的矩陣用來表示令牌與令牌之間的交互,這使得自注意力運(yùn)算不可避免地存在窮舉和冗余計算。由于自注意力計算時間復(fù)雜度是O(n2),當(dāng)輸入序列長度增加時,爆炸式增長的計算量成為了Transformer的瓶頸。為了解決這一問題,研究人員提出了幾種新的Transformer架構(gòu)來改進(jìn)原有的自注意力機(jī)制。這些方法主要分為3類:

第一類方法采用稀疏自注意力,即注意力計算時只能以特定的預(yù)定義方式進(jìn)行有限計算。例如,文獻(xiàn)[13,20]利用固定的跨步注意力計算模式來降低計算成本。Kitaev等人[12]提出一種可學(xué)習(xí)的方法,使用基于哈希的相似性來替換令牌對令牌的交互。

第二類方法采用基于核的方法來直接逼近并生成注意力矩陣。文獻(xiàn)[10-11]采用核方法來找到一種相對低秩的結(jié)構(gòu)來減少計算復(fù)雜度。而Tay等人[21]提出了綜合Transformer,利用多層感知機(jī)直接近似自注意力機(jī)制的點(diǎn)乘運(yùn)算。

除此之外,還有一些方法與上述解決方案不同。例如,文獻(xiàn)[22]應(yīng)用一個隱藏狀態(tài)來使用遞歸機(jī)制連接相鄰的令牌。文獻(xiàn)[23]使用雙系統(tǒng)同時維護(hù)長短期記憶以減少計算復(fù)雜度。

上述方法都只是試圖降低計算成本,沒有或者輕微降低了模型的參數(shù)量,所以這些模型稱為Efficient Transformer[9]。

1.3 模型壓縮算法

隨著卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展,計算機(jī)視覺任務(wù)的精度達(dá)到了前所未有的水平。為了進(jìn)一步提高性能,研究人員設(shè)計了更深、更廣的網(wǎng)絡(luò),但提高準(zhǔn)確性往往是有代價的:網(wǎng)絡(luò)模型參數(shù)量和計算量越來越大,超出了許多現(xiàn)實(shí)場景中設(shè)備的承受能力。為了克服這一問題,研究人員提出了各種類型的神經(jīng)網(wǎng)絡(luò)壓縮算法。這些方法大體上可以分為4個類別:低秩分解、知識蒸餾、量化和剪枝。

低秩分解算法主要是將使用多個小規(guī)模的低秩向量矩陣的張量積去近似大規(guī)模的權(quán)重矩陣。然而,因?yàn)樗婕胺纸獠僮?,計算代價十分昂貴。另一個問題是因?yàn)椴煌瑢映钟胁煌男畔?,?dāng)前的方法只能逐層執(zhí)行低秩逼近,無法執(zhí)行全局參數(shù)壓縮。低秩近似之后,模型還需要較長時間再訓(xùn)練以使原始模型收斂[24]。而Transformer結(jié)構(gòu)模型本身由于缺少歸納偏置而需要在超大數(shù)據(jù)集上預(yù)訓(xùn)練,且訓(xùn)練收斂難度較高[5],這導(dǎo)致低秩分解算法很難在Transformer結(jié)構(gòu)模型上使用。

量化算法則通過減少表示每個權(quán)重所需的比特數(shù)來壓縮原始網(wǎng)絡(luò)。Gong等人[25]對參數(shù)權(quán)重值使用K均值找到所有權(quán)重值的聚類中心,用聚類中心加偏移量的靈活表示方式來代替?zhèn)鹘y(tǒng)8位數(shù)字的固定表示方法。Vanhoucke等人[26]展示了權(quán)值可以在準(zhǔn)確率損失極小的同時實(shí)現(xiàn)大幅降低參數(shù)量。通過上述內(nèi)容可以看出量化算法主要在模型參數(shù)保存階段使用,所以一般與其他壓縮算法組合使用。

知識蒸餾算法[17]將輕量級的學(xué)生網(wǎng)絡(luò)輸出分類概率向量與大型教師網(wǎng)絡(luò)輸出分類概率向量的交叉熵?fù)p失作為學(xué)生網(wǎng)絡(luò)訓(xùn)練時損失值的一部分,以此來誘導(dǎo)學(xué)生網(wǎng)絡(luò)的訓(xùn)練,實(shí)現(xiàn)知識遷移。FitNet[27]則通過讓學(xué)生模型模仿教師模型的特征圖來達(dá)到更高的精度。然而基于知識蒸餾的算法通常需要自己設(shè)計學(xué)生網(wǎng)絡(luò),且很難獲得有競爭力的結(jié)果。

剪枝算法最早通過修剪權(quán)值最小的部分參數(shù)來達(dá)到壓縮和加速模型的目的。后來,出現(xiàn)了The Optimal Brain Damage[28]和The Optimal Brain Surgeon[29]方法。這些工作表明,該剪枝算法比根據(jù)權(quán)值大小進(jìn)行修剪的剪枝算法具有更高的準(zhǔn)確性。而Srinivas等人[30]則探索并發(fā)現(xiàn)神經(jīng)元之間存在冗余,并提出了一種無數(shù)據(jù)剪枝方法來去除多余的神經(jīng)元。Transformer結(jié)構(gòu)模型的特征提取模塊包含了多頭自注意力機(jī)制中的3個全連接層Wq、Wk、Wv,當(dāng)使用剪枝算法進(jìn)行修剪時會使得該全連接層權(quán)值部分變成0,進(jìn)而使得Q、K、V矩陣也存在大量權(quán)值為0,最終導(dǎo)致注意力矩陣低秩,影響模型的表達(dá)能力。

2 基于可分離結(jié)構(gòu)變換的ViT-SST

2.1 基于克羅內(nèi)克積分解的可分離結(jié)構(gòu)

在神經(jīng)網(wǎng)絡(luò)中,在單樣本輸入情況下神經(jīng)網(wǎng)絡(luò)全連接層可以表示為:

Y=σ(WX+b)

(1)

式中X表示輸入向量,Y表示輸出向量,W表示權(quán)重矩陣,b表示偏置矩陣,σ(·)為非線性激活函數(shù)。假設(shè)X∈m×1,Y∈n×1,W∈n×m,b∈n×1,則可以根據(jù)公式(2)和公式(3)計算出該全連接層參數(shù)量p和浮點(diǎn)計算次數(shù)f(floating point operations, FLOPs):

p=(m+1)n

(2)

f=mn

(3)

由此可知,輸入向量和輸出向量的維度決定了權(quán)重矩陣W的大小,進(jìn)而決定了全連接層的計算量和浮點(diǎn)計算次數(shù)。在計算機(jī)視覺領(lǐng)域,目前常見的公開數(shù)據(jù)集圖片尺寸最小也有28×28,大的可達(dá)224×224及以上。一般來說,全連接層需要將上述圖片或提取特征后的特征圖展平后作為輸入向量X送入全連接層,為了匹配該輸入向量維度不得不將參數(shù)矩陣的尺寸設(shè)置得很大,這就很容易出現(xiàn)網(wǎng)絡(luò)模型參數(shù)量激增的問題。以VGG16為例,ImageNet數(shù)據(jù)集的圖片經(jīng)過前13層卷積層處理后特征圖維度為7×7×512,將其展平后輸入向量X∈25088×1,通過參數(shù)矩陣W∈25088×4096得到輸出向量Y∈4096×1。根據(jù)公式(1)可計算出該層全連接層參數(shù)量高達(dá)1億多,VGG16網(wǎng)絡(luò)將近90%的參數(shù)在全連接層。

由以上分析可知全連接層參數(shù)量大的主要原因是將輸入數(shù)據(jù)拉平變?yōu)橄蛄克鶎?dǎo)致的輸入向量維度過大。同時因?yàn)樽⒁饬仃嚨牡椭绕款i,簡單粗暴地修剪注意力機(jī)制中的全連接層或者對注意力矩陣采取核逼近或跨步計算等方法有可能影響到模型的表達(dá)能力。為了解決這一問題,本文提出一種基于克羅內(nèi)克積分解的可分離結(jié)構(gòu)。將普通全連接層結(jié)構(gòu)分離轉(zhuǎn)換為2個小規(guī)模權(quán)值矩陣,即分別從輸入矩陣的2個維度去進(jìn)行權(quán)值乘法運(yùn)算,這樣就避免了將輸入數(shù)據(jù)拉平的操作,有效降低了全連接層的參數(shù)量,又保留了完整的全連接結(jié)構(gòu),避免注意力矩陣低秩。

首先,假設(shè)參數(shù)矩陣W∈n×m,且等于2個小矩陣At和Bt的克羅內(nèi)克積,即W=Bt?At,式中At∈n1×m1,Bt∈n2×m2,n=n1n2,m=m1m2。那么公式(1)就可以寫成:

Y=σ((Bt?At)X+b)

(4)

將克羅內(nèi)克積改寫為普通點(diǎn)積后可得:

v-1(Y)=σ(At·v-1(X)·Bt+v-1(b))

(5)

其中v-1(·)表示將向量重新塑造維度變?yōu)榫仃嚒I厦嬉呀?jīng)提到,圖片數(shù)據(jù)輸入后一般為二維矩陣形式,那么公式(5)可以繼續(xù)改寫為如下形式:

Yt=σ(At·Xt·Bt+bt)

(6)

式中Xt和Yt表示輸入、輸出矩陣而非輸入、輸出向量,bt為偏置矩陣,At和Bt為新的參數(shù)矩陣。該式即為基于克羅內(nèi)克積分解的新全連接結(jié)構(gòu)表達(dá)式,該變換命名為可分離結(jié)構(gòu)變換。示意圖如圖1所示。

為了方便比較2種全連接結(jié)構(gòu)的參數(shù)量和計算量,下文普通連接層將以FC表示,結(jié)構(gòu)變換后的新全連接層以SST表示。由于偏置參數(shù)只是重新塑造了維度并沒有減少或增加參數(shù)量,參數(shù)量計算將不考慮偏置的影響,那么2種全連接層參數(shù)之比就可以表示為:

N(SST)/N(FC)=(n1m1+n2m2)/(n1m1n2m2)

=1/n1m1+1/n2m2

(7)

因?yàn)閚1、n2、m1、m2均遠(yuǎn)大于1,所以N(SST)/N(FC)結(jié)果遠(yuǎn)小于1,由此可知模型參數(shù)量得到了很大幅度的降低,當(dāng)n1=n2,m1=m2時參數(shù)量降低幅度最大。

浮點(diǎn)計算次數(shù)之比為:

O(SST)/O(FC)=(n1m1m2+n2m2m1)/n1m1n2m2

=1/n2+1/n1

(8)

因?yàn)閚2和n1均遠(yuǎn)大于1,所以O(shè)(SST)/O(FC)值遠(yuǎn)小于1,由此可知模型的浮點(diǎn)計算次數(shù)也得到了降低。

2.2 基于SVD分解的模型權(quán)值克羅內(nèi)克積分解法

在深度學(xué)習(xí)中模型加載預(yù)訓(xùn)練參數(shù)時需要參數(shù)與模型結(jié)構(gòu)完全匹配,缺少或隨意修改部分參數(shù)都有可能導(dǎo)致預(yù)訓(xùn)練模型失去作用。雖然理論上可以將ViT模型的預(yù)訓(xùn)練參數(shù)進(jìn)行克羅內(nèi)克積分解后加載到ViT-SST中,但因?yàn)榇蟛糠智闆r下ViT公開預(yù)訓(xùn)練模型參數(shù)均為多位小數(shù),這使得無法通過傳統(tǒng)克羅內(nèi)克積分解的方法得到有效分解結(jié)果。為了得到近似但有效的克羅內(nèi)克積分解結(jié)果,本文引入一種基于Singular Value Decomposition (SVD)分解的克羅內(nèi)克積分解近似解求法。

接下來以4行4列的W矩陣為例說明該方法。W=B?A可以具體寫成如下形式:

(9)

求W矩陣的克羅內(nèi)克積分解后的A矩陣和B矩陣可以轉(zhuǎn)化為最小化φ(A,B)問題,其中:

φ(A,B)=‖W-A?B‖F(xiàn)

(10)

(11)

那么公式(10)就可以寫成如下形式,式中vec(·)表示將矩陣向量化:

φ(A,B)=‖W-A?B‖F(xiàn)

(12)

(13)

2.3 ViT-SST模型結(jié)構(gòu)

ViT-SST網(wǎng)絡(luò)整體結(jié)構(gòu)如圖2(a)所示;Transformer編碼器模塊結(jié)構(gòu)如圖2(b)所示;多頭注意力機(jī)制結(jié)構(gòu)如圖2(c)所示。與傳統(tǒng)的ViT相比,本模型將編碼器中的MLP層和多頭注意力機(jī)制中的所有普通全連接層均轉(zhuǎn)換為可分離結(jié)構(gòu)全連接層,這使得模型參數(shù)量大幅降低。對于標(biāo)準(zhǔn)的ViT-B/16模型,參數(shù)量可以由85.7M降低到0.3M,壓縮倍率高達(dá)285倍。對于適合小數(shù)據(jù)集的ViT-Lite模型來說,參數(shù)量由3.85M下降至0.21M。

3 實(shí)驗(yàn)與分析

3.1 實(shí)驗(yàn)設(shè)置與數(shù)據(jù)集

為了驗(yàn)證本文所提網(wǎng)絡(luò)的性能,以下實(shí)驗(yàn)均在常見的公開圖片數(shù)據(jù)集上進(jìn)行。數(shù)據(jù)集包括:MNIST[31]、CIFAR-10[32]、CIFAR-100[32]、Caltech101[33]、Caltech256[33]。MNIST數(shù)據(jù)集由60000張像素為28×28的手寫數(shù)字圖像組成,分為10類。CIFAR-10數(shù)據(jù)集由60000張32×32的彩色圖像組成,分為10類,每類6000張圖像。其中有50000張訓(xùn)練圖像和10000張測試圖像。CIFAR-100數(shù)據(jù)集由60000張32×32的彩色圖像組成,分為100個類,每個類600張圖像中有500幅訓(xùn)練圖像和100幅測試圖像。Caltech101數(shù)據(jù)集包含101個類別,共9146張圖像,每類包含圖片數(shù)量不同,每個類別約40至800張圖像,大多數(shù)類別都有大約50張圖像,每個圖像的大小約為300×200像素,本文在實(shí)驗(yàn)中將其圖片形狀統(tǒng)一變形為224×224。Caltech256共含有256類,每個類別的圖片超過80張,其他信息與Caltech101數(shù)據(jù)集相同。

本次實(shí)驗(yàn)代碼采用Python語言編寫,使用Pytorch深度學(xué)習(xí)框架,在NVIDIA RTX 2080Ti上訓(xùn)練,并對數(shù)據(jù)集使用了隨機(jī)裁剪和隨機(jī)水平翻轉(zhuǎn)等數(shù)據(jù)增強(qiáng)方式。ViT需要超大數(shù)據(jù)集(例如JFT-300M)進(jìn)行預(yù)訓(xùn)練才能獲得最好的效果,所有實(shí)驗(yàn)(包括對比實(shí)驗(yàn))將全部不進(jìn)行預(yù)訓(xùn)練,以保證實(shí)驗(yàn)的公平。

3.2 常用數(shù)據(jù)集評估

一般來說視覺Transformer模型都包含多個Transformer層,每個Transformer層中在不同位置使用了6層全連接層,分別是Wq、Wk、Wv、Wo、Wfc1、Wfc2。為了便于比較,通過搭配Transformer層數(shù)和可分離結(jié)構(gòu)全連接層個數(shù)來得到不同大小的模型。ViT-Base-SST是以ViT-Base模型為基礎(chǔ),將模型內(nèi)全連接層通過可分離結(jié)構(gòu)變換后得到。ViT-Lite-SST則是以ViT-Lite為基礎(chǔ),并且只轉(zhuǎn)換部分全連接層以保證和對比方法參數(shù)量大致相同。而ViT-SST則轉(zhuǎn)換了所有全連接層。除此之外,每張圖片在序列化前進(jìn)行了2次卷積操作。

結(jié)果如表1所示,其中Params代表模型參數(shù)量,MACs代表模型乘加計算次數(shù),是衡量模型計算復(fù)雜度的一個指標(biāo)。Visual Transformer部分是以ViT-Base為基準(zhǔn)的傳統(tǒng)剪枝算法對比實(shí)驗(yàn)結(jié)果。

表1 模型圖片分類精度、參數(shù)量、MACs比較

實(shí)驗(yàn)結(jié)果顯示傳統(tǒng)剪枝算法進(jìn)行修剪后的ViT模型在高壓縮倍率下模型精度大幅度下降,幾乎失去圖像識別功能。這可能是因?yàn)楫?dāng)壓縮倍率較高時剪枝法使得Wq、Wk、Wv這3個矩陣大部分元素為0,使得注意力矩陣低秩,模型失去了“注意力”。

而在模型ViT-SST中,由于Wq、Wk、Wv這3個特征提取矩陣采用基于克羅內(nèi)克積分解的可分離結(jié)構(gòu),全連接層后雖然參數(shù)量減少了,但整個參數(shù)矩陣仍然完整,注意力矩陣避免了低秩。

本文采用Grad-CAM[36]可視化技術(shù)去觀察模型在進(jìn)行圖像識別時關(guān)注圖像的哪些部分。結(jié)果如圖3所示,發(fā)亮部分表示模型所關(guān)注的區(qū)域??梢钥闯鰧Ρ确椒ㄖ袑?shí)驗(yàn)結(jié)果較好的HYDRA算法修剪后的ViT模型已經(jīng)很難注意到圖像中物體所在位置,而本文提出的模型ViT-SST效果相比較之下更好。

實(shí)驗(yàn)結(jié)果顯示ViT-SST很好地平衡了模型參數(shù)量、模型計算量和模型分類精度之間的關(guān)系。與模型壓縮算法相比,ViT-SST在模型參數(shù)量和計算量相同的情況下,圖片分類精度大幅度領(lǐng)先;與ResNet34、ResNet50相比,ViT-SST在模型參數(shù)量降低為原來的1/100,計算量減少一半的情況下,CIFAR-10和CIFAR-100分類精度均損失小于4.4個百分點(diǎn),MNIST分類精度差距小于0.2個百分點(diǎn)。

Efficient Transformer部分則以ViT-Lite為基準(zhǔn)。在該部分實(shí)驗(yàn)中本文對比了性能最為優(yōu)越的幾種高效Transformer結(jié)構(gòu)。為了公平比較,實(shí)驗(yàn)將模型參數(shù)量提升至和對比方法相同,命名為ViT-Lite-SST。實(shí)驗(yàn)結(jié)果表明ViT-Lite-SST在參數(shù)量不超過對比方法、MACs值幾乎相同的情況下各數(shù)據(jù)集都取得了最高分類精度。此外,實(shí)驗(yàn)結(jié)果顯示ViT-Lite-SST在略微增加計算量的情況下,模型參數(shù)量比ResNet34以及ResNet50要更低,分類精度更高。

3.3 NKP-SVD方法評估

本節(jié)使用ViT-Base結(jié)構(gòu)進(jìn)行實(shí)驗(yàn),以下均簡稱為ViT。實(shí)驗(yàn)結(jié)果表明,基于SVD分解的克羅內(nèi)克積近似分解法可以將ViT的預(yù)訓(xùn)練參數(shù)矩陣經(jīng)過分解后加載到ViT-SST中。實(shí)驗(yàn)結(jié)果如表2所示,ViT-SST-NKP表示ViT-SST模型在加載經(jīng)過NKP-SVD法分解的預(yù)訓(xùn)練參數(shù),從表中可以看出模型性能都有所提升,在CIFAR-100上提升得最多。甚至在Caltech101和Caltech256數(shù)據(jù)集上,模型性能超過了不加載預(yù)訓(xùn)練參數(shù)的標(biāo)準(zhǔn)ViT。這可能是因?yàn)闃?biāo)準(zhǔn)ViT參數(shù)量過大所以在這些數(shù)據(jù)集上出現(xiàn)了過擬合問題,而壓縮過后的ViT-SST由于參數(shù)量更小,模塊結(jié)構(gòu)更簡單,所以緩解了過擬合問題。

表2 是否使用NKP法加載參數(shù)的模型在各數(shù)據(jù)集精度

模型ViT與模型ViT-SST-NKP在CIFAR-10數(shù)據(jù)集上訓(xùn)練過程的圖片識別精度變化曲線如圖4所示,損失值變化曲線如圖5所示。ViT模型在訓(xùn)練的第10代到第20代精度幾乎不再上升,而損失值反而上升,這是過擬合的表現(xiàn)。而ViT-SST-NKP損失值則一直在緩慢下降,圖像識別精度也慢慢上升并趨于平穩(wěn),緩解了過擬合的情況,所以最終的識別精度也高于ViT模型。

4 結(jié)束語

本文提出了一種基于克羅內(nèi)克積分解的可分離結(jié)構(gòu)全連接層。通過將普通全連接層轉(zhuǎn)換為可分離結(jié)構(gòu)的全連接層,既降低了模型參數(shù)量又避免了注意力矩陣低秩,這使得模型表達(dá)能力不因壓縮或加速而嚴(yán)重受損。實(shí)驗(yàn)結(jié)果顯示本文提出的方法優(yōu)于當(dāng)前模型壓縮方法和注意力機(jī)制加速方法。同時,為了解決ViT模型預(yù)訓(xùn)練參數(shù)無法使用且重新預(yù)訓(xùn)練代價太大的問題,本文提出了一種基于Singular Value Decomposition(SVD)的參數(shù)矩陣克羅內(nèi)克積近似分解法。該方法可以將公開的ViT模型預(yù)訓(xùn)練參數(shù)分解后與ViT-SST模型參數(shù)尺寸匹配。實(shí)驗(yàn)結(jié)果表明,該方法可以略微緩解標(biāo)準(zhǔn)ViT模型在小數(shù)據(jù)集上的過擬合現(xiàn)象,提升了模型分類精度。該方法也為解決Transformer模型預(yù)訓(xùn)練難的問題提供了一種解決思路。

猜你喜歡
剪枝注意力精度
基于不同快速星歷的GAMIT解算精度分析
人到晚年宜“剪枝”
讓注意力“飛”回來
熱連軋機(jī)組粗軋機(jī)精度控制
基于YOLOv4-Tiny模型剪枝算法
基于激活-熵的分層迭代剪枝策略的CNN模型壓縮
剪枝
A Beautiful Way Of Looking At Things
以工匠精神凸顯“中國精度”
淺談ProENGINEER精度設(shè)置及應(yīng)用
鸡东县| 宣汉县| 凉山| 吉木乃县| 沧州市| 余姚市| 桂东县| 原平市| 枞阳县| 巴彦淖尔市| 双柏县| 达尔| 临沧市| 永仁县| 策勒县| 乌鲁木齐县| 磴口县| 临朐县| 昭觉县| 佛教| 哈密市| 石嘴山市| 永宁县| 离岛区| 正宁县| 甘泉县| 广元市| 香港| 娄烦县| 囊谦县| 东城区| 津南区| 庆安县| 香格里拉县| 夏津县| 木兰县| 新晃| 延长县| 醴陵市| 新巴尔虎右旗| 旬邑县|