為何Transformer在計(jì)算機(jī)視覺(jué)中如此受歡迎?(1)
編者按:近一年來(lái),Transformer 在計(jì)算機(jī)視覺(jué)領(lǐng)域所帶來(lái)的革命性提升,引起了學(xué)術(shù)界的廣泛關(guān)注,有越來(lái)越多的研究人員投入其中。Transformer 的特點(diǎn)和優(yōu)勢(shì)是什么?為什么在計(jì)算機(jī)領(lǐng)域中 Transformer 可以頻頻出圈?讓我們通過(guò)今天的文章來(lái)一探究竟吧!
“統(tǒng)一性”是很多學(xué)科共同追求的目標(biāo),例如在物理學(xué)領(lǐng)域,科學(xué)家們追求的大統(tǒng)一,就是希望用單獨(dú)一種理論來(lái)解釋力與力之間的相互作用。人工智能領(lǐng)域自然也存在著關(guān)于“統(tǒng)一性”的目標(biāo)。在深度學(xué)習(xí)的浪潮中,人工智能領(lǐng)域已經(jīng)朝著統(tǒng)一性的目標(biāo)前進(jìn)了一大步。比如,一個(gè)新的任務(wù)基本都會(huì)遵循同樣的流程對(duì)新數(shù)據(jù)進(jìn)行預(yù)測(cè):收集數(shù)據(jù),做標(biāo)注,定義網(wǎng)絡(luò)結(jié)構(gòu),訓(xùn)練網(wǎng)絡(luò)參數(shù)。
但是,在人工智能的不同子領(lǐng)域中,基本建模的方式各種各樣,并不統(tǒng)一,例如:在自然語(yǔ)言處理(NLP)領(lǐng)域目前的主導(dǎo)建模網(wǎng)絡(luò)是 Transformer;計(jì)算機(jī)視覺(jué)(CV)領(lǐng)域很長(zhǎng)一段時(shí)間的主導(dǎo)網(wǎng)絡(luò)是卷積神經(jīng)網(wǎng)絡(luò)(CNN);社交網(wǎng)絡(luò)領(lǐng)域目前的主導(dǎo)網(wǎng)絡(luò)則是圖網(wǎng)絡(luò)等。
盡管如此,從2020年年底開(kāi)始,Transformer 還是在 CV 領(lǐng)域中展現(xiàn)了革命性的性能提升。這就表明 CV 和 NLP 有望統(tǒng)一在 Transformer 結(jié)構(gòu)之下。這一趨勢(shì)對(duì)于兩個(gè)領(lǐng)域的發(fā)展來(lái)說(shuō)有很多好處:1)使視覺(jué)和語(yǔ)言的聯(lián)合建模更容易;2)兩個(gè)領(lǐng)域的建模和學(xué)習(xí)經(jīng)驗(yàn)可以深度共享,從而加快各自領(lǐng)域的進(jìn)展。
Transformer 在視覺(jué)任務(wù)中的優(yōu)異性能
視覺(jué) Transformer 的先驅(qū)工作是谷歌在 ICLR 2021 上發(fā)表的 ViT [1],該工作把圖像分成多個(gè)圖像塊(例如16x16像素大?。?,并把這些圖像塊比作 NLP 中的 token。然后直接將 NLP 中的標(biāo)準(zhǔn) Transformer 編碼器應(yīng)用于這些 “token”,并據(jù)此進(jìn)行圖像分類(lèi)。該工作結(jié)合了海量的預(yù)訓(xùn)練數(shù)據(jù)(如谷歌內(nèi)部3億圖片分類(lèi)訓(xùn)練庫(kù) JFT-300M),在 ImageNet-1K 的 validation 評(píng)測(cè)集上取得了88.55%的準(zhǔn)確率,刷新了該榜單上的紀(jì)錄。
ViT 應(yīng)用 Transformer 比較簡(jiǎn)單直接,因?yàn)槠錄](méi)有仔細(xì)考慮視覺(jué)信號(hào)本身的特點(diǎn),所以它主要適應(yīng)于圖像分類(lèi)任務(wù),對(duì)于區(qū)域級(jí)別和像素級(jí)別的任務(wù)并不是很友好,例如物體檢測(cè)和語(yǔ)義分割等。為此,學(xué)術(shù)界展開(kāi)了大量的改進(jìn)工作。其中,Swin Transformer 骨干網(wǎng)絡(luò) [2] 在物體檢測(cè)和語(yǔ)義分割任務(wù)中大幅刷新了此前的紀(jì)錄,讓學(xué)術(shù)界更加確信 Transformer 結(jié)構(gòu)將會(huì)成為視覺(jué)建模的新主流。
具體而言,在物體檢測(cè)的重要評(píng)測(cè)集 COCO 上,Swin Transformer 取得了單模型58.7的 box mAP 和51.1的 mask mAP,分別比此前最好的、沒(méi)有擴(kuò)充數(shù)據(jù)的單模型方法高出了+2.7個(gè)點(diǎn)和+2.6個(gè)點(diǎn)。此后,通過(guò)改進(jìn)檢測(cè)框架以及更好地利用數(shù)據(jù),基于 Swin Transformer 網(wǎng)絡(luò)的方法性能進(jìn)一步取得了61.3的 box mAP 和53.0的 mask mAP,累計(jì)提升達(dá)+5.3 box mAP 和+5.5 mask mAP。在語(yǔ)義分割的重要評(píng)測(cè)數(shù)據(jù)集 ADE20K 上,Swin Transformer 也取得了顯著的性能提升,達(dá)到了53.5 mIoU,比此前最好的方法高出+3.2 mIoU,此后隨著分割框架和訓(xùn)練方法的進(jìn)一步改進(jìn),目前已達(dá)到57.0 mIoU 的性能。
圖1:歷年 COCO 物體檢測(cè)評(píng)測(cè)集上的紀(jì)錄
除了在物體檢測(cè)和語(yǔ)義分割任務(wù)上表現(xiàn)亮眼外,基于 Swin Transformer 骨干網(wǎng)絡(luò)的方法在眾多視覺(jué)任務(wù)中也取得了優(yōu)異的成績(jī),如視頻動(dòng)作識(shí)別 [3]、視覺(jué)自監(jiān)督學(xué)習(xí) [4][5]、圖像復(fù)原 [6]、行人 Re-ID [7]、醫(yī)療圖像分割 [8]等。
Swin Transformer 的主要思想是將具有很強(qiáng)建模能力的 Transformer 結(jié)構(gòu)和重要的視覺(jué)信號(hào)先驗(yàn)結(jié)合起來(lái)。這些先驗(yàn)具有層次性(Hierarchy)、局部性(locality)以及平移不變性的特點(diǎn)(translation invariance)。Swin Transformer 的一個(gè)重要設(shè)計(jì)是移位的不重疊窗口(shifted windows),不同于傳統(tǒng)的滑動(dòng)窗,不重疊窗口的設(shè)計(jì)對(duì)硬件實(shí)現(xiàn)更加友好,從而具有更快的實(shí)際運(yùn)行速度。如圖2(左)所示,在滑動(dòng)窗口設(shè)計(jì)中,不同的點(diǎn)采用了不同的鄰域窗口來(lái)計(jì)算相互關(guān)系,這種計(jì)算對(duì)硬件并不友好。而如圖2(右)所示,Swin Transformer 使用的不重疊窗口中,統(tǒng)一窗口內(nèi)的點(diǎn)將采用相同的鄰域來(lái)進(jìn)行計(jì)算,對(duì)速度更友好。實(shí)際測(cè)試表明,非重疊窗口方法的速度比滑動(dòng)窗口方法快了2倍左右。在兩個(gè)連續(xù)的層中還做了移位的操作。在 L 層中,窗口分區(qū)從圖像的左上角開(kāi)始;在 L+1 層中,窗口劃分則往右下移動(dòng)了半個(gè)窗口。這樣的設(shè)計(jì)保證了不重疊的窗口間可以有信息的交換。
圖2:傳統(tǒng)的滑動(dòng)窗口方法(左),由于不同的查詢(xún)所用到的關(guān)鍵字集合不同,其對(duì)存儲(chǔ)的訪問(wèn)不太友好,實(shí)際運(yùn)行速度較慢。移位的不重疊窗口方法(右),由于不同的查詢(xún)共享關(guān)鍵字集合,所以實(shí)際運(yùn)行速度更快,從而更實(shí)用。
在過(guò)去的大半年中,學(xué)術(shù)界視覺(jué) Transformer 還涌現(xiàn)了大量變種,包括 DeiT [9],LocalViT [10],Twins [11],PvT [12],T2T-ViT [13], ViL [14],CvT [15],CSwin [16],F(xiàn)ocal Transformer [17],Shuffle Transformer [18] 等。
擁抱 Transformer 的五個(gè)理由
除了刷新很多視覺(jué)任務(wù)的性能紀(jì)錄以外,視覺(jué) Transformer 還擁有諸多好處。事實(shí)上,過(guò)去4年間學(xué)術(shù)界不斷挖掘出了 Transformer 建模的各種優(yōu)點(diǎn),可以總結(jié)為圖3所示的五個(gè)方面。
圖3:過(guò)去4年學(xué)術(shù)界不斷挖掘出的 Transformer 建模的五個(gè)優(yōu)點(diǎn)
理由1:通用的建模能力
Transformer 的通用建模能力來(lái)自于兩個(gè)方面:一方面 Transformer 可以看作是一種圖建模方法。圖是全連接的,節(jié)點(diǎn)之間的關(guān)系通過(guò)數(shù)據(jù)驅(qū)動(dòng)的方式來(lái)學(xué)習(xí)得到。由于任意概念(無(wú)論具體或抽象)都可以用圖中的節(jié)點(diǎn)來(lái)表示,且概念之間的關(guān)系可以用圖上的邊來(lái)刻畫(huà),因此 Transformer 建模具有很強(qiáng)的通用性。
另一方面,Transformer 通過(guò)驗(yàn)證的哲學(xué)來(lái)建立圖節(jié)點(diǎn)之間的關(guān)系,具有較好的通用性:無(wú)論節(jié)點(diǎn)多么異構(gòu),它們之間的關(guān)系都可以通過(guò)投影到一個(gè)可以比較的空間里計(jì)算相似度來(lái)建立。如圖4(右)所示,節(jié)點(diǎn)可以是不同尺度的圖像塊,也可以是“運(yùn)動(dòng)員”的文本輸入,Transformer 均可以刻畫(huà)這些異構(gòu)節(jié)點(diǎn)之間的關(guān)系。
圖4:促成 Transformer 通用建模能力的兩大原因:圖建模(左)和驗(yàn)證哲學(xué)(右)
正是因?yàn)榫邆溥@樣的通用建模能力,Transformer 中的注意力單元可以被應(yīng)用到各種各樣的視覺(jué)任務(wù)中。具體而言,計(jì)算機(jī)視覺(jué)處理的對(duì)象主要涉及兩個(gè)層次的基本元素:像素和物體。而計(jì)算機(jī)視覺(jué)所涉及到的任務(wù)主要就囊括了這些基本元素之間的關(guān)系,包括像素-像素,物體-像素和物體-物體的關(guān)系建模。此前,前兩種關(guān)系建模主要是分別由卷積和 RoIAlign 來(lái)實(shí)現(xiàn)的,最后一種關(guān)系通常沒(méi)有很好的建模方法。但是,Transformer 中的注意力單元因其通用的建模能力,可以被應(yīng)用到所有這些基本關(guān)系的建模中。
近些年,在這個(gè)領(lǐng)域中已經(jīng)出現(xiàn)了很多代表性的工作,例如:1) 非局部網(wǎng)絡(luò) [19]。王小龍等人將注意力單元用于建模像素-像素的關(guān)系,證明了 Transformer 可以幫助視頻動(dòng)作分類(lèi)和物體檢測(cè)等任務(wù)。元玉慧等人將其應(yīng)用于語(yǔ)義分割問(wèn)題,也取得了顯著的性能提升[20]。2)物體關(guān)系網(wǎng)絡(luò) [21]。注意力單元用于物體檢測(cè)中的物體關(guān)系建模,這一模塊也被廣泛應(yīng)用于視頻物體分析中 [22, 23, 24]。3)物體和像素的關(guān)系建模,典型的工作包括 DETR [25],LearnRegionFeat [26],以及 RelationNet++ [27]等。
圖5:Transformer 能被應(yīng)用于各種視覺(jué)基本元素之間的關(guān)系建模,包括像素-像素(左),物體-像素(中),物體-物體(右)
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。
陀螺儀相關(guān)文章:陀螺儀原理