Non-local Neural Networks笔记

半世苍凉 提交于 2020-12-13 10:53:21

Non-local Neural Networks

文章链接:2018cvprNon-local neural Network
摘要:所有的卷积和递归操作单次使用都是通过一个局部邻域来生成一个特征块,这篇文章展示了一种提取远距离关系的通用方法,灵感来源于计算机视觉领域的传统方法非局部均值,**non-local计算所有位置特征的加权和来表示一个位置的相应,**此方法能够即插即用到很多CV框架中。

1introduction

获取远距离信息的互相关系在神经网络中是非常重要的。对于连续的数据,递归作为主流的方法来建模长程关系。对于图像数据,远距离的依赖关系通过堆叠卷积得到的大感受野来建模;不管是空间或者时间,卷积和递归都处理的局部邻域的信息;因此只有通过重复这些操作,利用数据渐进的传播信号才能提取到长程的依赖关系,反复的局部操作有以下几点限制:1计算效率低,2优化困难需要非常细微的调整,3上述问题导致了多链接关系建模困难。
Non-local通过计算所有位置点在单个位置点的加权和来计算单个点的响应,这些位置可以是时间,空间,时空结合,这表示Non-local可以应用在图像,序列,和视频问题。
使用Non-local的优点:1.与卷积和递归等渐进提取长程关系的操作相反,Non-local无论两个位置间的距离,都会直接计算两个位置之间的关系,2.实验表明,Non-local在很少的层也能达到很好的效果,3.并不改变变量的形状,方便与其他操作结合使用
本文展示了非局部操作在视频分类应用中的有效性,在视频中,长程关系出现在时间和空间距离都很大的两个像素。本文的基础单元是一个简单的非局部块,能够以前馈的方式直接提取这种时空间的依赖关系,即使利用很少的非局部模块,非局部结构比2D和3D网络卷积网络也更精确。另外,非局部神经网络比3D卷积的计算更经济。


2.Related Work

非局部均值图像处理:非局部均值是一种传统的滤波算法用于计算一副图像中所有像素的加权平均值,考虑远距离像素对于相似的局部块在过滤后响应的影响,这种非局部滤波的思想后来发展成BM3D(3D块匹配),此操作对一组相似但非局部的块进行滤波,BM可以与神经网络一起进行图像去噪,非局部匹配也是纹理合成,超分辨,图像修复算法的本质。
**图形模型:**长程相关性能够通过图形模型建模如条件随机场(CRF);在深度神经网络的上下文中,神经网络语义分割的预测部分可以通过CRF做后处理。相反本文的方法是用于计算非局部滤波的简单的前向传播块,不同于用于分割的方法本文的组件用于分类和检测,这些方法和本文的方法都与图神经网络有关。
**序列的前馈建模:**在使用前馈网络对语音和语言的序列建模方法中,长程依赖关系被非常深的一维卷积的大感受野捕获,前馈模型易于并行实现且比递归模型更有效
自注意力机制: 本文的方法与用于机器翻译的自注意力机制有关,自注意力机制通过关注所有位置并在嵌入空间中取他们的加权平均来计算序列中一个位置的响应,以此来看,本文的工作是将机器翻译中的自注意力机制与非局部滤波结合起来用于计算机视觉中的图像和视频问题。
交互网络IN: IN被提出用于物理系统建模,对成对交互的目标图进行操作,Hoshen在多智能体预测建模的环境中提出了更有效的顶点注意力,IN的另一个变体是关系网络,在所有的输入位置对中计算特征嵌入函数。本文方法同样处理所有的成对数据,尽管本文的非局部网络与这些方法都有联系, 但本文的实验表明模型的 非局部性 与注意力/交互/关系的思想正交,也是他们成功的关键,非局部建模是图像处理一个长期的关键因素,但在最近的计算机视觉神经网络中却被忽略了。
视频分类架构: 视频分类的一个自然解决方案是将图像的神经元网络和序列的神经元网络的成功结合起来,相比之下,前馈模型是通过时空中的3D卷积(C3D)实现的,而3D滤波器可以通过“膨胀”预先训练的2D滤波器来形成。除了对原始视频输入进行端到端建模之外,还发现光流和轨迹可能会有所帮助。流程和轨迹都是现成的模块,可能会发现远程、非局部的依赖性。




3.Non-local Neural Networks

3.1Formulation

神经网络中的非局部操作可定义为:
y i = 1 C ( x ) ∑ ∀ j f ( x i , x j ) g ( x j ) y^{i}= \frac{1}{C\left ( x \right )}\sum_{\forall j}^{}f\left ( x^{i},x^{j} \right )g(x_{j}) yi=C(x)1jf(xi,xj)g(xj) (1)

i表示一个输出位置的索引,其响应可通过所有位置的信息来计算,j表示所有位置的索引,x是输入信号,y为输出信号和x有相同的尺寸,函数f计算i和j之间的相关性,g计算位置j的输入信号表示,C(x)表示归一化因子。
公式(1)中的非局部操作考虑了所有位置信息,相比之下,卷积运算是对局部邻域的信息进行加权求和,
非局部操作不同于全连接层,公式1基于不同位置之间的联系来计算新的响应,而FC使用学习到的权重,换句话说,Xj和Xi之间的关系并不是输入数据在FC中的一个函数。此外,非局部操作支持可变大小的输入,且在输出时大小不变,而FC层需要固定大小的输入和输出,且会丢失位置的相关性信息。
非局部操作是灵活的模块,能够和的卷积递归一起使用,可以将其添加到神经网络的浅层,不想FC层通常用于网络末端,这种特点使得能够通过局部和非局部信息建立更丰富的层次结构。


