【PaperReading】Stand-Alone Self-Attention in Vision Models

2024-02-26 01:40

本文主要是介绍【PaperReading】Stand-Alone Self-Attention in Vision Models,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

论文链接:https://arxiv.org/abs/1906.05909

代码:https://github.com/leaderj1001/Stand-Alone-Self-Attention


启示

1. 提出了一种代替空间卷积的操作——self attention,可以有效结合self attention操作和原来的空间卷积操作,在网络的初期使用原来的空间卷积操作,而后面和各个head使用self attention,从而提高性能,减少计算量。

2. 目前网络的整体架构还是采用的原来的,如果专门为self attention设计更加合适的网络结构或许还能进一步提升性能。

3. 在有关位置信息的一些模块中,相对位置信息> 绝对位置信息 > 没有位置信息

局限

1. 尽管基于attention操作的网络的训练效率和计算效率要比原来的要高,但是实际运行时的时间(wall-clock time.)要比原来的慢,作者说是对attention操作的优化不够好,缺少硬件加速。

2. attention的操作看起来比普通空间卷积要复杂,不太符合"大道至简"的思想。

下面是论文内容:

Abstract

        主要的贡献是提出使用 “自注意力操作”代替一般的空间卷积操作,以弥补空间卷积无法有效捕捉长距离信息间的关系的不足,同时使用的计算量和参数量更少。

解决的问题

在分类、检测、分割等任务中,现在有很多工作引入 注意力机制(attention)来提升所提取特征对空间尺度上信息的获取能力,但大部分工作都是在网络的后期增添精心设置的注意力模块用以提取空间信息丰富的特征,然后再与之前的特征进行融合。如,基于通道的注意力机制Squeeze-and-Excite,还有基于空间的注意力机制No local CCNet等。这些方法有个特点,就是用全局注意力层作为卷积的附加模块,没有从卷积操作的局限性上进行根本的改进,另外还有一个限制,就是因为需要关注输入的所有位置,所以要求输入的featuremap的空间尺寸比较小,否则计算成本太大。

方法

这篇论文直接将网络中最基础的“空间卷积操作”(除了1x1卷积意外的卷积)替换为“自注意力操作”,而网络的大体结构不改变。

普通的3x3空间卷积操作:

 

本文提出的自注意力(Self attention)操作:

加入相对位置信息:

目前的self attention平等对待中心像素邻近的其他像素点,没有利用位置信息,因此文中进一步通过用嵌入向量来表示相对位置,把位置信息也添加到了自注意力操作中。

这里作者通过实验也说明了 相对位置信息> 绝对位置信息 > 没有位置信息

文中举例,若输入输出的feature map 的channel都是128,那么窗口为3x3的普通空间卷积的计算量和19x19的self attention差不错。

需要注意的是对于网络中的stem部分,也就是最开始的一部分卷积操作,self attention的性能不如普通卷积,这是因为最开始的部分网络需要提取像边缘之类的初始特征,而输入的特征通道数较少,content信息少,主要的是空间信息。所以又提出了个spatially aware 的attention 模块代替使用普通卷积的stem。

实验结果

ImageNet 分类结果:

COCO 检测结果:

 

这篇关于【PaperReading】Stand-Alone Self-Attention in Vision Models的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/747338

相关文章

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

什么是 Flash Attention

Flash Attention 是 由 Tri Dao 和 Dan Fu 等人在2022年的论文 FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness 中 提出的, 论文可以从 https://arxiv.org/abs/2205.14135 页面下载,点击 View PDF 就可以下载。 下面我

论文翻译:ICLR-2024 PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS

PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS https://openreview.net/forum?id=KS8mIvetg2 验证测试集污染在黑盒语言模型中 文章目录 验证测试集污染在黑盒语言模型中摘要1 引言 摘要 大型语言模型是在大量互联网数据上训练的,这引发了人们的担忧和猜测,即它们可能已

速通GPT-3:Language Models are Few-Shot Learners全文解读

文章目录 论文实验总览1. 任务设置与测试策略2. 任务类别3. 关键实验结果4. 数据污染与实验局限性5. 总结与贡献 Abstract1. 概括2. 具体分析3. 摘要全文翻译4. 为什么不需要梯度更新或微调⭐ Introduction1. 概括2. 具体分析3. 进一步分析 Approach1. 概括2. 具体分析3. 进一步分析 Results1. 概括2. 具体分析2.1 语言模型

图神经网络框架DGL实现Graph Attention Network (GAT)笔记

参考列表: [1]深入理解图注意力机制 [2]DGL官方学习教程一 ——基础操作&消息传递 [3]Cora数据集介绍+python读取 一、DGL实现GAT分类机器学习论文 程序摘自[1],该程序实现了利用图神经网络框架——DGL,实现图注意网络(GAT)。应用demo为对机器学习论文数据集——Cora,对论文所属类别进行分类。(下图摘自[3]) 1. 程序 Ubuntu:18.04

复盘高质量Vision Pro沉浸式视频的制作流程与工具

在探索虚拟现实(VR)和增强现实(AR)技术的过程中,高质量的沉浸式体验是至关重要的。最近,国外开发者Dreamwieber在其作品中展示了如何使用一系列工具和技术,创造出令人震撼的Vision Pro沉浸式视频。本文将详细复盘Dreamwieber的工作流,希望能为从事相关领域的开发者们提供有价值的参考。 一、步骤和工作流 构建基础原型 目的:快速搭建起一个基本的模型,以便在设备

[论文笔记]Making Large Language Models A Better Foundation For Dense Retrieval

引言 今天带来北京智源研究院(BAAI)团队带来的一篇关于如何微调LLM变成密集检索器的论文笔记——Making Large Language Models A Better Foundation For Dense Retrieval。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 密集检索需要学习具有区分性的文本嵌入,以表示查询和文档之间的语义关系。考虑到大语言模

时序预测|变分模态分解-双向时域卷积-双向门控单元-注意力机制多变量时间序列预测VMD-BiTCN-BiGRU-Attention

时序预测|变分模态分解-双向时域卷积-双向门控单元-注意力机制多变量时间序列预测VMD-BiTCN-BiGRU-Attention 文章目录 一、基本原理1. 变分模态分解(VMD)2. 双向时域卷积(BiTCN)3. 双向门控单元(BiGRU)4. 注意力机制(Attention)总结流程 二、实验结果三、核心代码四、代码获取五、总结 时序预测|变分模态分解-双向时域卷积

一键部署Phi 3.5 mini+vision!多模态阅读基准数据集MRR-Benchmark上线,含550个问答对

小模型又又又卷起来了!微软开源三连发!一口气发布了 Phi 3.5 针对不同任务的 3 个模型,并在多个基准上超越了其他同类模型。 其中 Phi-3.5-mini-instruct 专为内存或算力受限的设备推出,小参数也能展现出强大的推理能力,代码生成、多语言理解等任务信手拈来。而 Phi-3.5-vision-instruct 则是多模态领域的翘楚,能同时处理文本和视觉信息,图像理解、视频摘要

ModuleNotFoundError: No module named ‘diffusers.models.dual_transformer_2d‘解决方法

Python应用运行报错,部分错误信息如下: Traceback (most recent call last): File “\pipelines_ootd\unet_vton_2d_blocks.py”, line 29, in from diffusers.models.dual_transformer_2d import DualTransformer2DModel ModuleNotF