NeurIPS 2022 | CV全新范式!LSTM在CV领域杀出一条血路!Sequencer:超越Swin、ConvNeXt等...

CNN、Transformer、MLP等结构最近都在CV任务上大放异彩,各种变体也层出不穷。在这种背景下,研究人员对于到底是哪一种结构更适合CV任务的问题更为的感兴趣。而除了这三种结构外,RNN的结构在图像处理领域少有提及,因此,本文中探究了RNN的思想应用于图像处理领域的效果,为图像处理任务提供了一种新的结构设计思路。

具体来说,作者提出了Sequencer,一种宏观上与ViT相似,但是使用BiLSTM代替多头注意力层来建模远距离关系的更少参数量(仅需54M参数)实现具有竞争力性能(IN-1K 84.6%的top-1精度)的全新框架。此外,该框架还具有对于输入图像分辨率改变但是性能变换不明显的稳健性。

本文转载自:阿柴的算法学习日记

论文地址:https://arxiv.org/abs/2205.01972

一、背景介绍

目前,深度学习中进行图像处理的模型框架主要分为三种:

1)卷积神经网络(CNN):这个不必多说,从2012年CNN展现出它强大的性能后便成为了学术界以及工业界的普遍解决方案;

2)Transformer:最新两年兴起,并在各种CV任务上展现了超越CNN的性能。但是由于其庞大的复杂度,目前在工业界还没有像CNN使用地如此普遍;代表解决方案有:ViT(见本文最后推荐阅读);

3)多层感知机(MLP):另一个结构设计方向,只使用MLP就能实现具有竞争力的性能,代表解决方案:Mlp-Mixer(https://arxiv.org/abs/2105.01601v4)。

到底以上哪一种解决方案更适合CV任务没有定论。而本文中又为我们提供了另一种解决方案,即:使用RNN的思想来建模图像处理任务。

我们首先来简要了解一下RNN,并附带介绍其最为普遍的一种变体LSTM:

bdc7ac426625f835c14fe8d4a6076070.png

6164dfa547ba5a6618ba3eb402417bda.png

但是LSTM还是只建模了一个输入序列从前到后的依赖关系,输入序列从后到前的关系没有建模。因此,一般使用BiLSTM来同时建模前后依赖关系。方法也很简单,就是用两个LSTM模型,其输入序列的输入顺序分别为从前到后与从后到前。得到输出后,将两个模型每一个对应位置的输出表示concat起来:

c44c34a0f357d54f1ed12ddcb3a8ae37.png

下面我们来看一下作者是怎么基于BiLSTM来设计模型的

二、Sequencer

总体模型框架如图1所示:

34fee488d6ad4e7d0f585fd37beb81ba.png

图1 Sequencer总体框架示意图

可以看到总体上,Sequencer的结构与ViT宏观上是相似的。不同的地方在于Transformer的替换。如图1(c)所示,Transformer block的替换方案有两种,如果直接用朴素的BiLSTM层替换的话,作者称之为Vanilla Sequencer block。如果用本文中所提出的如图(b)所示的BiLSTM2D layer的话,作者称之为Sequencer2D block。

到这里,其实本文的思想也就很明显了,作者想用rnn的思想来代替自注意力机制建模长距离的依赖关系。对于长距离依赖关系的建模,相比之下,rnn参数更少,内存消耗也更少。但是,显而易见的是自注意力机制对于长距离依赖关系的建模是更好的。不过,我们也并不是需要建模所有的长距离依赖关系的,局部的依赖性才是最为重要的,这也近来来对Transfomer结构进行简化、高效化的指导思想。因此,此处用rnn替换Transformer block也可以视为Transformer的高效化尝试之一。

下面来看看BiLSTM2D layer的具体实施方式:

其实很简单,对于输入f740d43559e3c0b3cc0eac12afeb90d1.png而言,垂直方向上可以产生 H 个长度为W的输入序列f34a2ec2493372a4eaabdd27a48dcded.jpeg,同样,水平方向上可以产生 W 个长度为 H 的输入序列。建模两个BiLSTM模型(其中每一个LSTM隐层向量的size为D)分别处理每一个水平序列与垂直序列就可以得到BiLSTM对于输入X的编码结果:

00e7f62aa4852540d1867ef31e5c24b8.png

7c331283ec0d9bc4fb7540e9f39bc4af.png

8c153003fb962af4acc5b4b253ba7705.png

其中,FC是一个全联接层,负责把 size 为 4D 的的向量变换为 C。也充当了 Transformer block 中的 MLP 的作用。

BiLSTM2D layer的pytorch形式伪代码如下:

e7f4cba6bccd35c4148f94dca7db3e65.png

根据BiLSTM2D layer层数的不同,Sequencer有几种变体:Sequencer2D-S(18层)、Sequencer2D-M(24层)和Sequencer2D-L(36层)。具体结构如下:

865af79a88381719e6164b9695219836.png

三、实验

ImageNet-1K top1 acc

d6735db8f0344edea673771afc990b95.png

迁徙学习

bf75d6f157933f34592b4eca1a3c9498.png

分辨率变化的稳健性

1)加噪声:

0772305ed610ae4aec178776f2b3cdc6.png

2)分辨率改变:

49860f0a82a34bd205cffbbead8719ad.png

感受野

60c7533ba698baf53d7059a06fc6ebac.png

CNN的感受野逐层扩展,在最初时感受野很小,Transformer则是在一开始就拥有全局感受野。Sequencer的感受野在初始阶段比CNN要大,最后形成的感受野很奇特,是一个十字形,这也符合BiLSTM2D laye的结构设计。以上可视化实际上证明了Sequencer虽然没有那么强调全局的关系,但是也能很好的进行建模,尤其是建模与当前区域处于水平和竖直方向上的像素之间的关系,这符合之前提到的简化Transformer的思想。

Sequencer论文PDF下载

后台回复:Sequencer,即可下载上面论文

CVPR 2022论文和代码下载

 
 

后台回复:CVPR2022,即可下载CVPR 2022论文和代码开源的论文合集

后台回复:Transformer综述,即可下载最新的3篇Transformer综述PDF

目标检测和Transformer交流群成立
扫描下方二维码,或者添加微信:CVer222,即可添加CVer小助手微信,便可申请加入CVer-目标检测或者Transformer 微信交流群。另外其他垂直方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch、TensorFlow和Transformer等。
一定要备注:研究方向+地点+学校/公司+昵称(如目标检测或者Transformer+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群

▲扫码或加微信号: CVer222,进交流群
CVer学术交流群(知识星球)来了!想要了解最新最快最好的CV/DL/ML论文速递、优质开源项目、学习教程和实战训练等资料,欢迎扫描下方二维码,加入CVer学术交流群,已汇集数千人!

▲扫码进群
▲点击上方卡片,关注CVer公众号
 
 
整理不易,请点赞和在看
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值