池化层在全连接层之间吗_卷积神经网络到此就要结束了吗?

近十年来,卷积神经网络近乎主导了全球所有的计算机视觉研究。但最近提出的一种新方法正在改变这一格局。该方法可以利用Transformer的能力来使得图片变得更有意义。Transformer最初设计是用于完成自然语言处理的相关任务,其主要侧重于神经机器翻译。这里有一篇来自谷歌研究院的论文“An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale“[1]提出了一种新的基于Transformer的架构Vision Transformer用于对图形数据的处理。下面,我们就来看看它到底是如何工作的。

CNNs的弊端

在深入研究为Vision Transformer这一方法前,我们必须要分析卷积神经网络的一些缺点。首当其冲的便是CNN无法编码相对空间信息。所谓相对空间信息指的是,CNNs在对某一位置的特征进行编码时,并不会考虑到该位置与其它位置特征上彼此间的相对关系。

97135004f2ad0960b5a2cc3b0d826d8c.png
图 1. 对于CNNs来说两张相似的图片

如图1所示,对于CNNs来说它会将这两张图片都归为到”脸“这一个类别,因为CNNs只能告诉我们图片中出现了哪些潜在的特征,而不能告诉我们特征与特征之间的相对位置。

其次,CNNs的第二个缺陷便是它的池化层。在CNNs中,池化层丢失了大量有价值的信息, 例如许多激活特征(被检测到的特征)的位置精度等。换句话说,也就是池化层无法传达激活特征在图片中所处的确切位置。

Transformers简介

Transformers的核心本质在于其对于self-attention的使用。现在,让我们把这一词拆分成两个部分来进行了解:self和attention。所谓注意力不过是一个可训练的权重向量,它可以用来确定输入序列中各部分的重要性程度。而self-attention则是一种可以考虑到自身位置与其它位置相对重要性的一种注意力机制,它最后所得到的是一个注意力矩阵。假如现在有一个输入序列,利用self-attention我们便可以知道序列中每个位置的相对于其它位置(也包括它自己)的相关性大小(权重)。这样根据计算得到的位置相关性分数,模型便可以利用它更好地编码输入序列的语义信息。

73747d5aefda041b2af55946d8333cc2.png
图 2. self-attention可视化结果

如图2所示self-attention的可视化结果。从图中可以看出,此时Transformer中的注意力单元正在计算单词'it'与其它各个位置上单词的相关性(同时也包含它自己)。同时,图中不同的颜色表示多个注意力单元独立并同时的进行计算,以找到这些连接的不同模式。一旦通过上述过程完成所有位置相对于其它位置的相关性权重计算,它们就会被输入到简单的前馈神经元网络层,最后进行一些归一化处理。

如果你想要对self-attention有有个更加清晰的认知和了解,那么可以参考这篇出色的解读文章 The Illustrated Transformer[2],或者是直接去阅读原始的论文Attention Is All You Need[3]

Vision Transformer结构

如图3所示为Vision Transformer的网络结构图。类似于NLP中的Transformer通过单词来学习整个句子的语义信息,Vision Transformer(ViT)通过像素点来获得类似的图像编码结果。

2fc617ff49621b67321de80cf4b40fbe.png
图 3. Vision Transformer结构图

但是,这里却有一个明显的陷阱之处。与单词相反,在图片中单个像素值本身并不传达任何信息含义,因此这也就意味着我们首先需要将图片分割成一块块小的部分;接着再将这些分割后的部分通过一个线性投影层转换成一个个向量(Embedded Patches),并按照其对应在图片中的位置顺序输入到Transformer中。在这篇论文中,作者以的尺度来作为每个分割部分的大小,而这也是论文题目中16x16的来历。

现在,这些Embedded Patches将会经过多层交替的多头自注意力(Multi-Head Attention),多层感知器(简单前馈神经网络)和层归一化,而这一过程也和标准的Transformer一样。最后,一个用于分类的MLP Head将会紧跟着Transformer Encoder的后面,用于对输入图片分类的预测。同时,Vision Transformer也像任何其它卷积模型一样,可以使用预训练的编码器并附加一个自定义MLP层,以对模型进行微调适合其它的分类任务。

ce0cc61e3da5efd5aa07ed7a53144b51.png
图 4. Vision Transformer中的注意力可视化

如图4所示,便是ViT模型中的注意力可视化结果,其中右边这一列中明亮的部分便是注意力所集中的地方。

结果

论文的作者在各种标准数据集,例如ImageNet,CIFAR-10 / 100和JFT-300M(该数据集是Google并未开源的数据集,其中包含有3亿张高分辨率图像)上对模型进行了训练。与其他先进的卷积模型相比,ViT几乎具有相同的准确性(在许多情况下甚至更高),但是训练时间却显著减少(减少了约75%),同时还使用了更少的硬件资源。

ViT的另一个优点是,由于它使用了全局注意力机制,因此它能够更快的学习到更高层次的相关信息。并且ViT除了在训练过程中保持高效之外,随着训练数据的增加,它也会变得越来越好。

总结

经过以上的介绍,那么这是否意味着CNN已经过时,而ViT将是新常态?当然不是!尽管CNN有许多缺点,但对于诸如目标检测和图像分类之类的任务仍然非常有效。作为最先进的卷积架构,ResNet和EfficientNet模型仍然占据着此类任务的主导地位。但是,Transformer在NLP任务(例如语言翻译)方面取得了突破,并在计算机视觉领域显示出了巨大的希望。在这个不断发展的研究领域中,只有时间最后才能告诉我们是什么样的结局。

[1]https://arxiv.org/abs/2010.11929
[2]http://jalammar.github.io/illustrated-transformer/
[3]https://arxiv.org/abs/1706.03762

- END -

技术科普、前沿追踪,你想要的这里都有!
如需转载请联系本公众号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值