NLNet、GCNet、RTNet三种多头注意力网络的对比与分析

news2024/10/6 1:40:57

目录

一、中心思想

二、网络结构的异同点

三、网络结构的改进

3.1 GCNet的改进

3.2 RTNet的改进

四、总结


一、中心思想

三种网络最终目的都是为了捕获远程依赖关系或是全局上下文信息以增强目标检测或是目标分割的效果。

NLNet:卷积运算只能一次处理一个局部信息,而且伴随着许多的局限。NLNet是受传统的非局部均值滤波的启发,希望能够借助非局部操作捕获远程依赖关系以此来增强对同类像素的注意力。

GCNet:GCNet通过实验证明NLNet增强的注意力特征与query位置无关,在此基础上对NLNet进行了大刀阔斧的删减和修改,在不降低网络功效的情况下减少网络的计算消耗。此外,GCNet参考SENet,将模型框架划分为全局注意力池化模块、bottleneck transform模块和特征聚合模块,本质上还是为减少计算消耗,但是性能上优于SENet和NLNet。(笔者认为GCNetNLNet已经是两种产物了,GCNet抛弃了非局部均值滤波的思想。)

RTNetRTNet的全局transformer模块GC模块的变种,与GCNet不同的是GC模块是靠一个通道注意力向量做全局注意力池化获取全局注意力特征,而RTNet是靠一个空间注意力向量。

二、网络结构的异同点

如下图所示分别为NLNet、GCNet和RTNet

               

NLNet与GCNet:NLNet与GCNet最大的不同就在于查询头,GCNet抛弃了查询头的设置,也就意味着抛弃了非局部均值滤波的思想,GCNet不再计算每个像素值(区域)与与其他像素点(区域)之间的相似度,也就放弃了去捕获远程依赖关系,转而去通过注意力池化获取全局上下文特征(这个过程便是注意力池化,特征图被池化为了一个通道向量),此外效仿SENet,增加了一个bottleneck transform模块 (因为简化后的NL模块与SE模块实在太像了,满足与SE模块融合的要求,融合后能够减少计算消耗)。

GCNet和RTNet:从结构上来看RTNet中GTB模块更像NL模块,实际上GTB模块也没有履行非局部均值滤波的思想,与GCNet一样,GTB模块也是转而去通过注意力池化获取全局上下文特征,只不过GTB模块是先通过在通道方向上的融合得到一个空间注意力向量,再通过在空间方向上的融合得到一个通道注意力向量本质上还是注意力池化获取全局上下文特征

三、网络结构的改进

从cv领域发展来看,NLNet在注意力时代早期的影响是深远的,以NLNet为衍生诞生了一批优秀的网络模型如GCNet、DANet,在GCNet的基础上不满于只获取通道注意力衍生出了RTNet的GTB模块

3.1 GCNet的改进

仔细观察的话,可以发现GC模块和SE模块的transform部分基本一致,最大的不同就在于池化部分(也就是context modeling),SE模块采用全局平均化池,而GC模块采用的是注意力池化(采用1x1卷积 W_k ​和softmax函数获得注意力权重),这一步看起来最终获取的向量是一样的,实际上GC模块这样做是经过严格的公式推敲而来的,公式如下,

(红色部分便是注意力池化,由NL模块定义推导而来)。

 这一步是GC模块区别于SE模块和NL模块的关键,GCNet最大改进之处。

3.2 RTNet的改进

RTNet中GTB模块的改进很明显,相比与GC模块,GTB模块还多融合了一个空间注意向量。GTB模块是先通过在通道方向上的融合得到一个空间注意力向量,再通过在空间方向上的融合得到一个通道注意力向量,融合从不同角度提取的注意力向量有助于提高特征表现力。(参考CBAM模块。)

四、总结

