編譯 |凱隱 出品 | AI科技大本營(yíng)(ID:rgznai100)
Transformer是由谷歌于2017年提出的具有里程碑意義的模型,同時(shí)也是語(yǔ)言AI革命的關(guān)鍵技術(shù)。在此之前的SOTA模型都是以循環(huán)神經(jīng)網(wǎng)絡(luò)為基礎(chǔ)(RNN, LSTM等)。從本質(zhì)上來(lái)講,RNN是以串行的方式來(lái)處理數(shù)據(jù),對(duì)應(yīng)到NLP任務(wù)上,即按照句中詞語(yǔ)的先后順序,每一個(gè)時(shí)間步處理一個(gè)詞語(yǔ)。
相較于這種串行模式,Transformer的巨大創(chuàng)新便在于并行化的語(yǔ)言處理:文本中的所有詞語(yǔ)都可以在同一時(shí)間進(jìn)行分析,而不是按照序列先后順序。為了支持這種并行化的處理方式,Transformer依賴于注意力機(jī)制。注意力機(jī)制可以讓模型考慮任意兩個(gè)詞語(yǔ)之間的相互關(guān)系,且不受它們?cè)谖谋拘蛄兄形恢玫挠绊憽Mㄟ^(guò)分析詞語(yǔ)之間的兩兩相互關(guān)系,來(lái)決定應(yīng)該對(duì)哪些詞或短語(yǔ)賦予更多的注意力。
相較于RNN必須按時(shí)間順序進(jìn)行計(jì)算,Transformer并行處理機(jī)制的顯著好處便在于更高的計(jì)算效率,可以通過(guò)并行計(jì)算來(lái)大大加快訓(xùn)練速度,從而能在更大的數(shù)據(jù)集上進(jìn)行訓(xùn)練。例如GPT-3(Transformer的第三代)的訓(xùn)練數(shù)據(jù)集大約包含5000億個(gè)詞語(yǔ),并且模型參數(shù)量達(dá)到1750億,遠(yuǎn)遠(yuǎn)超越了現(xiàn)有的任何基于RNN的模型。
現(xiàn)有的各種基于Transformer的模型基本只是與NLP任務(wù)有關(guān),這得益于GPT-3等衍生模型的成功。然而,最近ICLR 2021的一篇投稿文章開(kāi)創(chuàng)性地將Transformer模型跨領(lǐng)域地引用到了計(jì)算機(jī)視覺(jué)任務(wù)中,并取得了不錯(cuò)地成果。這也被許多AI學(xué)者認(rèn)為是開(kāi)創(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ǔ),這意味著可以通過(guò)并行化來(lái)加快計(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ù)集的增長(zhǎng),模型本身的性能也會(huì)跟著提升,目前為止還沒(méi)有一個(gè)明顯的性能天花板。
Transformer的這兩個(gè)特性不僅讓其在NLP領(lǐng)域大獲成功,也提供了將其遷移到其他任務(wù)上的潛力。此前已經(jīng)有文章嘗試將注意力機(jī)制應(yīng)用到圖像識(shí)別任務(wù)上,但他們要么是沒(méi)有脫離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)門(mén)ransformer模型缺乏歸納偏置能力,例如并不具備CNN那樣的平移不變性和局部性,因此在數(shù)據(jù)不足時(shí)不能很好的泛化到該任務(wù)上。然而,當(dāng)訓(xùn)練數(shù)據(jù)量得到提升時(shí),歸納偏置的問(wèn)題便能得到緩解,即如果在足夠大的數(shù)據(jù)集上進(jìn)行與訓(xùn)練,便能很好地遷移到小規(guī)模數(shù)據(jù)集上。 在此基礎(chǔ)上,作者提出了Vision Transformer模型。下面將介紹模型原理。
模型原理 該研究提出了一種稱為Vision Transformer(ViT)的模型,在設(shè)計(jì)上是盡可能遵循原版Transformer結(jié)構(gòu),這也是為了盡可能保持原版的性能。 雖然可以并行處理,但Transformer依然是以一維序列作為輸入,然而圖片數(shù)據(jù)都是二維的,因此首先要解決的問(wèn)題是如何將圖片以合適的方式輸入到模型中。本文采用的是切塊 + embedding的方法,如下圖:
首先將原始圖片劃分為多個(gè)子圖(patch),每個(gè)子圖相當(dāng)于一個(gè)word,這個(gè)過(guò)程也可以表示為:
其中x是輸入圖片,xp則是處理后的子圖序列,P2則是子圖的分辨率,N則是切分后的子圖數(shù)量(即序列長(zhǎng)度),顯然有。由于Transformer只接受1D序列作為輸入,因此還需要對(duì)每個(gè)patch進(jìn)行embedding,通過(guò)一個(gè)線性變換層將二維的patch嵌入表示為長(zhǎng)度為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嵌入并沒(méi)有任何顯著的性能提升,因此最終使用聯(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ù)來(lái)設(shè)置分類頭的參數(shù)形狀。此外作者還發(fā)現(xiàn)在更高的分辨率進(jìn)行微調(diào)往往能取得更好的效果,因?yàn)樵诒3謕atch分辨率不變的情況下,原始圖像分辨率越高,得到的patch數(shù)越大,因此得到的有效序列也就越長(zhǎng)。
對(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ù)集上都超過(guò)了ResNet,并且其所需的算力也要少十多倍。ViT-H規(guī)模更大,但性能也有進(jìn)一步提升,在ImageNet, CIFAR,Oxford-IIIT, VTAB等數(shù)據(jù)集上超過(guò)了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則幾乎沒(méi)有變化。這里可以得出兩個(gè)結(jié)論,一是ViT模型本身的性能上限要優(yōu)于ResNet,這可以理解為注意力機(jī)制的上限高于CNN。二是在數(shù)據(jù)集非常大的情況下,ViT模型性能大幅超越ResNet, 這說(shuō)明在數(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í)過(guò)程。顯然,ViT模型的注意力一定是放在了與分類有關(guān)的區(qū)域:
總結(jié) 本文提出的基于patch分割的圖像解釋策略,在結(jié)合Transformer的情況下取得了非常好的效果,這為CV領(lǐng)域的其他研究提供了一個(gè)很好的思路。此外,接下來(lái)應(yīng)該會(huì)出現(xiàn)許多基于這篇工作的研究,進(jìn)一步將這一劃時(shí)代的模型應(yīng)用到更多的任務(wù)上,例如目標(biāo)檢測(cè)、實(shí)例分割、行為識(shí)別等等。此外,也會(huì)出現(xiàn)針對(duì)patch分割策略的改進(jìn),來(lái)進(jìn)一步提高模型性能。
原文標(biāo)題:告別 CNN?一張圖等于 16x16 個(gè)字,計(jì)算機(jī)視覺(jué)也用上 Transformer 了
文章出處:【微信公眾號(hào):新機(jī)器視覺(jué)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
責(zé)任編輯:haq
-
谷歌
+關(guān)注
關(guān)注
27文章
6231瀏覽量
108140 -
AI
+關(guān)注
關(guān)注
88文章
35164瀏覽量
279904 -
CV
+關(guān)注
關(guān)注
0文章
53瀏覽量
17148 -
解釋器
+關(guān)注
關(guān)注
0文章
103瀏覽量
6763
原文標(biāo)題:告別 CNN?一張圖等于 16x16 個(gè)字,計(jì)算機(jī)視覺(jué)也用上 Transformer 了
文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺(jué)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
地物光譜儀如何幫助科學(xué)家研究植被和土壤?

