解耦Non-Local模块,比传统Non-Local提升1.5-3个点 | Disentangled Non-Local Neural Networks

在Non-Local的基础上还能提高这么多,问题分析的也很透彻,就是文章有点难读,有解读错误的地方,请不要见怪!
论文地址:https://arxiv.org/pdf/2006.06668.pdf

在这里插入图片描述

Abstract:

Non-Local块是一种流行的模块,用于增强常规卷积神经网络的上下文建模能力。本文首先深入研究了Non-Local块,我们发现它的注意力计算可以分为两项,一个经过白化的成对项解释了两个像素之间的关系,一个一元项代表了每个像素的显著性。我们还观察到,单独训练的两项往往会为不同的视觉线索建模,例如白化的成对项学习区域内的关系,而一元项学习显著边界。然而,这两项在Non-Local块中紧密耦合,这妨碍了每项的学习。基于这些发现,我们提出了解耦的Non-Local块,其中两项解耦以促进所有项的学习。我们证明了分离设计在各种任务上的有效性,例如Cityscapes,ADE20K和PASCAL Context上的语义分割,COCO上的目标检测以及Kinetics上的动作识别。

Introduction:

论文发现Non-Local模块基于点积的注意力可以拆分为白化的成对项与一元项。通过单独的训练方式,作者发现白化的成对项通常学习区域内关系,一元项则倾向于对显著性边界建模。但是,当这两项都出现在Non-Local块中时,就不会学到这种清晰的视觉线索,如下图的第一行所示。这表明将这两项结合在一起可能对学习这些视觉线索有害,因此影响了对辨别性特征的学习。

在这里插入图片描述
为了解决这个问题,本文提出了解耦的Non-Local(DNL)块,其中通过使用独立的Softmax函数和嵌入矩阵将白化的成对项和一元项清晰地解耦。 通过这种解开的设计,大大减少了白化的成对和一元项联合学习的难度。 如上图的第二行所示,白化的成对项学习清楚的区域内线索,而一元项则学习显著性边界,甚至比单独训练每一项时学到的更为清晰。

效果总结:
在语义分割基准上,通过使用提出的DNL块替换标准Non-Local块,可以显著提高准确性,其中Cityscapes验证集的mIoU增益为2.0%,ADE20k的1.3%mIoU增益, 使用ResNet-101为主干网络的PASCAL-Context增益为3.4%。 在具有挑战性的ADE20K数据集上获得了最先进的性能。 同样,通过任务特定的DNL块,在COCO目标检测和Kinects动作识别方面都观察到了显著的精度提高。

Method:

在这里插入图片描述
1.公式推导:

标准Non-Local模块公式为:
在这里插入图片描述
其中w(xi,xj)为像素i与j两者嵌入式相似度函数,通过提取白化的点积作为纯对项,论文可以将标准Non-Local块的点积切分为:
在这里插入图片描述
其中第一个白化点乘项表示query像素i与key像素j之间的纯成对关系,第二项表示一元关系,其中key像素j对所有query像素i具有相同的影响。

2.希望通过成对和一元项学习哪些视觉线索?

为了研究分别通过成对和一元项期望学习的视觉线索,论文通过单独使用成对或一元项来构造Non-Local块中的两个变体,从而消除了另一项的影响。 这两个变体使用以下相似度计算函数
在这里插入图片描述
两个变体分别被称为pairwise NL和unary NL。通过图3第二行与第三行可以看出,成对的NL块倾向于学习相同类别区域内的像素关系,而一元NL块倾向于学习从边界像素到所有图像像素的影响。
在这里插入图片描述
论文使用Cityscapes中gt区域和的边界注释进行定量分析,进一步验证此观察结果。具体来说就是使通过重叠度来评估生成的注意力图与gt边界/相同类别区域之间的一致性
在这里插入图片描述
在这里插入图片描述
表1显示了使用Cityscapes数据集中的所有500个验证图像,等式6和等式7中注意力图与gt区域图(表示为pairwise NL和unary NL)的平均一致性度量。 表中还通过随机注意图(称为随机)报告一致性度量。 可以得到以下结论
1)与随机注意图(0.635 vs. 0.259)相比,由等式6的pairwiseNL块构成的注意力图与gt同类区域的重叠显着大(0.635 vs. 0.259),但与gt边界区域的重叠相似(0.141 vs. 0.132),表示纯对项倾向于构建相同类别区域内像素之间的关系。

2)与随机注意图相比,由等式7的unary NL块引起的注意力图与gt边界区域的重叠显着更大(0.460对0.135),这表明一元项倾向于学习边界像素对所有图像的影响像素。 这可能是因为当考虑所有像素的一般效果时,图像边界区域提供了最有用的提示。

3)共同学习的标准NL块中的成对项与类别真值内类别区域的重叠明显小于单独学习成对项pairwise NL块(0.318 与0.635)。 还可以看到,共同学习的标准NL块中的一元项与地面真相边界区域的重叠明显小于单独学习一元项的unary NL块(0.172与 0.460)。这些结果表明,联合学习的标准NL块无法很好地了解类别内区域和边界的视觉线索

3.为什么Non-Local模块不能很好地学习视觉线索?

原因主要有两个:

A.梯度消失
在这里插入图片描述
作者从注意力公式出发,推导其梯度公式。可以看出,两个梯度均由另一项的值确定。 当另一项的值变得非常小(接近0)时,该项的斜率也将非常小,从而阻碍了对该项的学习。 例如,如果我们学习一元项来很好地表示边界区域,则非边界区域上的一元注意力权重将接近0,因此由于以下原因,很难在边界上学习成对项: 消失的梯度问题。 另一方面,如果我们学习成对项来很好地表示类别内区域,则边界区域上的一元注意力权重将接近于0,并且非边界区域上的成对术语也将很难学习。 由于相同的消失梯度问题。

B.成对和一元项共享Wk参数
另一个问题是在成对和一元项中使用的共享key的变换参数Wk,导致两个项的计算耦合。 这种耦合在学习这两个术语时可能会带来其他困难。

4.Disentangled Non-local Neural Networks:

针对3中分析的两个问题,本文对Non-Local块进行了以下两个修改

A.乘法变加法
在这里插入图片描述
将成对与一元项的乘法公式改成相加。因此,如下式,每一项的梯度都不会受到另一个的影响
在这里插入图片描述

B.一元项中的变换Wk更改为独立线性变换Wm
在这里插入图片描述

因此,最终DNL 的公式定义如下
在这里插入图片描述
DNL网络结构如下图所示,可以看出注意力生成的具体操作为:
在这里插入图片描述

1)pairwise NL中采用两个1x1卷积wk,wq,再接上白化操作进行点乘,最后Softmax函数得到HWXHW输出特征

2)unary NL中采用独立的1x1卷积wm,并接上Softmax和expand操作,得到与1)中同样大小的特征

3)对1)和2)输出进行元素相加

Experiments:

1.Ablation Study:
在这里插入图片描述
在这里插入图片描述
2.Semantic Segmentation:
在这里插入图片描述
在这里插入图片描述
3.Object Detection/Segmentation and Action Recognition:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42096202/article/details/106739794