Transformer in Transformer
Abstract
-
Transformer通过注意机制,是一种新的神经架构。基本上,视觉transformer先将输入图像分成几个局部小块,然后计算两种表示及其关系。
-
由于自然图像具有高度的复杂性和丰富的细节和颜色信息,块划分的粒度不同,以挖掘不同尺度和位置的物体特征。
-
本文指出了这些局部部位,并探索了一种新的结构,即transformer中的transformer(TNT)。
-
具体来说,本文将是局部小块(如16)×16)视为视觉句子。每个单词的注意力将与给定视觉句子中的其他单词一起计算,计算成本可以忽略不计。
-
单词和句子的特征将被聚合,以增强表达能力。几个基准的实验证明了提出的TNT例如,本文的模型是系统结构的有效性ImageNet上获得了81.5%的top-1精度,比计算成本相似的最先进的视觉转换器高1左右.7%。
-
PyTorch代码可在https://github.com/huawei-noah/CV-Backbones,获得,
-
MindSpore代码可在https://gitee.com/mindspore/models/tree/master/research/cv/TNT获得。
-
提出了一个新颖的Transformer-iN-Transformer(TNT)模型,。
-
- 在每个TNT块中,。通过线性变换层投影像素级特征patch嵌入空间,然后添加到patch中。通过堆叠TNT本文建立了用于图像识别的块TNT模型。
-
研究人员提出了一种新的视觉 Transformer 网络架构 Transformer in Transformer,。TNT 还暗合了 Geoffrey Hinton 最新提出的 part-whole hierarchies 思想。
- 谷歌 ViT(Vision Transformer)模型是视觉任务的纯模型 transformer 经典的技术解决方案。它将输入图成几个图像块(patch),然后将 patch 用向量表示,用 transformer 来处理图像 patch 序列,最终的输出做图像识别。。
- 华为诺亚实验室的研究人员提出了一个基于结构嵌套的研究人员 Transformer 结构,被称为 Transformer-iN-Transformer (TNT) 结构。TNT 将图像切成块,形成 Patch 序列。。
- 新提出的 TNT block 使用一个外 Transformer block 来对 patch 建模两者之间的关系,用一个内部 Transformer block 建模像素之间的关系。 TNT 结构,
Introduction
- 在过去的十年里,计算机视觉(CV)主流深度神经架构主要基于卷积神经网络(CNN)上[Alexnet,Resnet,More features from cheap operations]。不同的是,transformer以自注意机制为基础的神经网络,。
- Transformer 是一种主要,输入数据的特征可以提取。计算机视觉 Transformer 将输入图像均分为多个图像块,然后提取器的特征和关系。。
- Transformer广泛应用于自然语言处理(NLP)比如名字BERT和GPT-3模型。这些transformer激励整个社区研究模型的力量transformer使用视觉任务。
- 为了利用transformer许多研究人员探索了来自不同数据的序列信息。Wang等人在非局部网络中探索自注机制[Non-local neural networks],。Carion等人提出了DETR,它将对象检测视为直接集预测问题使用transformer解决它的编码器-解码器架构。Chen等人提出的iGPT是将纯transfer模型(即无卷积)通过自监督预训练应用于图像识别的开创性工作。
- 与NLP任务中的数据不同,CV任务中的输入图像和真实标签之间存在。为此,Dosovitskiy等人开发了ViT【读点论文】AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE(ViT)图像处理自然语言_羞儿的博客-CSDN博客 ,为迁移基于transformer的NLP模型的成功铺平了道路。具体地说,。然后,可以自然地计算任何两个图像块之间的注意力,以生成有效的特征来识别任务。
- 随后,Touvron等人,以提高ViT在ImageNet基准性能,获得81左右.8%的ImageNet top-1的准确性相当于最先进的卷积网络。Chen等待人们进一步将图像处理任务(如去噪和超分辨率)视为一系列翻译,并开发了用于处理多个低级计算机视觉问题的模型[Pre-trained image processing transformer]。
- 如今,transformer越来越多的计算机视觉任务使用了架构[A survey on vision transformer],如图像识别、对象检测和分割。
- 尽管上述视觉transformer为了提高模型的性能,我们做出了巨大的努力,但大多数现有的工作都遵循ViT传统的表示方案,即将输入图像分成小块。这种精致的范式可以有效地捕捉视觉序列信息,并估计不同图像块之间的注意力。然而,自然图像在现代基准中的多样性非常高,例如,ImageNet数据集中有超过1.包含1000个不同类别的2亿张图像。
- 如下图所示,。然而,它们也有一些高度相似的子补丁。因此,本文需要探索一种更精细的视觉图像分割方法来生成视觉序列,提高性能。
- Illustration of the proposed Transformer-iN-Transformer (TNT) framework.内部transformer块在同一层中共享。。
- 本文提出了一种用于视觉识别的新型transformer中transformer(TNT)如上图所示。增强视觉。transformer的特征表示能力,本文。
- 传统的句子除了提取视觉句子的特征和注意力外transformer除了块,本文还在架构中嵌入了一个子transformer,用于挖掘较小视觉单词的特征和细节。具体来说,。
- 然后,将单词的特征集成到相应的视觉句子中。类别令牌也用于完全连接头部的后续视觉识别任务。。
- 然后,本文在ImageNet为了展示其优势,对大小对视觉单词划分的影响进行了一系列的基准和下游任务实验。结果表明,最先进transformr网络相比,。
- Transformer 网络推动了诸多自然语言处理任务的进步,而近期 transformer 开始在计算机视觉领域崭露头角。例如,DETR 将目标检测视为一个直接集预测问题,并使用 transformer 编码器 - 解码器架构来解决它;IPT 利用 transformer 在单个模型中处理多个底层视觉任务。与现有主流 CNN 模型(如 ResNet)相比,这些基于 transformer 的模型在视觉任务上也显示出了良好的性能。
Approach
-
本文将描述所提出的transformer中transformer架构,并详细分析计算和参数复杂性。
-
Preliminaries
-
本文先简单描述一下transformer中的基本组件,包括MSA(多头自注意力机制)、MLP(多层感知器)和LN(层归一化)。
-
MSA:在自注意力机制模块中,输入 X ∈ R n × d X∈\Bbb R^{n×d} X∈Rn×d被线性变换成三个部分,即查询 Q ∈ R n × d k Q∈\Bbb R^{n×d_k} Q∈Rn×dk、关键字 K ∈ R n × d k K∈\Bbb R^{n×d_k} K∈Rn×dk和值 V ∈ R n × d v V ∈\Bbb R^{n×d_v} V∈Rn×dv,其中n是序列长度, d 、 d k 、 d v d、d_k、d_v d、dk、dv分别是输入、查询(关键字)和值的维度。缩放的点积注意力应用于Q、K、V:
-
A t t e n t i o n ( Q , K , V ) = s o f t m a x ( Q K T d k ) V Attention(Q,K,V)=softmax(\frac{QK^T}{\sqrt{d_k}})V Attention(Q,K,V)=softmax(dk QKT)V
-
最后,使用线性图层生成输出。多头自注意力机制将查询、键和值拆分为h个部分并并行执行attention函数,然后将每个头的输出值级联并线性投影形成最终输出。
-
注意力机制(Attention Mechanism)的本质是:对于给定目标,;
-
为了实现注意力机制,可以将输入的原始数据看作< Key, Value>键值对的形式,根据给定的任务目标中的Query 计算 Key 与 Query 之间的相似系数,可以得到Value值对应的权重系数, 之后再用权重系数对 Value 值进行加权求和, 即可得到输出。将注意力权重系数W与Value做**点积操作(加权求和)**得到融合了注意力的输出:
-
A t t e n t i o n ( Q , K , V ) = W ⋅ V = s o f t m a x ( Q K T ) ⋅ V Attention(Q,K,V)=W⋅V=softmax(QK^T)⋅V Attention(Q,K,V)=W⋅V=softmax(QKT)⋅V
-
-
注意力模型的详细结构如下图所示:
- 需要注意,如果Value是向量的话,加权求和的过程中是对向量进行加权,最后得到的输出也是一个向量。
-
注意力机制可以通过对< Key, Query>的计算来形成一个注意力权重向量,然后对Value进行加权求和得到融合了注意力的全新输出,注意力机制在深度学习各个领域都有很多的应用。不过需要注意的是,。
-
-
MLP:MLP应用于自注意力层之间,用于特征变换和非线性: M L P ( X ) = F C ( σ ( F C ( X ) ) 、 F C ( X ) = X W + b MLP(X)=FC(σ(FC(X))、FC(X) = XW + b MLP(X)=FC(σ(FC(X))、FC(X)=XW+b.其中W和b分别是全连接层的权重和偏置项,。
-
MLP中文叫法是多层感知机,其实质就是神经网络。MLP中文叫法是多层感知机,其实质就是神经网络。是深度神经网络(DNN)的基础算法,有时候提起DNN就是指MLP。.
-
GELU激活函数
-
全称是GAUSSIAN ERROR LINEAR UNIT,高斯误差线性单元,与Sigmoids相比,像ReLU,ELU和PReLU这样的激活可以使神经网络更快更好地收敛。高斯误差线性单元激活函数在最近的 Transformer 模型(谷歌的 BERT 和 OpenAI 的 GPT-2)中得到了应用。GELU 的论文来自 2016 年,但直到最近才引起关注。
-
G E L U ( X ) = x ∗ P ( X ≤ x ) = x ∗ ϕ ( x ) , x ~ N ( 0 , 1 ) GELU(X)=x*P(X\leq x)=x*\phi(x),x~N(0,1) GELU(X)=x∗P(X≤x)=x∗ϕ(x),x~N(0,1).x是输入值,X是具有零均值和单位方差的高斯随机变量。P(X<=x)是X小于或等于给定值x的概率。
-
想使用它来创建确定性函数以用作激活。 请注意,SOI(zero-or-identity)可以执行以下两项操作之一:以概率 ϕ ( x ) \phi(x) ϕ(x) 做恒等映射,以概率 1 − ϕ ( x ) 1-\phi(x) 1−ϕ(x) 映射到0。对应着伯努利分布,该式子的期望(平均值)为:
-
I ∗ x ∗ ϕ ( x ) + 0 ∗ x ∗ ( 1 − ϕ ( x ) ) = x ∗ ϕ ( x ) 近 似 计 算 : G E E L U ( X ) = 0.5 ∗ x ∗ ( 1 + t a n h [ 2 π ∗ ( x + 0.044715 x 3 ) ] ) G E L U 激 活 函 数 的 倒 数 : d G E L U ( x ) d x = ϕ ( x ) + x ∗ ϕ ( x ) ‘ I*x*\phi(x)+0*x*(1-\phi(x))=x*\phi(x)\\ 近似计算:GEELU(X)=0.5*x*(1+tanh[\sqrt{\frac{2}{\pi}}*(x+0.044715x^3)])\\ GELU激活函数的倒数:\frac{dGELU(x)}{dx}=\phi(x)+x*\phi(x)^` I∗x∗ϕ(x)+0∗x∗(1−ϕ(x))=x∗ϕ(x)近似计算:GEELU(X)=0.5∗x∗(1+tanh[π2 ∗(x+0.044715x3)])GELU激活函数的倒数:dxdGELU(x)=ϕ(x)+x∗ϕ(x)‘
-
其中 Φ ( x ) \Phi(x) Φ(x)指的是x xx的高斯正态分布的累积分布,完整形式如下: x P ( X ≤ x ) = x ∗ ∫ − ∞ x e − ( x − μ ) 2 / ( 2 δ 2 ) 2 π δ d X xP(X\leq x)=x*\intop_{-∞}^{x}\frac{e^{-(x-μ)^2/(2\delta^2)}}{\sqrt{2\pi}\delta}dX xP(X≤x)=x∗∫−∞x2π δe−(x−μ)2/(2δ2)dX,计算的结果约为 0.5 ∗ x ∗ ( 1 + t a n h [ 2 π ∗ ( x + 0.044715 x 3 ) ] ) 0.5*x*(1+tanh[\sqrt{\frac{2}{\pi}}*(x+0.044715x^3)]) 0.5∗x∗(1+tanh[π2 ∗(x+0.044715x3)])。
-
-
Gelu(u(均值)=0,σ(方差) =1),Elu(α = 1),Relu激活函数对比图
-
-
-
LN:层标准化是transformer中稳定训练和更快收敛的关键部分。LN应用于每个样本 x ∈ R d x ∈\Bbb R^d x∈Rd,如下所示:
-
KaTeX parse error: Undefined control sequence: \var at position 19: …(x)=\frac{x-μ}{\̲v̲a̲r̲}\odotγ+β
-
其中μ∈ R、δ ∈ R分别是特征的平均值和标准偏差, ⊙ \odot ⊙是element-wise dot, γ ∈ R d 、 β ∈ R d γ∈\Bbb R^d、β∈\Bbb R^d γ∈Rd、β∈Rd是可学习的仿射变换参数。
-
-
-
Transformer in Transformer