1. 程式人生 > 其它 >論文導讀:CoAtNet是如何完美結合 CNN 和 Transformer的

論文導讀:CoAtNet是如何完美結合 CNN 和 Transformer的

這篇文章主要介紹 Z. Dai 等人的論文 CoAtNet: Marrying Convolution and Attention for All Data Sizes。(2021 年)。

2021 年 9 月 15 日,一種新的架構在 ImageNet 競賽中的實現了最先進的效能 (SOTA)。CoAtNet(發音為“coat”net)在龐大的 JFT-3B 資料集上實現了 90.88% 的 top-1 準確率。CoAtNet 在使用(相對)較差的資料集 ImageNet-21K(13M 影象)進行預訓練時,達到了 88.56% 的 top-1 準確率。

CoAtNet 中的“coat”來源於卷積和自注意力。我一直在努力弄清楚這件“外套”可能象徵著什麼,但還沒有找到解決辦法。不過這是一個非常合適的首字母縮略詞。

CoAtNet 同時利用了卷積神經網路 (CNN) 和 Transformer 的超強能力,基於 MBConv 塊和相對自注意力將平移同變性(translation equivariance)、輸入自適應加權(input-adaptive Weighting)和全域性感受野(Global Receptive Field)融合在一起,構建了一個強大的新架構家族。

Convolution的簡單介紹和MBConv塊

在深入研究 CoAtNet 的架構之前,首先對 CNN 做一個簡單的介紹,如果你熟悉這部分可以跳過。CNN 源於 1980 年代對大腦視覺皮層的研究,由兩位諾貝爾獎獲得者 David Hubel 和 Torsten Wiesel 進行。這兩位科學家表明,神經元的區域性感受野很小,它們只對視野的特定區域做出反應,並且這些不同的區域可能會重疊。此外一些神經元只對特定模式(即水平線)作出反應,而一些神經元對特定複雜模式作出反應而這些複雜模式是低階模式的組合。受到這些想法的啟發,1998 年Yann LeCun 引入了 LeNet 架構,該架構首次利用了卷積層和池化層。剛開始並未收到很大的關注,但是在幾年之後AlexNet 的出現讓CNN在 ImageNet 比賽中的獲得了亮眼的表現。並且隨著計算能力的提高使得CNN有了更大的發展,計算機視覺研究的很大一部分轉向了 CNN,並且多年來引入了幾個網路,例如 VGG、ResNet、Inception、EfficientNet、MobileNet 等。

CNN 的基本塊是卷積層。在卷積層中神經元並不連線到其輸入影象中的每個畫素,而只是連線到其感受野中的畫素。在訓練期間,使用在影象上卷積的可學習濾波器或核。每個過濾器都學習識別特定模式,而低階過濾器為更復雜的模式提供底層的支援。給定一張 224 × 224 × 3 的 RGB 影象,使用具有 3 個 3 × 3 × 3 過濾器的卷積層。這意味著在影象上滑動 n 個過濾器中的每一個並執行卷積操作,如下圖所示。卷積的結果堆疊在一起形成 Hₒᵤₜ × Wₒᵤₜ × n 輸出。輸出的寬度 Wₒᵤₜ 和高度 Hₒᵤₜ 取決於核大小和步長(核心步長在影象上移動時的大小)和填充(如何處理影象的邊界)的值。

Depthwise Separable Convolution 深度可分離卷積

正常卷積可能需要大量的計算工作。出於這個原因,谷歌的人(總是他們)在他們的 MobileNet 架構中引入了深度可分離卷積。這種型別的卷積將過程分為兩個步驟:第一個深度卷積,然後是逐點卷積。最終輸出與經典卷積的輸出具有相同的大小,但由於 1 × 1 卷積,需要的計算量要少得多。

在第二個版本 MobileNetv2 中,同一作者介紹了關於深度可分離卷積的兩個主要思想:

Inverted residuals:這種技術允許較低層通過跳過連線訪問前一層的資訊。第一步使用 1 × 1 卷積擴充套件輸入,因為隨後的深度卷積已經大大減少了引數的數量。後面的1 × 1 卷積執行壓縮,以匹配初始通道數。這種殘差連線所連線的是狹窄的層,而不是原始殘餘塊的寬層,所以被命名為Inverted (反向/倒置)。

Linear Bottleneck:使用上面的倒置殘差塊,是可以壓縮跳過連線連結的層加快計算速度,但這會損害網路的效能。所以作者引入了線性瓶頸的想法,其中殘差塊的最後一個卷積在新增到初始啟用之前會包含一個線性輸出。

完整文章:

https://www.overfit.cn/post/b59e840f6eb74bb38785a7210c1d58f5