共计 7476 个字符,预计需要花费 19 分钟才能阅读完成。
Dense Prediction with Attentive Feature Aggregation
原始文档: https://www.yuque.com/lart/pa…
偶然间从 arxiv 上翻到的论文, 能够看做是对之前工作 Hierarchical multi-scale attention for semantic segmentation 的一个扩大.
从摘要读论文
Aggregating information from features across different layers is an essential operation for dense prediction models.
本文重点关注与跨层的特色集成的问题.
Despite its limited expressiveness, _feature concatenation dominates the choice of aggregation operations_.
虽说是特色拼接, 然而大多数还会跟一些简单的卷积构造.
In this paper, we introduce Attentive Feature Aggregation (AFA) to fuse different network layers with more expressive non-linear operations. AFA exploits both spatial and channel attention to compute weighted average of the layer activations.
外围模块之 AFA. 应用空间和通道注意力来加权求和不同层的特色. 从而构建一种非线性的集成操作.
Inspired by neural volume rendering, we extend AFA with Scale-Space Rendering (SSR) to perform _late fusion of multi-scale predictions_.
这里提到一个很乏味的点, 是用来交融多尺度预测的构造. 构造的设计借鉴了神经体渲染的想法(我不太理解这个方面).
AFA is applicable to a wide range of existing network designs.
因为 AFA 自身就是一个模型通用的模块, 所以能够很容易的迁徙到不同的模型中来实现特色的跨层集成.
Our experiments show consistent and significant improvements on challenging semantic segmentation benchmarks, including Cityscapes, BDD100K, and Mapillary Vistas, at negligible computational and parameter overhead. In particular, AFA im-proves the performance of the Deep Layer Aggregation (DLA) model by nearly 6% mIoU on Cityscapes. Our experimental analyses show that AFA learns to progressively refine segmentation maps and to improve boundary details, leading to new state-of-the-art results on boundary detection benchmarks on BSDS500 and NYUDv2.
尝试了宰割工作和边缘检测工作.
次要内容
We propose Attentive Feature Aggregation (AFA) as a non-linear feature fusion operation to replace the prevailing tensor concatenation or summation strategies.
- Our attention module uses both spatial and channel attention to learn and predict the importance of each input signal during fusion. Aggregation is accomplished by computing a linear combination of the input features at each spatial location, weighted by their relevance.
- Compared to linear fusion operations, our AFA module can _take into consideration complex feature interactions and attend to different feature levels depending on their importance_.
- AFA introduces negligible computation and parameter overhead and can be easily used to replace fusion operations in existing methods, such as skip connections.
- Unlike linear aggregation, our AFA module leverages extracted spatial and channel information to efficiently select the essential features and to _increase the receptive field at the same time_.
Inspired by neural volume rendering [_Volume rendering, Nerf: Representing scenes as neural radiance fields for view synthesis_], we propose Scale-Space Rendering (SSR) as a novel attention computation mechanism to fuse multi-scale predictions.
- _We treat those predictions as sampled data in scale-space and design a coarse-to-fine attention concept to render final predictions. _(这个想法很有意思. 把最终预测的获取看做是一个从尺度空间中采样不同尺度的预测来渲染最终预测的问题)
- Repeated use of attention layers may lead to numerical instability or vanishing gradients. We extend the above-mentioned attention mechanism to fuse the dense predictions from multi-scale inputs more effectively.
- Our solution resembles a volume rendering scheme applied to the scale space. This scheme provides a hierarchical, coarse-to-fine strategy to combine features, leveraging a scale-specific attention mechanism. We will also show that our approach generalizes the hierarchical multi-scale attention method [_Hierarchical multi-scale attention for semantic segmentation_].
Attentive Feature Aggregation (AFA)
这里设计了两种整合模式, 一种实用于双输出, 另一种适宜用于多输出递进式集成. 外围都是基于空间注意力和通道注意力. 留神, 这里的计算都是两两集成的模式, 所以都是算出一个注意力后, 应用 sigmoid 来结构绝对权重.
对于双输出模式, 空间注意力由较浅层特色计算, 因为其蕴含着丰盛的空间信息. 而通道注意力由较深层特色计算, 因为其蕴含着更简单的通道特色. 对于多输出模式(图中仅仅展现了三层, 实际上能够引入更多层的输出), 通道和空间注意力齐全由以后层输出计算, 并且如果有靠前计算的一级的化, 该注意力会用来对以后和之前的输入作加权. 另外集成的程序原文中如此形容 ”a feature with higher priority will have gone through a higher number of aggregations”, 我的了解是, 应该就是从深到浅层的一个过程.
提出的集成模块能够用于许多构造中, 例如 DLA、UNet、HRNet 和 FCN 中.
Scale-Space Rendering (SSR)
这里提出的 SSR 是一个更加相似于模型集成的策略.
其通过计算针对不同尺度下预测的输入的绝对权重来对多尺度推理进行集成. 所以, 这里波及到两个问题:
- SSR 如何学习?论文中并没有提到。然而依照上图中的说法,训练应用两个尺度的输出,阐明这是能够训练 SSR 的。因为是个会预测参数的可学习的构造,对于每个输出会主动预测一个注意力参数。通过这些不同尺度输出下对应计算失去的参数从而取得最终针对多个尺度的加权比重。
- 不同大小的预测最初会整合到哪个尺度?这一点论文中没有提。然而依照上图应用基于原始输出的绝对尺寸的表述来看,最终应该还是会集成到 1.0 倍原始输出尺度上(与 hierarchical multi-scale attention 中的设计模式应该是统一的)。
表达形式
为了表白对多尺度预测的集成的问题, 作者首先将关注的重点放在单个像素上. 并且假如模型为指标像素在 $k$ 个不同的尺度上提供了预测.
对于第 $i$ 个尺度的预测能够示意为 $P_i \in \mathbb{R}^{d}$. 由此, 在尺度空间中针对指标像素的特色表征能够定义为 $P \triangleq (P_1, \dots, P_k)$. 进一步, 这里假如 $i<j$ 示意尺度 $i$ 比尺度 $j$ 更加毛糙.
于是指标像素就能够设想成在尺度空间中挪动的光线, 从尺度 $1$ 朝向尺度 $k$.
基于这样的想法, 从新设计在提出的多特色交融机制中的原始的分层注意力, 并且模仿 volume-rendering equation, 这里的 volume 由尺度空间隐式给出.
为此, 除了位于尺度 $i$ 的特色表征 $P_i$, 假如 模型还会针对指标像素预测一个标量 $y_i \in \mathbb{R}$. 在 volume rendering 的语境下, 粒子将 会穿过尺度 $i$ 的概率, 在给定一些非负标量函数 $\phi: \mathbb{R} \rightarrow \mathbb{R}_{+}$ 时, 就能够示意为 $e^{-\phi(y_i)}$.
于是能够将尺度注意力 $\alpha_i$ 表白为粒子达到尺度 $i$ 并停留在这里的概率(每一次都满足伯努利散布, 非留即走, 后面都走, 就以后次留了下来):
$\alpha_i(y) \triangleq [1 – e^{-\phi(y_i)}] \prod^{i-1}_{j=1}e^{-\phi(y_j)}, \, y \triangleq (y_1, \dots, y_k)$
$y$ 示意针对各个尺度的指标像素预测的标量参数.
$P_{final} \triangleq \sum^{k}_{i=1}P_i \alpha_i(y)$
最终, 依照 volume rendering equation, 针对指标像素多尺度预测交融失去的最终预测, 由不同尺度的注意力参数来加权求和取得. 这也反映了对于指标像素取得的最终特色, 是在 $y$ 驱动下交融所有尺度的特色表白取得的.
综合上下文的剖析, 这里的设计中应该是最终是要将所有尺度集成到 1 上的.
提出的 SSR 能够看作是 Hierarchical Multi-Scale Attention (HMA) [Hierarchical multi-scale attention for semantic segmentation, https://github.com/NVIDIA/semantic-segmentation]的一种一般化模式.
通过设置 $\phi(y_i) \triangleq \log(1 + e^{y_i})$, 并固定 $\phi(y_k) \triangleq \infty$, 就能够取得后者的模式了. 此时有:
$$
\alpha_i = [1-\frac{1}{1+e^{y_i}}] \prod^{i-1}_{j=1}\frac{1}{1+e^{y_j}}, \\
\alpha_1=1-\frac{1}{1+e^{y_1}}, \\
\alpha_k=\prod^{k-1}_{j=1}\frac{1}{1+e^{y_j}}.
$$
从这里的模式来看, 这里有两处令人纳闷的中央:
- 模式不太对. 本来的 hierarchical multi-scale attention 应用的是 sigmoid 来集成不同的尺度. 这里与 sigmoid 并不统一.
- 依照这里的模式, 并联合空间注意力 (sigmoid) 的级联关系, 能够看出输入是在 $i=1$ 的地位, 也就是其它层的信息依照层序号递加的模式逐渐集成起来. 这倒是和下图的模式大抵相似.
输出是被再次放缩后才送入模型的. 而这里最终输入的尺寸是对应于 1.0 倍 原始输出尺寸 的. 所以, 假如 依照尺度编号从 k 到 1 集成特色, 并在 1 层输入后果.
因为本文中结构的注意力是基于不抉择以后层的概率(穿过以后层), 则对应上图的模式, 总的模式为:
$$
\alpha_i = [1-p(y_i)]\prod_{j=1}^{i-1} p(y_j), \\
\alpha_1 = 1-p(y_1), \\
\alpha_k = \prod_{j=1}^{k-1} p(y_j), \\
p(y_i) = 1-\text{sigmoid}(y_i), \\
\Rightarrow P = \sum^{k}_{i=1} P_{i}\alpha_i(y).
$$
能够看到, 对于第一层的注意力权重就是间接 sigmoid 的输入后果. 而对于第 k 层的输入, 则是对各层 sigmoid 输入取补并类乘而取得.
$\phi$ 的抉择
试验中应用绝对值函数: $\phi(y_i) \triangleq |y_i|$. 这受启发于更好的保留通过注意力机制的梯度流的剖析, 因为作者们发现现存的注意力机制可能会蒙受梯度隐没的问题.
后面整顿的注意力系数的模式:
$$
\alpha_i(y) \triangleq [1 – e^{-\phi(y_i)}] \prod^{i-1}_{j=1}e^{-\phi(y_j)} = \prod^{i-1}_{j=1}e^{-\phi(y_j)} – \prod^{i}_{j=1}e^{-\phi(y_j)}, \, y \triangleq (y_1, \dots, y_k)
$$
思考第 $i$ 层系数 $\alpha_i(y)$ 对于可学习参数 $y_l$ 的导数:
$$
J_{il} \triangleq \frac{\partial \alpha_i(y))}{\partial y_l}
\begin{cases}
\frac{\partial [-e^{-\phi(y_i)}]}{\partial y_l}\prod^{i-1}_{j=1}e^{-\phi(y_j)} = \frac{\partial \phi(y_i)}{\partial y_l}\prod^{i}_{j=1}e^{-\phi(y_j)} = \phi ‘(y_l)\prod^{i}_{j=1}e^{-\phi(y_j)} & \text{if} l= i\\
0 & \text{if} l> i \\
-\phi ‘(y_l)\prod^{i-1}_{j=1}e^{-\phi(y_j)} + \phi ‘(y_l)\prod^{i}_{j=1}e^{-\phi(y_j)} = -\phi ‘(y_l)\alpha_i(y) & \text{if} l< i
\end{cases}
$$
当思考两个尺度的时候, 即 $k=2$ 时:
$$
J =
\begin{bmatrix}
-\phi ‘(y_1)a_1 & 0 \\
-\phi ‘(y_1)a_1(1-a_2) & \phi ‘(y_2)a_1a_2
\end{bmatrix}, \\
a_i \triangleq e^{-\phi(y_i)}.
$$
左上角计算的是第 1 层的注意力系数对于第 1 层的参数的导数, 右上角则是第 1 层对于第 2 层的导数. 能够看到, 如果 $a_1 \rightarrow 0$ 的时候, 梯度会隐没, 不论 $a_2$ 是多少.
所以为了防止梯度隐没的问题, 这里须要对 $\phi$ 进行认真的设定. 当抉择绝对值函数的时候, 这里的 Jacobian 矩阵将不会在 $a_1 > 0$ 且 $(y_1, y_2) \neq (0, 0)$ 的状况呈现隐没的问题.
然而这里如果取了绝对值函数, 求导数是 +-1, 这仍然会有梯度隐没的问题诶?
思考 HMA 中的状况, 依照作者给出的模式, 此时有:
$$
\phi ‘(y_i) = \frac{\partial \log(1+e^{y_i})}{\partial y_i} = \frac{e^{y_i}}{1+e^{y_i}} = 1 – \frac{1}{1+e^{y_i}} = 1 – e^{-\log(1+e^{y_i})} = 1 – a_i, \\
a_2 = 0.
$$
分支 2 不参加注意力计算. 当 $a_1 \rightarrow 1$ 时会呈现梯度隐没.
而依照我后面的模式, 则有:
$$
\phi ‘(y_i) = \frac{\partial \log(1+e^{-y_i})}{\partial y_i} = -\frac{e^{-y_i}}{1+e^{-y_i}}, \\
a_i = e^{-\log(1+e^{-y_i})} = \frac{1}{1+e^{-y_i}}, \\
\phi ‘(y_i) = a_i – 1.
$$
同样也会呈现隐没的问题.
链接
- 论文:https://arxiv.org/abs/2111.00770
- 代码:http://vis.xyz/pub/dla-afa
- 本文的思维来源于 NeRF, 能够看看 NeRF 的介绍再来看着 SSR 的设计.
对于体绘制的一些材料:
- 十分丰盛全面的一份中文 CG 学习材料: GPU 编程与 CG 语言之下里巴人下里巴人(GPU Programming And Cg Language Primer)
- 21 年呈现在知网上的一份小综述: 基于神经辐射场的视点合成算法综述