视频学习——《Expectation-Maximization Attention Networks for Semantic Segmentation》(《语义分割中的自注意力机制和低秩重建》)

视频学习——《Expectation-Maximization Attention Networks for Semantic Segmentation》(《语义分割中的自注意力机制和低秩重建》)

原文详细讲解,见《[ICCV 2019 Oral] 期望最大化注意力网络 EMANet 详解》

一、基础概念扫盲

  • 语义分割:计算机视觉中的基础任务,在语义分割中我们需要将视觉输入分为不同的语义可解释类别。
  • 语义的可解释性:分类类别在真实世界中是有意义的。
  • 语义分割的目的:为每个像素预测类别标签。
  • Nonlocal神经网络:非局部操作。使得每个像素可以充分捕获全局信息。
  • 注意力机制:模仿生物观察行为的内部过程,将内部经验和外部感觉对齐从而增加部分区域的观察精细度的极值。
  • 自注意力机制:注意力机制的改进,减少对外部信息的依赖,擅长捕捉数据或特征的内部相关性。
  • 最大化注意力机制(EMA):
  • 期望最大化算法(EM):目的在于找出潜在变量模型的最大似然解。

二、详细介绍

  1. 期望最大化算法(EM算法)

    第一步:计算期望(E),利用对隐藏变量的现有估计值,计算最大似然估计值。

    第二步:最大化(M),在(E)步上求得的最大似然值来计算参数的值。(M)步上找到的参数估计值被用于下一个(E)步计算中,整个过程不断交替进行,直到满足了拟合条件。

  2. 高斯混合模型

    高斯混合模型使用高斯分布作为参数模型,并使用期望最大算法进行训练。详细介绍见《一文详解高斯混合模型原理》

  3. 非局部网络(Nonlocal)

    将自注意力机制使用在计算机视觉中,核心算子是:

其中 [公式] 表示广义的核函数, [公式] 是归一化系数。它将第 [公式] 个像素的特征 [公式] 更新为其他所有像素特征经过 [公式] 变换之后的加权平均 [公式] ,权重通过归一化后的核函数计算,表征两个像素之间的相关度。这里 [公式] ,所以视为像素特征被一组过完备的基进行了重构。这组基数目巨大,且存在大量信息冗余。

  1. 期望最大化注意力

    原理:摒弃了在全图上计算注意力图的流程,通过期望最大化算法(EM算法)迭代出一组紧凑的基,在这组基上运行注意力机制,从而大大降低了复杂度。

    下图为期望最大化注意力模块(EMAU)的结构

流程:

  1. 输入图片经过CNN网络,得到特征图X,经过1×1卷积降维
  2. 其中H和W是特征图X的分辨率尺寸
  3. 初始化一个作为基,K为基的数量
  4. E步(下面的分支):得到Attention maps Z。有K个Attention maps,每个map的尺寸是H×W
  5. M步(上面的分支):更新基Bases μ,得到的Attention maps Z
  6. 在每次M步之后,为了保证μ的学习是稳定的,选择L2Norm对μ做归一化处理
  7. E步和M步重复执行。
  8. 用得到的Attention maps Z和基μ重构X,得到
  9. 经过一个1×1卷积(+BN)reshape到C×H×W。

三、总结

个人认为,整个过程类似于CNN+RNN的一个组合。输入的图片先通过CNN生成特征图,再经过EMA结构进行语义分割。其中,EMA的迭代过程相当于是一个RNN。从作者的讲解中得知,RNN中采取LayerNorm(LN)来进行归一化,但是EMA中采用L2Norm来对基进行归一化,目的是避免LN改变基的方向,进而影响其语义。

原文地址:https://www.cnblogs.com/cch-EX/p/13497521.html