这篇文章发表在CVPR2018上,文章目的是做视频分类和物体检测,但实际上提出了一个非局部层,可以嵌入在任意神经网络中提升效果。这个思想来源于图像去噪领域的传统方法NL-Means,他认为传统的卷积层只能覆盖局部的信息,无法涵盖全局信息,而提出的非局部网络可以融合时间序列和空间序列的信息。作者提出了CNN和RNN的三个缺点:计算不高效;难以优化;非局部特征的信息传递不够灵活,功能不够强大。所以产生了本文的思想。
上式中输入是x(features),输出是y,i和j分别代表输入的某个(空间,时间,时空)位置,xi是一个向量,维数跟x的channel一样,f是一个计算任意两点相似关系的函数,输出一个值作为权重,g函数计算j处这个点的特征。为了计算输出层的一个点,需要将输入的每个点都考虑一遍,所以这个过程为非局部的。
计算流程就如下图所示,T,H,W代表输入特征的维度。其中T是对于视频帧数,特征图尺寸为T×H×W×1024 也就是有1024个通道。蓝色框表示1×1×1 的卷积操作,这种结构为512通道的“瓶颈”(bottleneck)结构。对于分割或检测任务,1x1的卷积压缩通道数,形成瓶颈结构(bottleneck)。或者在f()对应的1x1卷积之后使用pooling来减小H,W,即采样一部分的j而不是所有的j进行信息融合。
全局的处理方法全连接也是,而全连接就是一个特殊的非局部层,当任意两点的相似性仅跟两点的位置有关,而与两点的具体feature无关,即 f(xi,xj)=wij;g是identity函数, g(x)=x;归一化系数为1时就是全连接层了。具体的实验过程还没有细看,但将非局部层加到传统的CNN里可以有很好的提升效果。