我相信你肯定已经在自然语言领域中听说过 transformer 这种结构,因为它在 2020 年的 GPT3 上引起了巨大轰动。Transformer 不仅仅可以用于NLP,在许多其他领域表现依然非常出色。
在本文中我将介绍 transformer 从文本输入转换为图像,它是超越计算机视觉技术的最新卷积神经网络。
为什么要使用 transformer 替换 CNN 呢?
为什么我们要试图取代用于计算机视觉中的卷积神经网络(CNNs)呢?
这是因为在处理复杂任务时,transformer 可以有效地使用更多的内存,并且功能更强大。此外 transformer 以并行方式进行计算的。更多关于 transformer 的内容可以在如下论文中了解:
https://arxiv.org/abs/1706.03762
![](https://i-blog.csdnimg.cn/blog_migrate/645955813c5efa4091b93e41cca55ce6.gif)
与 CNN 相比,transformer 可以同时从输入及其相互关系中提取我们需要的所有信息。CNN的定位比较广泛,使用小型过滤器将信息压缩为通用结果。尽管 CNN 结构对于常规分类任务的效果是强大的,但它没有许多任务(例如实例识别)所必需的空间信息。这是因为卷积神经网络不考虑距离像素的关系。
在 NLP 中,计算机视觉案例中输入类型是句子和图像。为了快速引入 attention 机制的概念,我们以一个简单的 NLP 为例。
输入一个句子,将其用 transformer 来转换。attention 基本上是测量句子中的每个单词与输出句子上的每个单词的关系。我们也称之为" self-attention",它可以被看作是衡量一个特定单词对同一句子的所有其他单词的影响。同样的过程也适用于计算图像中的注意力及其相互关系的图像,正如我们将在本文中进一步讨论的那样。
Transformers 在计算机视觉中的应用
我们知道 transformers 非常有趣,但是在计算机视觉应用方面仍然存在问题。事实上,就像俗话说那样:"一张图片胜过千言万语"。图片包含的信息比句子多得多,因此我们必须调整基本的 transformer 架构来有效地处理图像。
这是由于它的自注意力的计算复杂度是图像大小的平方,从而使计算时间和内存需求激增。相反,研究人员将这种平方计算复杂度替换为图像大小的线性计算复杂度。
The Swin Transformer
实现此目的的过程非常简单。首先,像大多数计算机视觉任务一样,RGB图像被发送到网络。该图像被分解成图像块,每个图像块都被当作一个 token。这些 token 是像素本身的RGB值。与NLP进行比较,你可以看到它,因为整体图像是句子,每个图像块都是该句子的单词。自我注意力会应用到每个图像块上,这里称为窗口。然后,移动窗口从而产生新的窗口以再次应用 self-attention。同时允许跨窗口连接,从而带来更高的效率。与卷积神经网络相比,这非常有趣,因为它允许出现长距离像素关系。
这只是第一阶段,第二阶段非常相似,但将每组两个相邻图像块的特征相联,将分辨率降低2倍。此过程在第3阶段和第4阶段重复两次,以生成与典型卷积网络如ResNets和VG相同的特征图分辨率。
卷积的强大之处在于,过滤器在全局范围内使用固定的权重,从而实现了卷积的平移不变性,使其成为一个强大的广义过滤器。在自注意力中,权重不是全局固定的。相反,它们依赖于本地环境本身。因此,自注意力不仅考虑了每个像素,还考虑了它与其他像素的关系。
此外,它的移动窗口技术允许出现长距离像素关系。但这些长距离像素关系仅出现在相邻窗口,因此失去了更长距离像素关系,这也表明transformers应用于计算机视觉方面仍然存在需要改进的地方。
结论
跨越计算机视觉和自然语言处理的统一架构可以使这两个领域受益,因为它将促进视觉和文本信号的联合建模,并且来自这两个领域的建模知识可以更深入地共享,这无疑是两个领域向前迈出的重要一步!
往期精彩回顾
适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑温州大学《机器学习课程》视频
本站qq群851320808,加入微信群请扫码: