| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> NeurIPS 22|Sequencer:完美超越Swin与ConvNeXt等前沿算法 -> 正文阅读 |
|
[人工智能]NeurIPS 22|Sequencer:完美超越Swin与ConvNeXt等前沿算法 |
论文链接:https://arxiv.org/abs/2205.01972
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 全新范式2.1 LSTM的原理LSTM 是一种特殊的 递归神经网络 (RNN), 用于建模序列的长期依赖关系。Plain LSTM 有一 个输入门, 它控制存储输入, 一个控制前单元状态?的遗忘的遗忘门??, 以及一个输出门??, 它控制当前单元状态???的单元输出??。普通 LSTM 的公式如下: 其中σ是logistic sigmoid function,是Hadamard product。 BiLSTM 对于预期相互依赖的序列是有利的。一个 BiLSTM 由2个普通的 LSTM 组成。设?为输 入,??为反向重排。?和??分别是用相应的 LSTM 处理?和?得到的输出。设??为按原顺序重新排列的输出, BiLSTM 的输出如下: ?假设?和??具有相同的隐藏维数D, 这是 BiLSTM 的超参数。因此, 向量??的维数为二 维。 2.2 Sequencer架构1、架构总览本文用LSTM取代Self-Attention层:提出了一种新的架构,旨在节省内存和参数,同时具有学习远程建模的能力。 图2a显示了Sequencer体系结构的整体结构。Sequencer架构以不重叠的Patches作为输入,并将它们投影到特征图上。Sequencer Block是Sequencer的核心组件,由以下子组件组成:
当使用普通BiLSTM层时,Sequencer Block称为Vanilla Sequencer block;当使用BiLSTM2D层作为Sequencer Block时,Sequencer Block称为Sequencer2D block。最后一个块的输出通过全局平均池化层送到线性分类器。 2、BiLSTM2D layer作者提出了BiLSTM2D层作为一种有效Mixing二维空间信息的技术。它有2个普通的BiLSTM,一个垂直的BiLSTM和一个水平的BiLSTM。 对于输入 被视为一组序列, 其中 H 是垂直方向上的 Toke? n 数量, W是水平方向上的序列数量,? C 是通道维度。所有序列 {:,w,:} 都输入到垂直BiLSTM中, 共享权重和隐藏维度D: 用与上述相似的方式,? 被视为一组序列, 所有序列?被输入到 水平BiLSTM 中, 共享权重和隐藏维度D: 然后将??合并到?中, 同时将??合并到??。最后送入FC层。这些流程制定如下: 伪代码如下: 3、架构变体为了比较由Sequencer 2D组成的不同深度的模型,本文准备了3种不同深度的模型:18、24和36。模型的名称分别为Sequencer2D-S、Sequencer2D-M和Sequencer2D-L。隐藏维度设置为D=C/4。 3 实验3.1 ImageNet-1K3.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非常不同。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 20:35:36- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |