ViT比较swin变压器2021-05-18
用于大规模图像识别的变压器
https://arxiv.org/pdf/2010.11929.pdf
这部作品《视觉变压器》基于在NLP领域大放异彩的变压器模型,处理视觉领域的任务。作者以简单的方式将二维图像数据转换成类似于Transformer中处理的句子序列的形式,然后使用Transformer编码器提取特征。
Transformer的论文叫做关注是你所需要的。现在提到深度学习领域的注意力,大家可能会想到Transformer的自我注意机制。事实上,注意机制最初应用于循环神经网络,自我注意可以视为更一般的版本。注意力最初是编码器-解码器框架中关于中间隐藏状态的函数。而自我注意则不关心隐藏状态,只关注输入序列中向量之间的依赖关系。Transformer给出了一个非常简洁的公式。
当你看到softmax,你就知道你在求概率。v代表数值,QK代表字典查找操作。但这还是很抽象。如果你想理解它,你必须把矩阵分解成向量。这是一个关于视觉变形金刚的博客。https://jalammar.github.io/illustrated-transformer/
我的理解是,对原始向量进行三次编码,然后在计算关注度结果时,其中一个码只与自身相关,代表令牌的特征,另外两个码用来匹配序列中其他向量的码,得到当前向量与其他向量的相关程度。
卷积在视觉上占优势的主要原因是局部感受野,卷积的形式非常适合图像数据的处理。而卷积的感受野是有限的,只有通过多层抽象才能获得大的感受野。自我关注,我认为,可以理解为在全局输入中的选择性加权。这个过程重复多次,就是多头自我注意机制。
最终的代码如下所示:
对应:
现在图片的输入已经通过上述处理转化为transformer处理单词序列的形式,最后的结果就是直接通过多头注意机制经过多次处理得到的与图片中每个斑块相关的特征。相当于替换卷积层完成特征提取,得到Z _ L。
没有卷积运算,训练需要的计算资源要少得多。
如果用大量数据集进行预训练,ViT会非常有效。
ViT模型的性能优于同量级的最新技术。
https://arxiv.org/pdf/2103.14030.pdf
与在ViT中向输入序列添加绝对位置代码不同,swinTransformer使用相对位置偏移量,该偏移量被添加到attention内部的查询操作中。论文做过实验,如果两种方法同时使用,性能会下降。