【没有哪个港口是永远的停留~论文解读】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

相关文章

java之Objects.nonNull用法代码解读

《java之Objects.nonNull用法代码解读》:本文主要介绍java之Objects.nonNull用法代码,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录Java之Objects.nonwww.chinasem.cnNull用法代码Objects.nonN

SpringCloud负载均衡spring-cloud-starter-loadbalancer解读

《SpringCloud负载均衡spring-cloud-starter-loadbalancer解读》:本文主要介绍SpringCloud负载均衡spring-cloud-starter-loa... 目录简述主要特点使用负载均衡算法1. 轮询负载均衡策略(Round Robin)2. 随机负载均衡策略(

解读spring.factories文件配置详情

《解读spring.factories文件配置详情》:本文主要介绍解读spring.factories文件配置详情,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录使用场景作用内部原理机制SPI机制Spring Factories 实现原理用法及配置spring.f

Spring MVC使用视图解析的问题解读

《SpringMVC使用视图解析的问题解读》:本文主要介绍SpringMVC使用视图解析的问题解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC使用视图解析1. 会使用视图解析的情况2. 不会使用视图解析的情况总结Spring MVC使用视图

Linux中的进程间通信之匿名管道解读

《Linux中的进程间通信之匿名管道解读》:本文主要介绍Linux中的进程间通信之匿名管道解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、基本概念二、管道1、温故知新2、实现方式3、匿名管道(一)管道中的四种情况(二)管道的特性总结一、基本概念我们知道多

Linux系统之authconfig命令的使用解读

《Linux系统之authconfig命令的使用解读》authconfig是一个用于配置Linux系统身份验证和账户管理设置的命令行工具,主要用于RedHat系列的Linux发行版,它提供了一系列选项... 目录linux authconfig命令的使用基本语法常用选项示例总结Linux authconfi

解读docker运行时-itd参数是什么意思

《解读docker运行时-itd参数是什么意思》在Docker中,-itd参数组合用于在后台运行一个交互式容器,同时保持标准输入和分配伪终端,这种方式适合需要在后台运行容器并保持交互能力的场景... 目录docker运行时-itd参数是什么意思1. -i(或 --interactive)2. -t(或 --

解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题

《解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题》在Spring开发中,@Autowired注解常用于实现依赖注入,它可以应用于类的属性、构造器或setter方法上,然... 目录1. 为什么 @Autowired 在属性上被警告?1.1 隐式依赖注入1.2 IDE 的警告:

Rust中的注释使用解读

《Rust中的注释使用解读》本文介绍了Rust中的行注释、块注释和文档注释的使用方法,通过示例展示了如何在实际代码中应用这些注释,以提高代码的可读性和可维护性... 目录Rust 中的注释使用指南1. 行注释示例:行注释2. 块注释示例:块注释3. 文档注释示例:文档注释4. 综合示例总结Rust 中的注释

解读Pandas和Polars的区别及说明

《解读Pandas和Polars的区别及说明》Pandas和Polars是Python中用于数据处理的两个库,Pandas适用于中小规模数据的快速原型开发和复杂数据操作,而Polars则专注于高效数据... 目录Pandas vs Polars 对比表使用场景对比Pandas 的使用场景Polars 的使用