一种基于线性自注意力Transformer的图像分类方法

文档序号:30962943发布日期:2022-07-30 14:44阅读:158来源:国知局
一种基于线性自注意力Transformer的图像分类方法
一种基于线性自注意力transformer的图像分类方法
技术领域
1.本发明涉及计算机视觉技术领域,具体涉及一种基于线性自注意力transformer的图像分类方法。


背景技术:

2.从alexnet在imagenet分类挑战中取得革命性的表现开始,cnn网络架构得到迅速的发展。此后,人们提出了更深、更有效的卷积网络结构进一步推动了计算机视觉领域深度学习的浪潮,例如vgg、googlenet、resnet、densenet、hrnet和efficientnet。cnn及其变体成为了是计算机视觉应用的主要主干架构。
3.transformer是由谷歌团队在2017年首次提出,用于自然语言处理(nlp)领域中的翻译任务。它能够通过使用多头注意力机制对远程依赖关系进行建模并能够进行并行计算提升计算效率。因此transformer模型迅速取代了rnn成为nlp领域的首选架构。然而在计算机视觉领域(cv)中,卷积神经网络架构依然占据主导地位,受到transformer在nlp领域取得巨大成功的激励,研究者们开始尝试将transformer应用到计算机视觉任务中。在2020年,carionet等人提出了detr,它将目标检测视为一个直接集预测问题,并使用transformer encoder-decoder体系结构解决它。在coco目标检测数据集上,detr在大型目标检测上的性能优于faster-rcnn,但在小目标上不如。在2020年,dosovitskiy等人首次尝试直接将标准的transformer模型应用于图像分类任务中,并做尽量少的修改,称之为视觉转换器(vision transformer)vit。vit首先将图像按固定大小划分为不重叠的patch块,并将这些patch块标记为一系列视觉token。然后将这些视觉token直接到送入到标准transformer中的encoder模块,这些视觉token的处理方式与nlp中的token一样,再根据encoder模块的输出进行图像分类。当先在大型数据集jft-300m进行预训练后,vit可以在多个图像识别任务集上取得接近或者超过最新水平。2021年,hugotouvron等人提出了训练数据增强方法以及基于蒸馏令牌的蒸馏策略,用来高效的训练vit模型,称之为deit。deit通过一组优秀超参数以及蒸馏训练策略,仅仅使用86m的参数就在imagenet数据集上取得了83.1%的准确率。随后liyuan等人认为vit对图像块的标记化方法过于简单,不能充分建模图像中的边缘和线条等局部信息。因此,提出了一种新颖的渐进式标记化方法,将相邻标记的信息聚合到一个标记中,称之为t2t。当预训练图像的分辨率为384
×
384时,t2t仅用21.5m的参数就在imagenet数据集上取得了83.3%的准确率。
4.vit模型及其变体在大型数据集进行预训练后,能够在许多图像分类任务集上取得很好的效果。但vit模型也存在很多缺点。由于自我注意力机制是transformer架构的关键组成部分,而自我注意力机制的计算复杂度是同输入的token数量呈二次关系。因此当输入的图像分辨率太高,使用vit进行图像分类所需进行的计算量会很大。并且vit相比卷积神经网络缺少平移不变性和局部性等归纳偏置,因此vit模型训练所需的数据量大于卷积神经网络需要的数据量。


技术实现要素:

5.本发明的目的是解决上述问题,提供了一种基于线性自注意力transformer的图像分类方法,利用两种线性自注意力机制构建交替设置transformer层,能够大幅的降低transformer模块的计算复杂度,通过重叠卷积编码模块以及卷积前馈神经网络能够给模型带来局部性,减少模型对大型数据集的依赖。
6.为了实现上述目的,本发明采用了如下技术方案:
7.一种基于线性自注意力transformer的图像分类方法,包含以下步骤:
8.s1:将图片送入到第一个stage的重叠卷积编码模块,利用卷据运算将图片编码为图片令牌;
9.s2:将图片令牌送入该stage中transformer模块中,提取图片特征向量;
10.s3:将提取的图片特征向量送入到下一个stage的重叠卷积编码模块,减少特征向量数量的同时增加特征向量维度;
11.s4:重复进行s2和s3,从最后一个stage的transformer模块中的到最终输出向量;
12.s5:通过分类器单元将最终的输出向量转化成概率表示,完成图像分类。
13.作为本发明的优选技术方案:所述s1与s3中的重叠卷积编码模块是用重叠的patch来标记图像。
14.作为本发明的优选技术方案:所述s2中的transformer模块包括局部线性自注意力模块、全局线性自注意力模块及卷积前馈神经网络;所述局部线性自注意力模块和卷积前馈神经网络构成一种捕获局部特征的transformer层;所述全局线性自注意力模块和卷积前馈网络构成另一种捕获全局特征的transformer层;所述捕获局部特征的transformer层与捕获全局特征的transformer层交替设置,先进行局部自注意力的捕捉,再进行全局注意力的捕捉。
15.作为本发明的优选技术方案:所述局部线性自注意力模块为建立在多头自注意力机制的基础上,先将输入的二维的特征向量x
∈rn
×d,变形为三维的特征图x
∈r(h
×w×
d)
,再将三维的特征图重新划分为包含m个子窗口的特征图x
p
∈r
(m
×
p
×
p
×
d)
,其中n代表特征向量的个数,d是通数,h,w是二维特征图的长和宽,即n=h
×
w;m代表子窗口的数量,p代表子窗口的长和宽,即m=(h/p
×
w/p)。
16.作为本发明的优选技术方案:所述全局线性自注意力模块为建立在自注意力的基础上,先将每个输入线性投影为可训练的查询q、键k、值v三组值;在计算注意力分数图之前,会通过平均池化操作,将键k和值v池化成空间大小固定的特征张量,这样能够大幅减少后续计算的计算量;再通过所有令牌q对池化后的键k做点积运算,并且除以缩放因子,经过softmax激活函数以获得注意力权重图;最后让得到的注意力权重图和池化后的值v做矩阵乘法得到新的令牌向量。
17.作为本发明的优选技术方案:所述卷积前馈神经网络包括两层线性层,一层深度可分离卷积层以及gelu激活函数;所述两层线性层和gelu激活函数能够对向量进行融合,对各个位置进行变换,并且投影到所需维度;所述深度可分离卷积层为卷积核的个数和通道数相同,一个卷积核负责一个通道,一个通道只被一个卷积核卷积的卷积层;深度可分离卷积层能够给transformer带来locality机制,提高网络性能。
18.作为本发明的优选技术方案:所述s3具体为:先将输入的二维的特征向量x
∈rn
×d,
变形为三维的特征图x
∈r(h
×w×
d)
,其中n代表特征向量的个数,d是通数,h,w是三维特征图的长和宽,即n=h
×
w;再用重叠的patch来标记特征图,即将patch的窗口放大,使相邻的窗口重叠一半面积,并且在特征图周围填充0以保持分辨率;最后使特征向量的数量减少一半并且将特征向量的维度增加一倍。
19.作为本发明的优选技术方案:所述s4中的特征向量会依次通过每一个stage的卷积编码模块和transformer模块;所述每一个stage中的特征向量的尺寸都是不同的,即能够得到多尺度的特征向量。
20.作为本发明的优选技术方案:所述s5中,将最后一个stage中得到的特征向量,做平均池化,得到一个一维的向量;将该一维向量送入分类器中得到分类结果,与真实结果对比,优化模型,重复此过程进行模型训练;训练结束后,模型经过分类器即可输出对应输入图片的分类结果。
21.本发明所述的一种基于线性自注意力transformer的图像分类方法,采用以上技术方案与现有技术相比,具有以下技术效果:
22.(1)本发明利用两种线性注意力机制构建两种transformer层,局部线性自注意力的transformer用来捕获局部信息,全局线性自注意力的transformer用来捕获全局信息,两种transformer层交替设置,由于两种注意力机制的计算复杂度都是和输入的token数量呈线性关系,因此能够大幅的降低transformer模块的计算复杂度。
23.(2)为了能充分的对局部信息进行建模,重叠卷积编码模块使用重叠的patch来标记特征图,并且在标准的前馈神经网络中加入深度可分离卷积层,这样能够给transformer带来locality机制,提高网络性能,减少对数据的依赖。
24.(3)本发明的模型整体架构由多个stage组成,每个stage里面的特征向量的数量和维度都不相同,因此本发明的模型能够产生多尺度的特征表示,能够作为许多下游视觉任务的骨干网络。
附图说明
25.图1为本发明方法中网络模型整体架构示意图;
26.图2为本发明方法中两种transformer层交替设置架构示意图;
27.图3为本发明方法中重叠卷积编码模块示意图;
28.图4为本发明中局部线性自注意力的示意图;
29.图5为本发明中全局线性自注意力的示意图;
30.图6为本发明卷积前馈神经网络的示意图。
具体实施方式
31.下面结合附图详细的描述本发明的作进一步的解释说明,以使本领域的技术人员可以更深入地理解本发明并能够实施,但下面通过参考实例仅用于解释本发明,不作为本发明的限定。
32.如图1所示,本发明提出的一种基于线性自注意力transformer的图像分类方法,其网络模型主体由四个不同的stage组成,每个stage由重叠卷积编码模块和transformer模块构成。其中transformer模块的注意力机制的计算复杂度和输入的token数量呈线性关
系,因从相比于vit模型及其一些变体,本发明的网络模型计算量显著减少,并且为了能充分的对局部信息进行建模,本发明使用重叠卷积模块来标记特征图,最后,为了给本发明模型带来locality机制,本发明在标准前馈神经网络中引入了深度可分离卷积;同时,每个stage里的特征向量的数量和维度各不相同,因此本发明能够得到多尺度的特征,为后续本发明模型的应用提供更多可能。
33.一种基于线性自注意力transformer的图像分类方法,包含以下步骤:s1:将图片送入到第一个stage的重叠卷积编码模块,利用卷据运算将图片编码为图片令牌;s2:将图片令牌送入该stage中transformer模块中,提取图片特征向量;s3:将提取的图片特征向量送入到下一个stage的重叠卷积编码模块,减少特征向量数量的同时增加特征向量维度;s4:重复进行s2和s3,从最后一个stage的transformer模块中的到最终输出向量;s5:通过分类器单元将最终的输出向量转化成概率表示,完成图像分类。
34.s1与s3中的重叠卷积编码模块是用重叠的patch来标记图像。如图3所示,本发明用重叠的patch来标记特征图,即将patch的窗口放大,使相邻的窗口重叠一半面积,并且在特征图周围填充0以保持分辨率;使用0填充卷积来实现。具体来说,给定一个h
×w×
c的输入,将其输入到步长为s,卷积核大小为2s-1,填充尺寸是s-1,,卷积核的个数为2c的卷积层中,则会得到输出大小为(h/s
×
h/s
×
2c)。
35.如图2所示,s2中的transformer模块包括局部线性自注意力模块、全局线性自注意力模块及卷积前馈神经网络;所述局部线性自注意力模块和卷积前馈神经网络构成一种捕获局部特征的transformer层;所述全局线性自注意力模块和卷积前馈网络构成另一种捕获全局特征的transformer层;所述捕获局部特征的transformer层与捕获全局特征的transformer层交替设置,先进行局部自注意力的捕捉,再进行全局注意力的捕捉。
36.如图4所示,局部线性自注意力模块为建立在多头自注意力机制的基础上,先将输入的二维的特征向量x
∈rn
×d,变形为三维的特征图x
∈r(h
×w×
d)
,再将三维的特征图重新划分为包含m个子窗口的特征图x
p
∈r
(m
×
p
×
p
×
d)
,其中n代表特征向量的个数,d是通数,h,w是二维特征图的长和宽,即n=h
×
w;m代表子窗口的数量,p代表子窗口的长和宽,即m=(h/p
×
w/p)。
37.这一过程的实现可通过以下计算:
38.x=x.reshape(b,h,w,c)
39.x=x.view(b,h//window_size,window_size,w//window_size,window_size,c)
40.windows=x.permute(0,1,3,2,4,5).contiguous().view(-1,window_size,window_size,c)
41.其中,b代表batch_size的个数,h和w代表特征图的长和宽,window_size代表子窗口的大小,d是代表通道数。在每一个子窗口内计算多头自注意力。
42.如图5所示,全局线性自注意力模块为建立在自注意力的基础上,先将每个输入线性投影为可训练的查询q、键k、值v三组值;在计算注意力分数图之前,会通过平均池化操作,将键k和值v池化成空间大小固定的特征张量,这样能够大幅减少后续计算的计算量;再通过所有令牌q对池化后的键k做点积运算,并且除以缩放因子,经过softmax激活函数以获得注意力权重图;最后让得到的注意力权重图和池化后的值v做矩阵乘法得到新的令牌向量。
43.如图6所示,卷积前馈神经网络包括两层线性层,一层深度可分离卷积层以及gelu激活函数;所述两层线性层和gelu激活函数能够对向量进行融合,对各个位置进行变换,并且投影到所需维度;所述深度可分离卷积层为卷积核的个数和通道数相同,一个卷积核负责一个通道,一个通道只被一个卷积核卷积的卷积层;深度可分离卷积层能够给transformer带来locality机制,提高网络性能。
44.s3具体为:先将输入的二维的特征向量x
∈rn
×d,变形为三维的特征图x
∈r(h
×w×
d)
,其中n代表特征向量的个数,d是通数,h,w是三维特征图的长和宽,即n=h
×
w;再用重叠的patch来标记特征图,即将patch的窗口放大,使相邻的窗口重叠一半面积,并且在特征图周围填充0以保持分辨率;最后使特征向量的数量减少一半并且将特征向量的维度增加一倍。
45.s4中的特征向量会依次通过每一个stage的卷积编码模块和transformer模块;所述每一个stage中的特征向量的尺寸都是不同的,即能够得到多尺度的特征向量。方便以后对本发明的模型进行扩展。
46.s5中,将最后一个stage中得到的特征向量,做平均池化,得到一个一维的向量;将该一维向量送入分类器中得到分类结果,与真实结果对比,优化模型,重复此过程进行模型训练;此处使用交叉熵损失进行模型训练;训练结束后,模型经过分类器获得一个分类向量,该向量中数值最大的一维即图片的类别。
47.本发明提出了一种基于线性自注意力transformer的图像分类方法,既能够的有效的从图片中提取图片特征又显著的降低了transformer模块的计算复杂度,又通过重叠卷积编码模块和卷积前馈神经网络模块提高模型提取的图片特征的能力,基于提取的图片特征向量,本发明的模型能够有效的完成对图像的分类,本发明的模型还能提供多尺度的图片特征,能够作为许多下游视觉任务的骨干网络。
48.以上所述的具体实施方案,对本发明的目的、技术方案和有益效果进行了进一步的详细说明,所应理解的是,以上所述仅为本发明的具体实施方案而已,并非用以限定本发明的范围,任何本领域的技术人员,在不脱离本发明的构思和原则的前提下所做出的等同变化与修改,均应属于本发明保护的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1