Sequencer: Deep LSTM for Image Classification(LSTM在CV领域杀出一条血路,完美超越Swin与ConvNeXt等前沿算法)

news/2024/7/23 21:36:07 标签: lstm, 算法, 人工智能, 目标检测

LSTM在CV领域杀出一条血路,完美超越Swin与ConvNeXt等前沿算法

在这里插入图片描述
论文链接:https://download.csdn.net/download/weixin_38353277/85298208

代码链接:待开放

在最近的计算机视觉研究中,ViT的出现迅速改变了各种架构设计工作:ViT利用自然语言处理中的Self-Attention实现了最先进的图像分类性能,MLP-Mixer利用简单的多层感知器也实现了具有竞争性的结果。相比之下,一些研究也表明,精心设计的卷积神经网络(CNNs)可以实现媲美ViT的先进性能,而无需借助这些新想法。在这种背景下,人们对什么是适合于计算机视觉的归纳偏差越来越感兴趣。

在这里,作者提出Sequencer,一个全新且具有竞争性的架构,可以替代ViT,为分类问题提供了一个全新的视角。与ViT不同,Sequencer使用LSTM(而不是Self-Attention)对远程依赖关系进行建模。

作者还提出了一个二维的Sequencer模块,其中一个LSTM被分解成垂直和水平的LSTM,以提高性能。

虽然结构简单,但是经过实验表明,Sequencer的表现令人印象深刻:Sequencer2D-L在ImageNet-1K上仅使用54M参数,实现84.6%的top-1精度。不仅如此,作者还证明了它在双分辨率波段上具有良好的可迁移性和稳健性。

背景

Vision Transformer成功的原因被认为是由于Self-Attention建模远程依赖的能力。然而,Self-Attention对于Transformer执行视觉任务的有效性有多重要还不清楚。事实上,只基于多层感知器(MLPs)的MLP-Mixer被提议作为ViTs的一个有吸引力的替代方案。

此外,一些研究表明,精心设计的CNN在计算机视觉方面仍有足够的竞争力。因此,确定哪些架构设计对计算机视觉任务具有内在的有效性是当前研究的一大热点。本文通过提出一种新颖的、具有竞争力的替代方案,为这一问题提供了一个新的视角。

本文提出了Sequencer体系结构,使用LSTM(而不是Self-Attention)进行序列建模。Sequencer的宏观架构设计遵循ViTs,迭代地应用Token Mixing和Channel Mixing,但Self-Attention被基于LSTMs的Self-Attention层取代。特别是,Sequencer使用BiLSTM作为一个构建块。简单的BiLSTM表现出一定的性能水平,而Sequencer可以通过使用类似Vision Permutator(ViP)的思想进一步提高。ViP的关键思想是平行处理垂直轴和水平轴。

作者还引入了2个BiLSTM,用于并行处理上/下和左/右方向。这种修改提高了Sequencer的效率和准确性,因为这种结构减少了序列的长度,并产生一个有空间意义的感受野。

在ImageNet-1K数据集上进行预训练时,新的Sequencer架构的性能优于类似规模的Swin和ConvNeXt等高级架构。它还优于其他无注意力和无CNN的架构,如MLP-Mixer和GFNet,使Sequencer在视觉任务中的Self-Attention具有吸引力的新替代方案。

值得注意的是,Sequencer还具有很好的领域稳健性以及尺度稳定性,即使在推理过程中输入的分辨率增加了一倍,也能强烈防止精度退化。此外,对高分辨率数据进行微调的Sequencer可以达到比Swin-B更高的精度。在峰值内存上,在某些情况下,Sequencer往往比ViTs和cnn更经济。虽然由于递归,Sequencer需要比其他模型更多的FLOPs,但更高的分辨率提高了峰值内存的相对效率,提高了在高分辨率环境下的精度/成本权衡。因此,Sequencer作为一种实用的图像识别模型也具有吸引人的特性。

全新范式

2.1 LSTM的原理

LSTM是一种特殊的递归神经网络(RNN),用于建模序列的长期依赖关系。Plain LSTM有一个输入门,它控制存储输入,一个控制前单元状态的遗忘的遗忘门,以及一个输出门,它控制当前单元状态的单元输出。普通LSTM的公式如下:

在这里插入图片描述

2.2 Sequencer架构

1、架构总览
本文用LSTM取代Self-Attention层:提出了一种新的架构,旨在节省内存和参数,同时具有学习远程建模的能力。
在这里插入图片描述
图2a显示了Sequencer体系结构的整体结构。Sequencer架构以不重叠的Patches作为输入,并将它们投影到特征图上。Sequencer Block是Sequencer的核心组件,由以下子组件组成:

