【没有哪个港口是永远的停留~论文解读】Polarized Self-Attention

2023-12-29 02:04

本文主要是介绍【没有哪个港口是永远的停留~论文解读】Polarized Self-Attention,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Polarized Self-Attention : Towards High-quality Pixel-wise Regression

原文:https://arxiv.org/pdf/2107.00782.pdf

代码: GitHub - DeLightCMU/PSA: This is an official implementation of "Polarized Self-Attention: Towards High-quality Pixel-wise Regression"

作者提出了一个即插即用的模块——极化自注意力机制( Polarized Self-Attention(PSA)),用于解决像素级的回归任务,相比于其他注意力机制,极化自注意力机制主要有两个设计上的亮点:

        1)极化滤波( Polarized filtering):在通道和空间维度保持比较高的resolution(在通道上保持C/2的维度,在空间上保持[H,W]的维度 ),这一步能够减少降维度造成的信息损失;

        2)增强(Enhancement):采用细粒度回归输出分布的非线性函数。

结构

通道注意力+空间注意力

逐像素回归问题面临着特殊的挑战:

  1. 在合理的成本范围内保持高分辨率
  2. 拟合输出分布,例如关键点热图或分割掩码。

差别比较

SM: softmax、SD: Sigmoid、ch:通道 、sp:空间 

内部分辨率与复杂性:

与现有的注意力块在其顶级配置下进行比较,PSA 为两者保留了最高的注意力分辨率,通道 (C/2) 和空间 ([W; H]) 维度。

此外,在我们的仅通道注意力中,Softmax重新加权与SE激励融合,利用 Softmax 作为大小 C/2 × W × H 的 bottleneck 处的非线性激活。

通道数 (C-C)/(2-C) 遵循SE模式,这比GC 和 SE 块都好。

我们不仅只关注空间的注意力,保持完整[W; H]空间分辨率,也关注内部,保持Wq 和 Wv 中的 2×C×C/2 个可学习参数,非线性 Softmax 重新加权,这是比现有块更强大的结构。

Polarized Self-Attention (PSA) Block

我们对上述挑战的解决方案是在注意力计算中进行“ polarized filtering 极化滤波”。

  • 自我注意块对输入张量X进行操作以突出或抑制特征,这非常类似于滤光的光学透镜。
  • 在摄影中,在横向方向上总是有随机光,产生眩光/反射。
  • 偏振滤光,通过只允许光垂直于横向通过,可以潜在地提高照片的对比度。

由于总强度的损失,滤波后的光通常具有较小的动态范围,因此需要额外的提升,恢复原始场景的细节

我们借用摄影的关键要素,提出Polarized Self-Attention (PSA) 机制:

        过滤:在一个方向上完全折叠特征,同时保持正交方向的高分辨率;

        HDR:通过 Softmax 增加注意力的动态范围在瓶颈张量(注意力块中的最小特征张量)处进行归一化,然后进行色调映射Sigmoid 函数。

 

实验

实施细节。对于任何 带有瓶颈或基本残差块 的 baseline,例如 ResNet 和 HRnet,我们分别在每个残差块的第一个 3×3 卷积之后添加 PSA

  • 对于 2D 姿势估计,我们保持与 baseline 相同的训练策略和超参数。
  • 对于语义分割,我们增加了 5000 次 iter 迭代的预热训练阶段,将总训练迭代拉伸了 30%,并保持 baseline  其余训练策略和超参数。

PSA vs. Baselines

2D关键点实验,略

语义分割:

This task maps an input image to a stack of segmentation masks, one output mask for one semantic class. In Table 3, we compare PSA with the DeepLabV3Plus [4] baseline on the Pascal VOC2012 Aug [12] (21 classes, input image size 513 × 513, output mask size 513 × 513). PSA boosts all the baseline networks by 1.8 to 2.6mIoU(mean Intersection over Union) with minor overheads of computation (Flops) and the number of parameters (mPara). PSA with “Res50” backbone got 79.0 mIoU, which is not only 1.8 better than the DeepLabV3Plus with the Resnet50 backbone, but also better than DeepLabV3Plus even with Resnet101.

