《Non-local Neural Network》
一、 主要贡献
1.提出了一种非局部连接(Non-local operations)的计算块 (building block),用于处理视频和图像的长程依赖关系(long-range dependency);
2.在视频数据集Kinetics and Charades datasets,目前最优(对比2D或3D卷积网络);
3.图像分类数据集COCO,能够提升精度。
二、 非局部连接操作
1. 启发性方法:非局部均值方法(non-local means methods)
非局部均值滤波是Buades等 在2005年提出的一种滤波方法。其基本思想是根据图像的自相似性来计算邻域像素的权重。NML算法首先需要选取两个窗,分别为相似窗和搜索窗,相似窗被选取用于比较两个像素的相似性,搜索窗被选择用于确定计算相似像素的范围。中心像素i与其邻域的像素j之间的相似性权重是根据两像素相似窗高斯加权的欧式距离决定。
总结一下方法:
a) 假设图像的噪声是高斯噪声,高斯噪声的求和趋向于0;
b) 在图像的不同区域或者不同时域,存在一定的区域是相似的,把这些相似区域不断相加(具有一定权重,权值与相似度有关),则累加的越多,高斯噪声的影响就趋向于0,则图像通过这样的算法越来越清晰。
2. 这样做的动机:
在卷积网络中,卷积层之前添加这些非局部操作,相当于在这些层之前进行降噪操作,消除feature map中的噪声。
同时应该也有获取非局部区域的信息相关性的考虑,即比如卷积是通过不断进行局部信息聚合(卷积)的操作来获取更大范围的相关性信息,而添加这种操作可以让卷积只关注局部信息,应该能起到减少层数的作用。
3. 非局部连接的数学公式:
i代表输出的位置(时间点、空间点、时空点),j代表遍历全部可能点,f代表相似度的函数,g是输入缩放函数,c(x)是归一化因子。
4. f函数和g函数的选择(结论是对精度影响不大,可以选择硬件友好的,所以文中说不讨论L1 L2欧式距离)。
a) Gaussian
b) Embedded Gaussian
c) Self-attention module[47]这篇文章提出的,是f=softmax这样一个特例。
d) Dot product
e) Concatenation
5. Non-local Block用于神经网络的一个基本块
Y是非局部操作,+X是残差连接(好处是这个结构可以插入到已经预训练的模型)。
示意图如下:
Implement中减少参数量和计算量的trick:
① Wg, Wθ, and Wφ to be half of the number of channels in x;
② 下采样:公式中的Xj通过下采样进行遍历。
三、 实验结果
对比的是ResNet-50,使用2维卷积,数据集是Kinetics和Charades视频。在视频分类上,精度提升明显。
在图像分类方面,使用的是数据集COCO,精度一般提升1~2%。