云天勵(lì)飛董事長(zhǎng)陳寧當(dāng)選深圳市青年科學(xué)家協(xié)會(huì)第十屆會(huì)長(zhǎng)

我國(guó)科學(xué)家制備出可控手性石墨烯卷
深開(kāi)鴻亮相“小小科學(xué)家”品牌發(fā)布暨科學(xué)探索研學(xué)營(yíng)開(kāi)營(yíng)活動(dòng)

AI 推動(dòng)未來(lái)科學(xué) 晶泰科技共襄未來(lái)科學(xué)大獎(jiǎng)周

西湖大學(xué):科學(xué)家+AI,科研新范式的樣本

華為自動(dòng)駕駛科學(xué)家陳亦倫投身具身智能創(chuàng)業(yè)
螞蟻集團(tuán)收購(gòu)邊塞科技,吳翼出任強(qiáng)化學(xué)習(xí)實(shí)驗(yàn)室首席科學(xué)家
AI for Science:人工智能驅(qū)動(dòng)科學(xué)創(chuàng)新》第4章-AI與生命科學(xué)讀后感
《AI for Science:人工智能驅(qū)動(dòng)科學(xué)創(chuàng)新》第二章AI for Science的技術(shù)支撐學(xué)習(xí)心得
《AI for Science:人工智能驅(qū)動(dòng)科學(xué)創(chuàng)新》第一章人工智能驅(qū)動(dòng)的科學(xué)創(chuàng)新學(xué)習(xí)心得
上海科學(xué)家精準(zhǔn)操控原子“人造”藍(lán)寶石 為低功耗芯片研制開(kāi)辟新路
科學(xué)家開(kāi)發(fā)出首臺(tái)可見(jiàn)光飛秒光纖激光器

受人眼啟發(fā)!科學(xué)家開(kāi)發(fā)出新型改良相機(jī)

評(píng)論