【Transformer】Do Vision Transformers See Like Convolutional Neural Networks?
文章目錄
- 一、背景
- 二、方法
論文鏈接:https://arxiv.org/pdf/2108.08810.pdf
一、背景
本文發表于 NeurIPS2021
Transformer 現在在視覺方面取得了超越 CNN 的效果,所以作者就有一個問題:Transformer 是如何處理視覺的相關任務的呢?
基于此,作者對 ViT 和 CNN 在分類任務上進行了一系列分析,發現兩者有著很大的不同。
- ViT 在所有層上都有更一致的表達特征,而造成這一現象的原因在于 self-attention,self-attention 能夠在淺層就聚合全局特征。
- 而且殘差連接對于特征從底層到高層的傳遞起了很大的作用
- ViT 能更好的保持輸入的空間信息
二、方法
作者在 JFT-300M 數據集上對 ResNet50x1, ResNet152x2, ViT-B/32, ViT-B/16, ViT-L/16 和 ViT-H/14 進行了對比。
作者使用了兩個度量方式進行特征對比:
- Representation Similarity
- CKA (centered kernel alignment):CKA 是一種相似性指數,可以定量的對比網絡之間的特征表達。
CKA 的輸入:兩層不同網絡的特征表達 X∈Rm×p1X\in R^{m\times p_1}X∈Rm×p1? 和 Y∈Rm×p2Y\in R^{m\times p_2}Y∈Rm×p2?
每層網絡內部的特征相似度:K=XXTK=XX^TK=XXT,L=YYTL=YY^TL=YYT
1、ViT 和 ResNet 內部層相似度的對比
圖 1 展示了 ViT 和 ResNet 的中間層和最后一層輸出的 CKA 相似性圖:
- ViT 的相似性更有一致性,是整潔的棋盤格,顏色越亮,相似性越大,每層網絡和自己的相似性是最大的,所以對角線最亮。
- ViT 的低層和高層相似度比 ResNet 的低層和高層相似度更高一些
- ResNet 不同 stage 的相似度有很大不同,低層和低層相似度大,高層和高層相似度大
2、ViT 和 ResNet 層間相似度的對比
作者通過圖 2 發現:
- ResNet 的前 60個層和 ViT 的前1/4層(約前40層)相似度較大
- ResNet 的后半部分層和 ViT 的中間 1/3 層相似度較大
- ViT 的最后 1/3 層和 ResNet 的層相似度都較低,這可能是由于這些層主要是再抽取 cls token 的特征。
上圖表明:
- ViT 的低層和 ResNet 的低層特征是有較大不同的
- ViT 能夠較強的在低層和高層間進行特征傳遞
- ViT 的高層和 ResNet 的高層表達有較大的不同
3、聚合全局特征能力的對比
上面對比了兩個不同的結構的層間相似性,作者發現 ViT 的低層和高層的特征更具有一致性,而 ResNet 需要使用更多的層來達到和 ViT 類似的特征表達效果。所以作者就從兩種結構對于全局信息的聚合程度來找原因。
分析attention的距離:
ViT 提取全局特征的能力主要來源于 self-attention,所以作者計算了 query patch 位置和其關注到的位置的平均距離,這能夠反映出來 self-attention layer 為該特征表達聚合了多少局部和全局的信息。
作者對每個 attention head 使用 attention weight 來衡量其 pixel distance,對 5000 個數據點做了平均,可視化結果如圖 3 所示。作者發現,盡管在 ViT 的很淺的層,self-attention 就能夠同時有 local heads(小距離)和 global heads(長距離)特征,而 ResNet 在淺層只有局部特征,在高層所有的 self-attention heads 都是 global 的。
下圖中,兩個偏綠色的是高層的head,兩個偏藍色的是低層的head。
低層的不同 head 會分工關注長距離/短距離的特征,高層的不同 head 基本都關注于長距離特征。
同樣的,從圖 4 可以發現,當僅僅在 ImageNet 上訓練時(沒有大尺度數據的預訓練),ViT-L/16 和 ViT-H/14 效果都不太好,結合圖 3 來看,可以知道當沒有大量的數據時,ViT 無法在淺層學習到局部的特征。這也說明,在淺層中盡早的使用 local 信息,對網絡的效果尤為重要。
分析全局信息的不同是否會導致學習到的特征不同:
從圖 5 可以看出,隨著 mean distance 的增加,CKA 相似性會逐步減小,這也說明, global 信息學習到的特征和使用 local 信息學習到的特征有較大的不同。
分析感受野大小:
從圖 6 中可以看出,ViT 在低層的時候,就已經能夠有比 ResNet 更大的感受野,盡管 CNN 的感受野會逐步增大,但 ViT 的感受野也會同時增大。
并且,ViT 的感受野也強依賴于其 center patch(由于殘差結構的存在)。
4、殘差連接對特征傳播的影響
既然 ViT 的淺層和深層的特征具有高度一致性,那么也就說明淺層的特征很好的傳遞到了高層。作者證明了殘差連接對這一現象的影響,同時發現其有保存 cls token 特征(淺層)到spatial token 特征(高層)的 phase transition。
作者使用 norm ratio (∣∣zi∣∣/∣∣f(zi)∣∣||z_i||/||f(z_i)||∣∣zi?∣∣/∣∣f(zi?)∣∣) 來作為展示,ziz_izi? 是第 i 層的隱層特征(直接來自于殘差結構的輸出),f(zi)f(z_i)f(zi?) 是經過長分支(mlp等)處理后的。
在網絡的前半部分,cls token(token 0)特征是主要通過殘差連接來傳遞的(high norm ratio),但 spatial token 特征的很大貢獻來自長分支(lower norm ratio),在后半部分是相反的。
-
ratio 越小(下圖顏色越暗),假設為 1 的時候,那么說明經過長分支后處理后的與未處理的特征一致性越大。
spatial token 在淺層 ratio 小,高層 ratio 大,說明淺層主要靠長分支來進行特征傳遞,在深層主要靠殘差連接來傳遞信息。
-
ratio 越大(下圖顏色越亮),假設為 12 的時候,那么說明兩者一致性越小。
token 0(cls token)在淺層顏色亮,說明其 ratio 越大,所以在淺層 cls token 的特征主要是靠殘差連接來傳遞的,在深層主要靠長分支來傳遞信息。
圖 7 右半部分展示了不同結構的 norm ratio,說明跳連結構對于 ViT 比 ResNet 更重要。
圖 8 展示了 ViT 不使用跳連結構的效果,在中間的 block 移除殘差結構會導致 4% 的性能下降。
ViT 如何學習空間信息來定位
作者從對比 ViT(ResNet)的高層特征和輸入 patch 來開始探索
對于ViT token有一個對應的輸入 patch,因此有一個對應的輸入空間位置。圖 9 說明 ViT token 和其對應的圖像中的空間位置有很強的相似性。
對于ResNet,作者定義在一個特定位置上的所有卷積通道為一個 token, 這也給了它一個相應的輸入空間位置。然后,我們可以取一個 token,并計算其和輸入圖像 patch 在不同的位置的CKA得分。圖9展示了不同標記(標記了它們的空間位置)的結果。
對于 ViT,可以看出在邊緣附近的 token 的位置和 image patch 的位置很近似,而且在內部的 token 也被很好的定位了。但是 ResNet 的定位能力較弱。
究其差別,ResNet 是使用 global average pooling 來實現分類,而 ViT 是使用 cls token 來進行分類的,基于此,作者對 ViT 使用 GAP 訓練,如圖 10 所示,結果說明 GAP 確實會降低高層特征的定位能力。
圖 11 左半邊圖對比了單獨訓練每個token的分類平均準確率,ViT GAP 和 ResNet50在高層表現的較好,使用 CLS 訓練的 ViT 效果較差,可能是由于他們的空間位置特征在高層被保留下來了,導致全局分類較差。
圖 11 右半邊圖說明了使用 ViT-GAP 的單個 token 獲得的效果可以和使用全部token合并起來的效果相抗衡,結合圖9可知,GAP model 中的所有高層的 token 學習到了類似的全局特征表達。
總結
以上是生活随笔為你收集整理的【Transformer】Do Vision Transformers See Like Convolutional Neural Networks?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 河南出台数字经济发展方案:设立卫星产业基
- 下一篇: 何小鹏:推迟盈利目标,要拿下 L4 级自