首页 > 其他分享 >PiT : 基于池化层Pooling layer的Vision Transformer

PiT : 基于池化层Pooling layer的Vision Transformer

时间:2024-07-18 18:30:06浏览次数:16  
标签:Transformer 池化层 卷积 layer ResNet 空间 ViT 维度

        CNN的降维原理;随着深度的增加,传统CNN的通道维数增加,空间维数减少。经验表明,这样的空间降维对变压器结构也是有益的,并在原有的ViT模型的基础上提出了一种新的基于池的视觉变压器(PiT)。


1. 引言

        ViT与卷积神经网络(CNN)有很大的不同。将输入图像分成16×16小块馈送到变压器网络;除了第一嵌入层外,ViT中没有卷积操作,位置交互仅通过自关注层进行。CNN具有有限的空间交互,而ViT允许图像中的所有位置通过变压器层进行交互。虽然ViT是一种创新的架构,并且已经证明了其强大的图像识别能力,但它遵循了NLP中的变压器架构,没有任何变化。

        CNN从空间尺寸大、通道尺寸小的特征开始,逐渐增大通道尺寸,减小空间尺寸。由于称为空间池的层,这种维度转换是必不可少的。现代CNN架构,包括AlexNet、ResNet和EfficientNet,都遵循这一设计原则。池化层与每一层的感受野大小密切相关。研究表明,池化层有助于提高网络的表达性和泛化性能。然而,与CNN不同的是,ViT不使用池化层,并且对所有层使用相同的空间维度。

1.1 基于池化的Vision Transformer

        PiT是一种变压器架构,结合了新设计的池化层。它允许在ViT结构中像ResNet中那样减小空间大小。最后,利用熵和平均距离度量分析变压器块的注意矩阵,分析PiT与ViT相比的效果。通过分析,揭示了ViT和PiT各层次的注意模式,有助于理解ViT和PiT的内在机制。 

2. 相关工作

2.1 CNN的维度配置

        维度转换可以在AlexNet中找到,它是计算机视觉中最早的卷积网络之一。AlexNet使用三个最大池化层。在最大池化层中,特征的空间大小减少了一半,通道大小通过最大池化后的卷积增加。VGGnet 使用5个max-pooling使用5个空间分辨率。在池化层中,空间大小减少一半,通道大小增加一倍。

        GoogLeNet也使用了池化层。ResNet使用stride - 2的卷积层代替max pooling进行空间大小缩减。它是对空间约简方法的改进。stride-2的卷积层在最近的架构中也被用作池化方法(EfficietNet , MobileNet)。PyramidNet指出通道增加只发生在池化层,为了解决这一点,提出了在池化层以外的层中逐渐增加通道大小的方法。ReXNet报道,网络的通道配置对网络性能有显著影响。总之,大多数卷积网络使用具有空间约简的维配置。 

2.2 Self-attention 机制

        Transformer架构通过自注意力机制显著提高了NLP任务的性能。而Funnel Transformer则通过池化层和跳跃连接(skip connection)来减少标记(tokens),从而改进了Transformer架构。

        Non-local(非局部)网络在CNN骨干网络中增加了几个自注意力层,并表明自注意力机制可以在CNN中使用。[28]将ResNet的3x3卷积替换为局部自注意力层。[36]在每个空间轴上使用了注意力层。[2]通过减少注意力机制的计算量,实现了整个空间图的自注意力。这些方法大多是将3x3卷积替换为自注意力或添加几个自注意力层。因此,它们继承了ResNet的基本结构,即具有步长为2的卷积,从而得到了具有ResNet维度配置的网络。

        只有视觉Transformer(Vision Transformer,ViT)在所有层中都使用相同的空间大小的结构。尽管ViT没有遵循ResNet的惯例,但它在网络架构中包含了许多有价值的新组件。在ViT中,每个空间标记(token)都应用了层归一化(layer normalization)。因此,ViT的层归一化更接近位置归一化[22],而不是卷积神经网络的层归一化[1, 39]。尽管它与lambda网络[2]有重叠,但在网络的所有块中都使用全局注意力并不常见。使用类别标记(class token)而不是全局平均池化(global average pooling)也是一个新特性。

3. 重新审视空间维度

3.1 CNN的维度设置

        如图(a)所示,大多数卷积网络架构在减少空间维度(spatial dimension)的同时增加通道维度(channel dimension)。例如,在ResNet50中,一个起始层(stem layer)首先将图像的空间尺寸减少到56×56。然后,通过多个层块(layer blocks),使用步长(stride)为 2 的卷积层来将空间维度减半,并将通道维度加倍。

