Vision Transformer (ViT)自發(fā)布以來獲得了巨大的人氣,并顯示出了比基于CNN的模型(如ResNet)更大的潛力。但是為什么Vision Transformer比CNN的模型更好呢?最近發(fā)表的一篇文章“Do Vision Transformers See Like Convolutional Neural Networks?”指出,ViT的優(yōu)勢來自以下幾個方面:
ViT不同層的特征更加均勻,而CNN模型不同層的特征呈網(wǎng)格狀
ViT的低層的注意力包含全局信息,而CNN的性質(zhì)在低層只關(guān)注局部
在ViT的較高層中,跳躍連接在信息傳播中發(fā)揮突出作用,而ResNet/CNN跳躍連接在較高層中傳遞的信息較少
此外,數(shù)據(jù)的規(guī)模和全局平均池化的使用都會對ViT的表示產(chǎn)生很大的影響。
ViT和CNN的主要區(qū)別
首先,讓我們看看下面的兩個架構(gòu),ViT和一個典型的CNN模型ResNet50。ResNet50接收整個狗圖像,并進行2D卷積,內(nèi)核大小為7×7,用殘差塊疊加50層,最后附加一個全局平均池化和一個dense層,將圖像分類為“狗”。ViT首先將狗圖像分解為16*16個patch,將每個patch視為一個“token”,然后將整個token序列送入transformer編碼器,該編碼器由多頭自注意力塊組成,編碼器特征隨后被發(fā)送到MLP層,用于分類“狗”類。
上: ResNet50; 下: ViT
對于兩個長度不同的特征向量,很難衡量它們的相似性。因此,作者提出了一種特殊的度量,中心核對齊(CKA),整個論文中都在使用這個。假設(shè)X和Y是m個不同樣本的特征矩陣,K=XX^T^, L=YY^T^,則利用Hilbert-Schmidt獨立準(zhǔn)則(HSIC)的定義,定義CKA如下:
X和Y越相似,CKA值越高。更多的定義細節(jié)可以在論文的第3節(jié)中找到。
有了CKA的定義,一個自然的問題出現(xiàn)了:ViT和CNN的不同層的特征有多相似?作者表明,模式是相當(dāng)不同的, ViT在所有層上有一個更統(tǒng)一的特征表示,而CNN/ResNet50在較低和較高的層上有一個網(wǎng)格狀的模式。這意味著ResNet50在它的低層和高層之間學(xué)習(xí)不同的信息。
左:ViT各層特征對之間的CKA值,右:ResNet50所有層的特性對之間的CKA值。
但是ResNet在其較低層次和較高層次學(xué)習(xí)的“不同信息”是什么呢?我們知道對于CNN模型,由于卷積核的性質(zhì),在較低的層只學(xué)習(xí)局部信息,在較高的層學(xué)習(xí)全局信息。所以在不同的層之間有一個網(wǎng)格狀的模式就不足為奇了。那么我們不禁要問,ViT怎么??ViT是否也在其底層學(xué)習(xí)局部信息?
如果我們進一步觀察自注意力頭,我們知道每個token會關(guān)注所有其他token。每個被關(guān)注的token都是一個查詢patch,并被分配一個注意力權(quán)重。由于兩個“token”代表兩個圖像patch,我們可以計算它們之間的像素距離。通過將像素距離和注意力權(quán)重相乘,定義了一個“注意力距離”。較大的注意力距離意味著大多數(shù)“遠處的patch”具有較大的注意權(quán)重——換句話說,大多數(shù)注意力是“全局的”。相反,小的注意距離意味著注意力是局部的。
注意力距離的計算
作者進一步研究了ViT中的注意力距離。從下面的結(jié)果中,我們可以看到,雖然從較高層(block 22/23,紅色高亮顯示)的注意力距離主要包含全局信息,但是,即使是較低層(block 0/1,紅色高亮顯示)仍然包含全局信息。這和CNN的模型完全不同。
現(xiàn)在我們知道ViT甚至在它的底層也學(xué)習(xí)全局表示,下一個要問的問題是,這些全局表示會忠實地傳播到它的上層嗎?如果是這樣,是怎么實現(xiàn)的?
作者認為關(guān)鍵是ViT的跳躍連接。對于每個block,在自注意力頭和MLP頭上都存在跳躍連接。通過將跳躍連接的特征的范數(shù)除以通過長分支的特征的范數(shù),作者進一步定義了一個度量:歸一化比率(Ratio of norm, RoN)。他們發(fā)現(xiàn)了驚人的相變現(xiàn)象,在較低的層次上,分類(CLS)token的RoN值很高,而在較高的層次上則低得多。這種模式與空間token相反,其中RoN在較低的層中較低。
歸一化比率:|z|/|f(z)|。其中z是通過跳躍連接的特特征。F (z)是經(jīng)過長分支的特征。
如果他們進一步刪除ViT不同層的跳躍連接,那么CKA映射將如下所示。這意味著跳躍連接是使ViT不同層之間的信息流成為可能的主要(如果不是全部的話)機制之一。
除了強大的跳躍連接機制和在較低層次學(xué)習(xí)全局特征的能力外,作者還進一步研究了ViT在較高層次學(xué)習(xí)精確位置表示的能力。這種行為與ResNet非常不同,因為全局平均池化可能會模糊位置信息。
此外,作者指出,有限的數(shù)據(jù)集可能會阻礙ViT在較低層次學(xué)習(xí)局部表示的能力。相反,更大的數(shù)據(jù)集特別有助于ViT學(xué)習(xí)高質(zhì)量的中間層表示。
-
編碼器
+關(guān)注
關(guān)注
45文章
3576瀏覽量
134011 -
模型
+關(guān)注
關(guān)注
1文章
3121瀏覽量
48663 -
cnn
+關(guān)注
關(guān)注
3文章
350瀏覽量
22139
原文標(biāo)題:Vision Transformers看到的東西是和卷積神經(jīng)網(wǎng)絡(luò)一樣的嗎?
文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論