一、引言
传统的深度学习方法(如卷积神经网络CNN和循环神经网络RNN)在捕捉长距离依赖关系时存在局限性。CNN主要关注局部邻域的特征,而RNN则依赖于序列的递归计算,无法直接捕捉全局信息。为了解决这一问题,本文提出了一种非局部神经网络(Non-local Neural Networks),通过非局部操作捕捉长距离依赖关系。
非局部操作的核心思想是:在计算某一位置的特征响应时,不仅仅依赖于局部邻域,而是参考整个特征图上的所有位置。通过这种方式,非局部操作能够有效捕捉全局信息,从而提升模型在视频分类、物体检测、分割和姿态估计等任务中的性能。
二、非局部操作的定义
非局部操作的数学定义如下:
公式:
对于输入特征图
,非局部操作的输出为:

其中:
- yi 是输出特征图在位置 i 的值;
- f(xi,xj) 是位置 i 和位置 j 的相似性函数;
- g(xj) 是对位置 j 的特征变换;
- C(x) 是归一化因子,用于确保权重的总和为1。
相似性函数 f
相似性函数 f 的选择对非局部操作的性能有重要影响。文献中提出了几种常见的相似性函数:
- 点积(Dot Product):

- 高斯函数(Gaussian):

- 嵌入点积(Embedded Dot Product):

特征变换 g
特征变换 g 通常是一个简单的线性变换:

其中 Wg 是可学习的权重矩阵。
归一化因子 C(x)
归一化因子通常取为:

三、非局部块的实现
非局部操作被实现为一个模块,称为“非局部块”(Non-local Block)。非局部块可以插入到现有的深度神经网络中,用于增强其捕捉长距离依赖的能力。
非局部块的结构
非局部块的结构如下:
- 输入特征图 x ;
- 通过相似性函数 f 计算位置之间的权重;
- 对特征图进行特征变换 g ;
- 通过加权求和计算输出特征图 y ;
- 将输出特征图与输入特征图相加,形成残差连接。
非局部块的公式
非局部块的输出为:
![]()
其中 yi 是非局部操作的输出。
四、非局部操作的优势
-
捕捉长距离依赖:
非局部操作通过对所有位置的特征进行加权求和,能够直接捕捉全局信息,而不受局部邻域的限制。 -
通用性:
非局部操作可以作为深度神经网络的基本构件,适用于多种任务(如视频分类、物体检测、分割和姿态估计)。 -
计算效率:
通过简化的前馈结构,非局部操作在计算效率上优于传统的递归操作。
五、实验与结果
数据集
文献中使用了多个数据集进行实验,包括:
- Kinetics:一个大规模视频分类数据集;
- Charades:一个视频动作识别数据集。
实验设置
在实验中,非局部块被插入到现有的深度神经网络(如ResNet和3D卷积网络)中,以验证其性能提升。
实验结果
- 在Kinetics数据集上,非局部神经网络显著提升了视频分类的准确率。
- 在Charades数据集上,非局部神经网络在动作识别任务中表现出色。
消融实验
通过消融实验,文献验证了非局部块对模型性能的显著提升,尤其是在更深的网络中。
六、总结与展望
非局部神经网络通过非局部操作有效捕捉长距离依赖关系,为深度学习模型提供了一种新的构建模块。文献强调,非局部操作的通用性使其适用于多种计算机视觉任务,并呼吁未来的网络架构广泛采用这种非局部层,以进一步提升性能。
表格与图示
表1:非局部操作与传统操作的比较
| 操作类型 | 依赖范围 | 计算方式 | 优势 |
|---|---|---|---|
| 卷积操作 | 局部邻域 | 卷积核 | 高效处理局部特征 |
| 循环操作 | 时间序列 | 递归计算 | 捕捉时间依赖 |
| 非局部操作 | 全局范围 | 加权求和 | 捕捉长距离依赖 |
非局部神经网络:捕捉长距离依赖

1万+

被折叠的 条评论
为什么被折叠?