NLNet、GCNet和RTNet都是十分优秀的网络,但是很明显GCNet和RTNet都抛弃了非局部均值滤波的思想,基于非局部均值滤波获取远程依赖关系的网络是否还能有更进一步的改进呢?此外,作为最新的cv,RTNet采用多任务和交叉注意的策略,这是现今比较流行的医学图像处理策略。GCNet的成功也表明在理论上的公式推导应用于网络构建上是十分重要的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/942251.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C#,《小白学程序》第七课:列表(List)应用之一“编制高铁车次信息表”

1 文本格式 /// <summary> /// 车站信息类 class /// </summary> public class Station { /// <summary> /// 编号 /// </summary> public int Id { get; set; } 0; /// <summary> /// 车站名 /// </summary>…

17.CSS发光按钮悬停特效

效果 源码 <!DOCTYPE html> <html> <head><title>CSS Modern Button</title><link rel="stylesheet" type="text/css" href="style.css"> </head> <body><a href="#" style=&quo…

【Go 基础篇】探索Go语言中Map的神奇操作

嗨&#xff0c;Go语言的学习者们&#xff01;在编程世界中&#xff0c;Map是一个强大而又有趣的工具&#xff0c;它可以帮助我们高效地存储和操作键值对数据。Map就像是一本字典&#xff0c;可以让我们根据关键字&#xff08;键&#xff09;快速找到对应的信息&#xff08;值&a…

Windows版本Docker安装详细步骤

文章目录 下载地址安装异常处理docker desktop requires a newer wsl 下载地址 https://desktop.docker.com/win/stable/Docker%20Desktop%20Installer.exe 安装 双击下载的文件Docker Desktop Installer.exe进行安装 点击OK 开始安装 安装完成点击Close and restart&…

JavaScript—面向对象、作用域

C#&#xff1a;从类继承 js&#xff1a;从对象继承 什么叫继承&#xff1f; 模板&#xff08;类&#xff09; 原型继承&#xff08;实体&#xff09; 有一个对象存在&#xff0c;构造函数设置原型为这个对象 创建出来的对象就继承与这个对象&#xff08;从对象那里继承&am…

ElasticSearch基础知识汇总

文章目录 前言一、认识ElasticSearch1.正向索引和倒排索引2. MySql与ElasticSearc3.IK分词器 二、ES索引库操作1.mapping映射属性2.索引库的CRUD 三、ES文档库操作 前言 Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎&#xff0c;基…

Kali Linux进行移动应用安全测试

使用Kali Linux进行移动应用安全测试是一项关键任务&#xff0c;可以帮助识别和修复移动应用中的安全漏洞。以下是一个基本的步骤指南&#xff0c;展示如何在Kali Linux中进行移动应用安全测试。 步骤&#xff1a; 准备环境&#xff1a; 确保 已经安装了Kali Linux&#xff0c…

开箱报告,Simulink Toolbox库模块使用指南(五)——S-Fuction模块(C MEX S-Function)

文章目录 前言 C MEX S-Function 算法原理 原始信号创建 编写S函数 仿真验证 Tips 分析和应用 总结 前言 见《开箱报告&#xff0c;Simulink Toolbox库模块使用指南&#xff08;一&#xff09;——powergui模块》 见《开箱报告&#xff0c;Simulink Toolbox库模块使用…

fastjson利用templatesImpl链

fastjson1.2.24 环境&#xff1a; pom.xml&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLoc…

在 Python 中逐步构建 DCF(贴现流)估值

Building A DCF Valuation in Python, Step by Step | by Roi Polanitzer | Medium 说明 这是一个真实的&#xff0c;以色列国土内的公司业务评估案例。在本文中&#xff0c;我将演示如何使用python中的DCF方法对以色列系统和应用程序公司进行业务评估。因为存在许多业务术语&a…

JVM 访问对象的两种方式

Java 程序会通过栈上的 reference 数据来操作堆上的具体对象。由于 reference 类型在《Java 虚拟机规范》里面只规定了它是一个指向对象的引用&#xff0c;并没有定义这个引用应该通过什么方式去定位、访问到堆中对象的具体位置&#xff0c;所以对象访问方式也是由虚拟机实现而…