消融研究

这篇关于【没有哪个港口是永远的停留~论文解读】Polarized Self-Attention的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

MySQL中的MVCC底层原理解读

《MySQL中的MVCC底层原理解读》本文详细介绍了MySQL中的多版本并发控制(MVCC)机制,包括版本链、ReadView以及在不同事务隔离级别下MVCC的工作原理,通过一个具体的示例演示了在可重... 目录简介ReadView版本链演示过程总结简介MVCC(Multi-Version Concurr

关于Gateway路由匹配规则解读

《关于Gateway路由匹配规则解读》本文详细介绍了SpringCloudGateway的路由匹配规则,包括基本概念、常用属性、实际应用以及注意事项,路由匹配规则决定了请求如何被转发到目标服务,是Ga... 目录Gateway路由匹配规则一、基本概念二、常用属性三、实际应用四、注意事项总结Gateway路由

解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)

《解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)》该文章介绍了使用Redis的阻塞队列和Stream流的消息队列来优化秒杀系统的方案,通过将秒杀流程拆分为两条流水线,使用Redi... 目录Redis秒杀优化方案(阻塞队列+Stream流的消息队列)什么是消息队列?消费者组的工作方式每

解读静态资源访问static-locations和static-path-pattern

《解读静态资源访问static-locations和static-path-pattern》本文主要介绍了SpringBoot中静态资源的配置和访问方式,包括静态资源的默认前缀、默认地址、目录结构、访... 目录静态资源访问static-locations和static-path-pattern静态资源配置

电脑没有仿宋GB2312字体怎么办? 仿宋GB2312字体下载安装及调出来的教程

《电脑没有仿宋GB2312字体怎么办?仿宋GB2312字体下载安装及调出来的教程》仿宋字体gb2312作为一种经典且常用的字体,广泛应用于各种场合,如何在计算机中调出仿宋字体gb2312?本文将为您... 仿宋_GB2312是公文标准字体之一,仿China编程宋是字体名称,GB2312是字php符编码标准名称(简

MySQL中时区参数time_zone解读

《MySQL中时区参数time_zone解读》MySQL时区参数time_zone用于控制系统函数和字段的DEFAULTCURRENT_TIMESTAMP属性,修改时区可能会影响timestamp类型... 目录前言1.时区参数影响2.如何设置3.字段类型选择总结前言mysql 时区参数 time_zon

MySQL中的锁和MVCC机制解读

《MySQL中的锁和MVCC机制解读》MySQL事务、锁和MVCC机制是确保数据库操作原子性、一致性和隔离性的关键,事务必须遵循ACID原则,锁的类型包括表级锁、行级锁和意向锁,MVCC通过非锁定读和... 目录mysql的锁和MVCC机制事务的概念与ACID特性锁的类型及其工作机制锁的粒度与性能影响多版本

Redis过期键删除策略解读

《Redis过期键删除策略解读》Redis通过惰性删除策略和定期删除策略来管理过期键,惰性删除策略在键被访问时检查是否过期并删除,节省CPU开销但可能导致过期键滞留,定期删除策略定期扫描并删除过期键,... 目录1.Redis使用两种不同的策略来删除过期键,分别是惰性删除策略和定期删除策略1.1惰性删除策略

Redis与缓存解读

《Redis与缓存解读》文章介绍了Redis作为缓存层的优势和缺点,并分析了六种缓存更新策略,包括超时剔除、先删缓存再更新数据库、旁路缓存、先更新数据库再删缓存、先更新数据库再更新缓存、读写穿透和异步... 目录缓存缓存优缺点缓存更新策略超时剔除先删缓存再更新数据库旁路缓存(先更新数据库,再删缓存)先更新数

C#反射编程之GetConstructor()方法解读

《C#反射编程之GetConstructor()方法解读》C#中Type类的GetConstructor()方法用于获取指定类型的构造函数,该方法有多个重载版本,可以根据不同的参数获取不同特性的构造函... 目录C# GetConstructor()方法有4个重载以GetConstructor(Type[]