3.2Instantiations

以下表示几个不同版本的映射函数f和g,实验表2a表明,非局部模型对这些映射并不敏感 ,这意味着通常非局部行为是模型提升的主要原因。
简单起见,本文只考虑线性嵌入形式的映射函数 g ( x j ) = W g X j g\left(x_{j}\right)=W_{g}X_{j} g(xj)=WgXj这里的 W g W_{g} Wg指的是要学习的权重矩阵,比如空间中的 11 卷积和时空中的 11*1 的卷积。
接下来讨论成对函数f的选择:
高斯函数 和非均值滤波与双边滤波类似,f选择高斯函数,如下:
f ( x i , x j ) = e x i T x j f\left(x_{i},x_{j}\right)=e^{x^{T}_{i}x_{j}} f(xi,xj)=exiTxj
x i T x j x^{T}_{i}x_{j} xiTxj表示点积相似性,欧式距离同样适用,但点积在深度学习平台中更容易实现,归一化因子设置为
C ( x ) = ∑ ∀ j f ( x i , x j ) C(x)=\sum_{\forall j}f(x_{i},x_{j}) C(x)=jf(xi,xj),
嵌入高斯函数 对高斯函数的简单扩展,计算嵌入空间中的相似性,本文考虑:
f ( x i , x j ) = e θ ( x i T ) ϕ ( x j ) f\left(x_{i},x_{j}\right)=e^{\theta (x^{T}_{i}) \phi (x_{j})} f(xi,xj)=eθ(xiT)ϕ(xj)
θ ( x i T ) = W θ x i \theta (x^{T}_{i})=W_{\theta}x_{i} θ(xiT)=Wθxi ϕ ( x j ) = W ϕ x j \phi(x_{j})=W_{\phi}x_{j} ϕ(xj)=Wϕxj,为两种不同的嵌入,另外设定 C ( x ) = ∑ ∀ j f ( x i , x j ) C(x)=\sum_{\forall j}f(x_{i},x_{j}) C(x)=jf(xi,xj),以下表明,机器翻译提出的自注意力机制模块是嵌入高斯版本是非局部操作的特殊情况,给一个i, 1 C ( x ) f ( x i , x j ) \frac{1}{C(x)}f(x_{i},x_{j}) C(x)1f(xi,xj)来沿着维度j计算权重,因此本文有 y = s o f t m a x ( x T W θ T W ϕ x ) g ( x ) y=softmax(x^{T}W^{T}_{\theta}W_{\phi}x)g(x) y=softmax(xTWθTWϕx)g(x),本文的工作是通过将自注意力机制和传统的计算视觉算法非局部均值结合来提供新的方法,并将自注意力机机制扩展到计算机视觉中用于图像/视频的通用空间/时空的非局部网络。尽管与自注意力机有关,但在我们的研究中注意力分配并不重要,通过以下两个非局部操作的替代版本来证明:
点积运算:
f f f可以被定义为点积相似性, f ( x i , x j ) = θ ( x i T ) ϕ ( x j ) f\left(x_{i},x_{j}\right)=\theta (x^{T}_{i}) \phi (x_{j}) f(xi,xj)=θ(xiT)ϕ(xj),采用嵌入版本,设置 C ( x ) = N C(x)=N C(x)=N,N表示x中位置的数量,点积和嵌入高斯核的不同在于softmax,它起到激活函数的作用。
链接
链接由关系网络中的成对函数用于视觉推理。本文也构造了链接形式的f:
f ( x i , x j ) = R e L U ( w f T [ θ ( x i ) , ϕ ( x j ) ] ) f(x_{i},x_{j})=ReLU(w^{T}_{f}[\theta(x_{i}),\phi(x_{j})]) f(xi,xj)=ReLU(wfT[θ(xi),ϕ(xj)]) [.,.]表示拼接, w f w_{f} wf表示权重向量将拼接的向量投影到标量上, C ( x ) = N C(x)=N C(x)=N.采用ReLU函数作为映射函数f。以上几个变体展示了非局部操作的灵活性,相信这些版本都有可能提升结果。













3.3Non-local Block

定义非局部模块为:
z i = w z y i + x i z_{i}=w_{z}y_{i}+x_{i} zi=wzyi+xi, y i y_{i} yi(6)
来自公式(1), + x i +x_{i} +xi表示残差链接,残差链接可以使非局部块插入到任何预训练模型中,成对计算可以通过简单的矩阵相乘来完成,而拼接操作直接采用前向链接。
非局部块的成对计算在高层级采样特征映射时是轻量级的,通过矩阵乘法完成的成对计算呢与标准网络中的卷积相当,本文采用以下方法进一步提高效率:
非局部块的实现:
设置 W g , W θ , W ϕ W_{g},W_{\theta},W_{\phi} Wg,Wθ,Wϕ的通道数为输入x的一半,遵循了瓶颈设计原则将计算量减少了一半,权重矩阵 W z W_{z} Wz计算 y i y_{i} yi上的位置嵌入,将通道数和x的通道数匹配。通过对 x j x_{j} xj进行池化二次采样可以进一步减少计算量,此技巧不改变非局部的操作,但可以是计算更加的稀疏,通过添加最大池化层来实现。




易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!