這篇文章主要介紹 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