使用步长为2的卷积层进行空间尺寸减少的方法在最近的架构中非常常见。

        为了分析在卷积架构中是否存在空间减少层对性能的影响,研究者们进行了一项实验。他们选择了在ImageNet上广泛使用的ResNet50作为实验的网络架构,并在没有复杂训练技巧的情况下进行了100个周期的训练。

  • ResNet风格:直接使用ResNet50的原始架构作为基准。
  • ViT风格维度:为了模拟ViT(视觉Transformer)的维度变化,研究者们使用了ViT的起始层来将特征的空间维度减少到14×14,同时在起始层中减少空间信息的损失。此外,他们还移除了ResNet中的空间减少层,以保持所有层的初始特征维度与ViT一致。

        研究者们通过改变ResNet的通道大小来测量不同尺寸的网络性能。这样他们可以比较在保持空间维度不变(ViT风格)和采用传统的空间维度减少方法(ResNet风格)时,网络性能的差异。


标签:Transformer,池化层,卷积,layer,ResNet,空间,ViT,维度
From: https://blog.csdn.net/qq_47896523/article/details/140418908

相关文章

  • ADAPT: 动作-觉察的驾驶字幕Transformer
    23年2月份来自中科院自动化所和国内多所高校的一篇自动驾驶论文“ADAPT:Action-awareDrivingCaptionTransformer“。最近Wayve公布的开环驾驶模型LinGO-1,思路有些类似。端到端自动驾驶在交通运输行业具有巨大的影响力。然而,自动决策过程缺乏透明度和可解释性,阻碍了实践......
  • 【CEEMDAN-VMD-Transformer-LSTM】双重分解+Transformer-LSTM多变量时序预测
    双重分解+Transformer-LSTM是一种用于多变量时序预测的方法,结合了双重分解(CEEMDAN-VMD)、Transformer和LSTM模型。这种方法可以用于分析和预测具有多个变量的时间序列数据。下面是一个更详细的步骤,演示如何使用双重分解+Transformer-LSTM进行多变量时序预测:数据准备:收集多......
  • 大语言模型系列 - Transformer:从基础原理到应用
    文章目录大语言模型系列-Transformer:从基础原理到应用一、Transformer简介二、Transformer的基础原理自注意力机制多头注意力机制位置编码残差连接和层归一化三、Transformer的架构编码器解码器四、Transformer的应用场景机器翻译文本生成文本分类问答系统五、Trans......
  • openlayers 3d 地图 非三维 立体地图 行政区划裁剪 地图背景
    这是实践效果如果没有任何基础就看这个专栏:http://t.csdnimg.cn/qB4w0这个专栏里有从最简单的地图到复杂地图的示例最终效果:线上示例代码:想要做这个效果如果你的行政区划编辑点较多可能会有卡顿感如果出现卡顿感需要将边界点相应减少一些这样地图边界会相对......
  • 如何从浅入深理解 Transformer
    如何从浅入深理解 Transformer附赠自动驾驶最全的学习资料和量产经验:链接本回答分为三个部分:Transformer,Attention,论文学习顺序按照排列顺序,不过还是看个人自由。如果对attention了解,就可以跳过。AttentionAttention based model 是什么,它解决了什么问题?深度学......
  • windows11 使用pytorch transformers运行Qwen2-0.5B-Instruct模型 (基于anaconda pyth
    吾名爱妃,性好静亦好动。好编程,常沉浸于代码之世界,思维纵横,力求逻辑之严密,算法之精妙。亦爱篮球,驰骋球场,尽享挥洒汗水之乐。且喜跑步,尤钟马拉松,长途奔袭,考验耐力与毅力,每有所进,心甚喜之。 吾以为,编程似布阵,算法如谋略,需精心筹谋,方可成就佳作。篮球乃团队之艺,协作共进,方显力......
  • Transformers Pipeline + Mistral-7B-Instruct-v0.x修改Chat Template
    在使用https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.3提供的Generatewithtransformers代码进行测试时,产生以下报错:fromtransformersimportpipelinemessages=[{"role":"system","content":"Youareapiratechatbotwhoalw......
  • 新版网页无插件H.265播放器EasyPlayer.js如何测试demo视频?
    H5无插件流媒体播放器EasyPlayer属于一款高效、精炼、稳定且免费的流媒体播放器,可支持多种流媒体协议播放,支持H.264与H.265编码格式,性能稳定、播放流畅;支持WebSocket-FLV、HTTP-FLV,HLS(m3u8)、WebRTC、WS-FMP4、HTTP-FMP4等格式的视频流,并且已实现网页端实时录像、在iOS上实现低延时......
  • 一起学Hugging Face Transformers(18) - 使用Transformers 库实现命名实体识别(NER)
    文章目录前言1.环境配置2.加载模型和分词器3.创建命名实体识别管道4.输入文本进行识别5.完整代码示例6.结果解释总结前言命名实体识别(NER)是自然语言处理(NLP)中的一种任务,旨在识别文本中具有特定意义的实体,例如人名、地名、组织名等。NER在信息抽取、文本分析......
  • 数据结构与算法 —— Transformers之Pipeline
    Transformers之Pipeline是HuggingFaceTransformers库中提供的一种使用预训练模型进行推理的极简方式。这些Pipeline对象从库中抽象出大部分复杂代码,为多项任务(如命名实体识别、情感分析、特征提取和问答等)提供了简单的API。以下是对Transformers之Pipeline的详细介绍:一、......