音视频技术开发周刊 | 308

每周一期&#xff0c;纵览音视频技术领域的干货。 新闻投稿&#xff1a;contributelivevideostack.com。 OpenAI首席科学家最新访谈&#xff1a;对模型创业两点建议、安全与对齐、Transformer够好吗&#xff1f; OpenAI首席科学家Ilya Sutskever最近和他的朋友Sven Strohband进…

算法设计 || 第6题:基于最小成本检索的分支界限算法求解15谜问题

用基于最小成本检索的分支界限算法求解15谜问题 要求利用成本估计函数C^(X)&#xff0c; C^(X)为节点x排列中不在其目标位置上的牌的总张数&#xff08;不包括空格牌&#xff09;。 现定义空格牌的上下左右四种活动&#xff0c; 按四种活动分别生成其状态空间树&#xff0c;…

JVM,JRE和JDK的区别

JVM&#xff0c;JRE和JDK的区别 JVM(Java Virtual Machine&#xff0c;Java虚拟机)JREJRE目录结构 JDK JVM(Java Virtual Machine&#xff0c;Java虚拟机) Java程序的跨平台特性主要是指字节码文件可以在任何具有Java虚拟机的计算机或者电子设备上运行&#xff0c;Java虚拟机中…

Docsify的评论系统gitalk配置过程

&#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是Zeeland&#xff0c;开源建设者与全栈领域优质创作者。&#x1f4dd; CSDN主页&#xff1a;Zeeland&#x1f525;&#x1f4e3; 我的博客&#xff1a;Zeeland&#x1f4da; Github主页: Undertone0809 (Zeeland)&…

[元带你学: eMMC协议 31] eMMC Context(上下文) ID 详解 | eMMC 并行数据标识与隔离详解

依JEDEC eMMC及经验辛苦整理,原创保护,禁止转载。 专栏 《元带你学:eMMC协议》 内容摘要 全文 5000 字, 主要内容 eMMC 为什么要引入 Context? Context 是什么? 如何使用Context 上下文? Context 上下文配置怎么做? 上下文 ID 应用局限 系统层和芯片组对 Contex…

IEC 60068 环境测试介绍及其标准下载

IEC 60068 环境测试介绍及其标准下载 IEC 60068 标准由国际电工委员会 (IEC) 发布&#xff0c;是用于电工产品环境测试的国际标准。 IEC 60068 系列包含有关标准、环境测试程序和测试严重性的基本信息。 IEC 60068 环境测试 制定这一系列标准是为了在特定产品类型&#xff08…

这是一条求助贴(postman测试的时候一直是404)

看到这个问题是404的时候总感觉不该求助大家&#xff0c;404多常见一看就是简单的路径问题&#xff0c;我的好像不是&#xff0c;我把我的问题奉上。 首先我先给出我的url http://10.3.22.195:8080/escloud/rest/escloud_contentws/permissionStatistics/jc-haojl/sz 这是我…

Midjourney学习(一)prompt的基础

prompt目录 sd和mj的比较prompt组成风格表现风格时代描述表情色彩情绪环境 sd和mj的比较 自从去年9月份开始&#xff0c;sd就变得非常或火&#xff0c;跟它一起的还有一个midjourney。 他们就像是程序界的两种模式&#xff0c;sd是开源的&#xff0c;有更多的可能性更可控。但是…

Maven之hibernate-validator 高版本问题

hibernate-validator 高版本问题 hibernate-validator 的高版本&#xff08;邮箱注解&#xff09;依赖于高版本的 el-api&#xff0c;tomcat 8 的 el-api 是 3.0&#xff0c;满足需要。但是 tomcat 7 的 el-api 只有 2.2&#xff0c;不满足其要求。 解决办法有 2 种&#xff…