編譯 |凱隱 出品 | AI科技大本營(ID:rgznai100)
Transformer是由谷歌于2017年提出的具有里程碑意義的模型,同時(shí)也是語言AI革命的關(guān)鍵技術(shù)。在此之前的SOTA模型都是以循環(huán)神經(jīng)網(wǎng)絡(luò)為基礎(chǔ)(RNN, LSTM等)。從本質(zhì)上來講,RNN是以串行的方式來處理數(shù)據(jù),對(duì)應(yīng)到NLP任務(wù)上,即按照句中詞語的先后順序,每一個(gè)時(shí)間步處理一個(gè)詞語。
相較于這種串行模式,Transformer的巨大創(chuàng)新便在于并行化的語言處理:文本中的所有詞語都可以在同一時(shí)間進(jìn)行分析,而不是按照序列先后順序。為了支持這種并行化的處理方式,Transformer依賴于注意力機(jī)制。注意力機(jī)制可以讓模型考慮任意兩個(gè)詞語之間的相互關(guān)系,且不受它們?cè)谖谋拘蛄兄形恢玫挠绊?。通過分析詞語之間的兩兩相互關(guān)系,來決定應(yīng)該對(duì)哪些詞或短語賦予更多的注意力。
相較于RNN必須按時(shí)間順序進(jìn)行計(jì)算,Transformer并行處理機(jī)制的顯著好處便在于更高的計(jì)算效率,可以通過并行計(jì)算來大大加快訓(xùn)練速度,從而能在更大的數(shù)據(jù)集上進(jìn)行訓(xùn)練。例如GPT-3(Transformer的第三代)的訓(xùn)練數(shù)據(jù)集大約包含5000億個(gè)詞語,并且模型參數(shù)量達(dá)到1750億,遠(yuǎn)遠(yuǎn)超越了現(xiàn)有的任何基于RNN的模型。
現(xiàn)有的各種基于Transformer的模型基本只是與NLP任務(wù)有關(guān),這得益于GPT-3等衍生模型的成功。然而,最近ICLR 2021的一篇投稿文章開創(chuàng)性地將Transformer模型跨領(lǐng)域地引用到了計(jì)算機(jī)視覺任務(wù)中,并取得了不錯(cuò)地成果。這也被許多AI學(xué)者認(rèn)為是開創(chuàng)了CV領(lǐng)域的新時(shí)代,甚至可能完全取代傳統(tǒng)的卷積操作。 其中,Google的Deepmind 研究科學(xué)家Oriol Vinyals的看法很直接:告別卷積。 以下為該論文的詳細(xì)工作:
基本內(nèi)容 Transformer的核心原理是注意力機(jī)制,注意力機(jī)制在具體實(shí)現(xiàn)時(shí)主要以矩陣乘法計(jì)算為基礎(chǔ),這意味著可以通過并行化來加快計(jì)算速度,相較于只能按時(shí)間順序進(jìn)行串行計(jì)算的RNN模型而言,大大提高了訓(xùn)練速度,從而能夠在更大的數(shù)據(jù)集上進(jìn)行訓(xùn)練。 此外,Transformer模型還具有良好的可擴(kuò)展性和伸縮性,在面對(duì)具體的任務(wù)時(shí),常用的做法是先在大型數(shù)據(jù)集上進(jìn)行訓(xùn)練,然后在指定任務(wù)數(shù)據(jù)集上進(jìn)行微調(diào)。并且隨著模型大小和數(shù)據(jù)集的增長,模型本身的性能也會(huì)跟著提升,目前為止還沒有一個(gè)明顯的性能天花板。
Transformer的這兩個(gè)特性不僅讓其在NLP領(lǐng)域大獲成功,也提供了將其遷移到其他任務(wù)上的潛力。此前已經(jīng)有文章嘗試將注意力機(jī)制應(yīng)用到圖像識(shí)別任務(wù)上,但他們要么是沒有脫離CNN的框架,要么是對(duì)注意力機(jī)制進(jìn)行了修改,導(dǎo)致計(jì)算效率低,不能很好地實(shí)現(xiàn)并行計(jì)算加速。因此在大規(guī)模圖片分類任務(wù)中,以ResNet為基本結(jié)構(gòu)的模型依然是主流。
這篇文章首先嘗試在幾乎不做改動(dòng)的情況下將Transformer模型應(yīng)用到圖像分類任務(wù)中,在 ImageNet 得到的結(jié)果相較于 ResNet 較差,這是因?yàn)門ransformer模型缺乏歸納偏置能力,例如并不具備CNN那樣的平移不變性和局部性,因此在數(shù)據(jù)不足時(shí)不能很好的泛化到該任務(wù)上。然而,當(dāng)訓(xùn)練數(shù)據(jù)量得到提升時(shí),歸納偏置的問題便能得到緩解,即如果在足夠大的數(shù)據(jù)集上進(jìn)行與訓(xùn)練,便能很好地遷移到小規(guī)模數(shù)據(jù)集上。 在此基礎(chǔ)上,作者提出了Vision Transformer模型。下面將介紹模型原理。
模型原理 該研究提出了一種稱為Vision Transformer(ViT)的模型,在設(shè)計(jì)上是盡可能遵循原版Transformer結(jié)構(gòu),這也是為了盡可能保持原版的性能。 雖然可以并行處理,但Transformer依然是以一維序列作為輸入,然而圖片數(shù)據(jù)都是二維的,因此首先要解決的問題是如何將圖片以合適的方式輸入到模型中。本文采用的是切塊 + embedding的方法,如下圖:
首先將原始圖片劃分為多個(gè)子圖(patch),每個(gè)子圖相當(dāng)于一個(gè)word,這個(gè)過程也可以表示為:
其中x是輸入圖片,xp則是處理后的子圖序列,P2則是子圖的分辨率,N則是切分后的子圖數(shù)量(即序列長度),顯然有。由于Transformer只接受1D序列作為輸入,因此還需要對(duì)每個(gè)patch進(jìn)行embedding,通過一個(gè)線性變換層將二維的patch嵌入表示為長度為D的一維向量,得到的輸出被稱為patch嵌入。 ? 類似于BERT模型的[class] token機(jī)制,對(duì)每一個(gè)patch嵌入,都會(huì)額外預(yù)測(cè)一個(gè)可學(xué)習(xí)的嵌入表示,然后將這個(gè)嵌入表示在encoder中的最終輸出()作為對(duì)應(yīng)patch的表示。在預(yù)訓(xùn)練和微調(diào)階段,分類頭都依賴于。 ? 此外還加入了位置嵌入信息(圖中的0,1,2,3…),因?yàn)樾蛄谢膒atch丟失了他們?cè)趫D片中的位置信息。作者嘗試了各種不同的2D嵌入方法,但是相較于一般的1D嵌入并沒有任何顯著的性能提升,因此最終使用聯(lián)合嵌入作為輸入。 ? 模型結(jié)構(gòu)與標(biāo)準(zhǔn)的Transformer相同(如上圖右側(cè)),即由多個(gè)交互層多頭注意力(MSA)和多層感知器(MLP)構(gòu)成。在每個(gè)模塊前使用LayerNorm,在模塊后使用殘差連接。使用GELU作為MLP的激活函數(shù)。整個(gè)模型的更新公式如下:
其中(1)代表了嵌入層的更新,公式(2)和(3)則代表了MSA和MLP的前向傳播。 此外本文還提出了一種直接采用ResNet中間層輸出作為圖片嵌入表示的方法,可以作為上述基于patch分割方法的替代。
模型訓(xùn)練和分辨率調(diào)整 和之前常用的做法一樣,在針對(duì)具體任務(wù)時(shí),先在大規(guī)模數(shù)據(jù)集上訓(xùn)練,然后根據(jù)具體的任務(wù)需求進(jìn)行微調(diào)。這里主要是更換最后的分類頭,按照分類數(shù)來設(shè)置分類頭的參數(shù)形狀。此外作者還發(fā)現(xiàn)在更高的分辨率進(jìn)行微調(diào)往往能取得更好的效果,因?yàn)樵诒3謕atch分辨率不變的情況下,原始圖像分辨率越高,得到的patch數(shù)越大,因此得到的有效序列也就越長。
對(duì)比實(shí)驗(yàn)4.1 實(shí)驗(yàn)設(shè)置 首先作者設(shè)計(jì)了多個(gè)不同大小的ViT變體,分別對(duì)應(yīng)不同的復(fù)雜度。
數(shù)據(jù)集主要使用ILSVRC-2012,ImageNet-21K,以及JFT數(shù)據(jù)集。 4.2 與SOTA模型的性能對(duì)比 首先是和ResNet以及efficientNet的對(duì)比,這兩個(gè)模型都是比較有代表的基于CNN的模型。
其中ViT模型都是在JFT-300M數(shù)據(jù)集上進(jìn)行了預(yù)訓(xùn)練。從上表可以看出,復(fù)雜度較低,規(guī)模較小的ViT-L在各個(gè)數(shù)據(jù)集上都超過了ResNet,并且其所需的算力也要少十多倍。ViT-H規(guī)模更大,但性能也有進(jìn)一步提升,在ImageNet, CIFAR,Oxford-IIIT, VTAB等數(shù)據(jù)集上超過了SOTA,且有大幅提升。 作者進(jìn)一步將VTAB的任務(wù)分為多組,并對(duì)比了ViT和其他幾個(gè)SOTA模型的性能:
可以看到除了在Natrual任務(wù)中ViT略低于BiT外,在其他三個(gè)任務(wù)中都達(dá)到了SOTA,這再次證明了ViT的性能強(qiáng)大。 4.3 不同預(yù)訓(xùn)練數(shù)據(jù)集對(duì)性能的影響 預(yù)訓(xùn)練對(duì)于該模型而言是一個(gè)非常重要的環(huán)節(jié),預(yù)訓(xùn)練所用數(shù)據(jù)集的規(guī)模將影響模型的歸納偏置能力,因此作者進(jìn)一步探究了不同規(guī)模的預(yù)訓(xùn)練數(shù)據(jù)集對(duì)性能的影響:
上圖展示了不同規(guī)模的預(yù)訓(xùn)練數(shù)據(jù)集(橫軸)對(duì)不同大小的模型的性能影響,注意微調(diào)時(shí)的數(shù)據(jù)集固定為ImageNet??梢钥吹綄?duì)大部分模型而言,預(yù)訓(xùn)練數(shù)據(jù)集規(guī)模越大,最終的性能越好。并且隨著數(shù)據(jù)集的增大,較大的ViT模型(ViT-H/14)要由于較小的ViT模型(ViT-L)。 此外,作者還在不同大小的JFT數(shù)據(jù)集的子集上進(jìn)行了模型訓(xùn)練:
可以發(fā)現(xiàn)ViT-L對(duì)應(yīng)的兩個(gè)模型在數(shù)據(jù)集規(guī)模增大時(shí)有非常明顯的提升,而ResNet則幾乎沒有變化。這里可以得出兩個(gè)結(jié)論,一是ViT模型本身的性能上限要優(yōu)于ResNet,這可以理解為注意力機(jī)制的上限高于CNN。二是在數(shù)據(jù)集非常大的情況下,ViT模型性能大幅超越ResNet, 這說明在數(shù)據(jù)足夠的情況下,注意力機(jī)制完全可以代替CNN,而在數(shù)據(jù)集較小的情況下(10M),卷積則更為有效。 除了以上實(shí)驗(yàn),作者還探究了ViT模型的遷移性能,實(shí)驗(yàn)結(jié)果表明不論是性能還是算力需求,ViT模型在進(jìn)行遷移時(shí)都優(yōu)于ResNet。
可視化分析 可視化分析可以幫助我們了解ViT的特征學(xué)習(xí)過程。顯然,ViT模型的注意力一定是放在了與分類有關(guān)的區(qū)域:
總結(jié) 本文提出的基于patch分割的圖像解釋策略,在結(jié)合Transformer的情況下取得了非常好的效果,這為CV領(lǐng)域的其他研究提供了一個(gè)很好的思路。此外,接下來應(yīng)該會(huì)出現(xiàn)許多基于這篇工作的研究,進(jìn)一步將這一劃時(shí)代的模型應(yīng)用到更多的任務(wù)上,例如目標(biāo)檢測(cè)、實(shí)例分割、行為識(shí)別等等。此外,也會(huì)出現(xiàn)針對(duì)patch分割策略的改進(jìn),來進(jìn)一步提高模型性能。
原文標(biāo)題:告別 CNN?一張圖等于 16x16 個(gè)字,計(jì)算機(jī)視覺也用上 Transformer 了
文章出處:【微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
責(zé)任編輯:haq
-
谷歌
+關(guān)注
關(guān)注
27文章
6087瀏覽量
104457 -
AI
+關(guān)注
關(guān)注
87文章
29013瀏覽量
266453 -
CV
+關(guān)注
關(guān)注
0文章
51瀏覽量
16801 -
解釋器
+關(guān)注
關(guān)注
0文章
103瀏覽量
6468
原文標(biāo)題:告別 CNN?一張圖等于 16x16 個(gè)字,計(jì)算機(jī)視覺也用上 Transformer 了
文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論