论文导读: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