BiLSTM层可以经济、全局地Mixing空间信息

MLP用于Channel Mixing

当使用普通BiLSTM层时,Sequencer Block称为Vanilla Sequencer block;当使用BiLSTM2D层作为Sequencer Block时,Sequencer Block称为Sequencer2D block。最后一个块的输出通过全局平均池化层送到线性分类器。

在这里插入图片描述

伪代码如下:

在这里插入图片描述
3、架构变体
为了比较由Sequencer 2D组成的不同深度的模型,本文准备了3种不同深度的模型:18、24和36。模型的名称分别为Sequencer2D-S、Sequencer2D-M和Sequencer2D-L。隐藏维度设置为D=C/4。
在这里插入图片描述

在这里插入图片描述

3实验

3.1 ImageNet-1K

在这里插入图片描述

3.2 迁移学习在这里插入图片描述

3.3 稳健性实验

在这里插入图片描述

3.4 可视化分析

一般来说,CNN具有局部化的、逐层扩展的感受野,而没有移动窗口的ViT捕获的是全局依赖。相比之下,作者Sequencer不清楚信息是如何处理的。因此作者计算了ResNet-50、DeiT-S和Sequencer2D-S的ERF,如图5所示。

在这里插入图片描述
Sequencer2D-S的ERFs在所有层中形成十字形。这一趋势使其不同于DeiT-S和ResNet-50等著名模型。更值得注意的是,在浅层中,Sequencer2D-S比ResNet-50的ERF更宽,尽管没有DeiT那么宽。这一观察结果证实了Sequencer中的lstm可以像预期的那样建模长期依赖关系,并且Sequencer可以识别足够长的垂直或水平区域。因此,可以认为,Sequencer识别图像的方式与CNN或ViT非常不同。


http://www.niftyadmin.cn/n/1715083.html

相关文章

方法的运用_运用泛光灯聚光灯的方法

?点击险商关注我们,学习更多赢销知识?保险营销训练系列保险人成长智库于文博|编著《销售圣经》运用泛光灯这种方法要求开始时先提一些可以泛泛而谈的开放性问题,然后再问比较直接的封闭性问题。你可以根据你的理解水平或需要全部采用或部分…

c语言整形数组长度_C语言数组传入函数获取数组长度的方法

在写C语言函数时,我们总想去把数组传入函数中( 例如:int function(int a[]) ),并得到其长度,事实上,本人经过多方面努力验证,发现在函数内获取其长度做不到的,当我们传入…

Visual Attention Network(VAN)算法分析

Visual Attention Network(VAN)算法分析 VAN 提出了一种新的大核注意力large kernal attention(LKA)模型, LKA吸收了卷积和自我注意的优点,包括局部结构信息、长程依赖性和适应性。同时,避免了…

mybatis 游标查询_8个SQL查询效率优化原则

点击上方“Java秃头哥”,选择“星标”每天分享优质干货1、对查询进行优化,应尽可能避免全表扫描首先应考虑在 where 及 order by 涉及的列上建立索引。下面我们来以一个表中177条数据比较一下,全表扫描与建立索引之后性能的一个比较.1.1 全表查询1.2 建立索引查询1.…

Labelme json 批量转datasets 解决默认显示不同色和id问题,包含五个结果(img_png,label_png,label_viz_png,info,names)

labelme json 转为,datasets: 包含五个结果(img_png,label_png,label_viz_png,info,names)经常会出现label.png 相同类别显示颜色不同,且label_viz.png显示id也不同&…

eventsource前台怎么接收一个对象数据_前台机器人通过Orchestrator与人工交互讲解...

一、简述二、实现1. 创建工程2. 创建&提交人工交互表单3. 接收表单&恢复流程4. 表单结果处理三、测试四、总结与代码获取一、简述很多流程是有人值守类型的,这些流程可能会在运行中途停下来,由人工干预来完成一部分工作。在继续执行任务之前&…

h5 vr效果_测试类H5受用户欢迎的3点原因

测试H5,顾名思义就是通过某种测试题,题目可以是文字信息、图片或者其他种类的信息,来测试用户某种方面的品质的H5。许多商家也会通过测试H5来做营销推广活动。那么,为什么测试H5这么受欢迎呢?它有哪些优点呢&#xff1…

python一行可以写几条语句_Python3 中,一行可以书写多个语句,一个语句可以分成多行书写...

YARN基本框架介绍YARN基本框架介绍 转载请注明出处:http://www.cnblogs.com/BYRans/ 在之前的博客中介绍了YARN对Hadoop 1.0的完善.本 ...embed标签loop=true背景音乐无法循环在html网页中加入背景音乐并设置为循环播放.一开始用标签,设置loop"true", 但是…