非局部神经网络,打造未来神经网络基本组件

简介: 将非局部计算作为获取长时记忆的通用模块,提高神经网络性能在深度神经网络中,获取长时记忆(long-range dependency)至关重要。对于序列数据(例如语音、语言),递归运算(recurrent operation)是长时记忆建模的主要解决方案。

将非局部计算作为获取长时记忆的通用模块,提高神经网络性能在深度神经网络中,获取长时记忆(long-range dependency)至关重要。对于序列数据(例如语音、语言),递归运算(recurrent operation)是长时记忆建模的主要解决方案。对于图像数据,长时记忆建模则依靠大型感受野,后者是多层卷积运算堆叠的结果。 

卷积和递归运算处理的都是一个局部邻域,可以是空间局部邻域,也可以是时间局部邻域,因此只有不断重复这些运算,逐步在数据中传播信号,才能获取长时记忆。而不断重复局部计算有几个限制。首先,计算效率低下。其次,会产生一些优化问题,需要仔细解决。最后,这些问题使 multihop dependency 建模十分困难,multihop dependency 建模就是在很长的时间/空间位置之间来回传送信息。

 d7a72d719336c4ef6dc1c091ad1f6910f8184f87

 

非局部运算是计算机视觉中经典的非局部均值运算的一种泛化结果。直观地说,非局部运算将某一处位置的响应作为输入特征映射中所有位置的特征的加权和来进行计算。

我们将非局部运算作为一个高效、简单和通用的模块,用于获取深度神经网络的长时记忆。我们提出的非局部运算是计算机视觉中经典的非局部均值运算的一种泛化结果。直观地说,非局部运算将某一处位置的响应作为输入特征映射中所有位置的特征的加权和来进行计算。这些位置可以是空间位置,也可以是时间位置,还可以是时空位置,这意味着我们的计算适用于图像、序列和视频问题。

使用非局部运算有几大好处:(a)与递归和卷积运算的渐进的操作相比,非本局部运算直接通过计算任意两个位置之间的交互来获取长时记忆,可以不用管其间的距离;(b)正如他们在实验中所显示的那样,非局部运算效率很高,即使只有几层(比如实验中的5层)也能达到最好的效果;(c)最后,他们的非局部运算能够维持可变输入的大小,并且能很方便地与其他运算(比如实验中使用的卷积运算)相组合。

 70d2e0dd104abee319a4e4094675f54fc28a7b9c

一个时空非局部组件。特征映射被表示为张量,⊗表示矩阵乘法,⊕表示单元和。每一行进行softmax。蓝框表示1×1×1的卷积。图中显示的是嵌入式高斯版本,具有512个通道的瓶颈。

“我们展示了非局部运算在视频分类应用中的有效性。在视频中,分隔开的像素在空间和时间上都会发生长时交互(long-range interaction)。我们的基本单元,也即单一的一个非局部模块,可以以前向传播的方式直接获取这些时空记忆。增加了几个非局部模块后,我们的“非局部神经网络”结构能比二维和三维卷积网络在视频分类中取得更准确的结果。另外,非局部神经网络在计算上也比三维卷积神经网络更加经济。我们在 Kinetics Charades 数据集上做了全面的对比研究。我们的方法仅使用 RGB 数据,不使用任何高级处理(例如光流、多尺度测试),就取得了与这两个数据集上竞赛冠军方法相当乃至更好的结果。”

为了证明非局部运算的通用性,作者在 COCO 数据集上进行了物体检测、实例分割和人体姿态关键点检测的实验。他们将非局部运算模块与 Mask R-CNN 结合,新模型在计算成本稍有增加的情况下,在所有三个任务中都取得了最高的精度。由此表明非局部模块可以作为一种比较通用的基本组件,在设计深度神经网络时使用。
实验及结果

在这一节我们简单介绍论文中描述的实验及结果。

 cd0ba85b10b52ad0c197726966c00fa6ae4b0240

视频的基线模型是 ResNet-50 C2D。三维输出映射和滤波核的尺寸用T×H×W 表示(二维核则为 H×W),后面的数字代表通道数。输入是32×224×224。方括号里的是残差模块。

 2b37af040ee9e6b3790ad430a95da887f18e50e3

c)展示了将非局部模块加入 C2D 基线后的结果,实验中用到了50层和101层的ResNet,可以看出,总体而言,增加的非局部模块越多,最后的精度越高。

d)展示了时间、空间和时空同时非局部的效果,时空一起的效果最好。

e)对比了非局部模块和三维卷积神经网络,增加了非局部模块(5个)的效果要好一点点。

 

17e98e8302d09eb10fc4cf7609bc400ed62359b8

f)将非局部与三维卷积相结合的效果,结合了比单纯的三维卷积更好。

g)检验了在128帧的视频中(f)中的模型的效果,发现能够保持比较稳定。

 13124ae729536902ca5a6b54f588f7e5f8b6c0f7

最后,下面这张图展示了将非局部模块与 Mask R-CNN 结合后,在 COCO 物体检测、实例分割以及人体关键点检测任务中性能均有所提升,使用了50100层的ResNet,以及152层的ResNeXt

 04e81cc1aa2710865e0ca3613d14185cff3355be

相关文章
|
6天前
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】32. 卷积神经网络之稠密连接网络(DenseNet)介绍及其Pytorch实现
【从零开始学习深度学习】32. 卷积神经网络之稠密连接网络(DenseNet)介绍及其Pytorch实现
|
6天前
|
机器学习/深度学习
【从零开始学习深度学习】37. 深度循环神经网络与双向循环神经网络简介
【从零开始学习深度学习】37. 深度循环神经网络与双向循环神经网络简介
|
6天前
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】31. 卷积神经网络之残差网络(ResNet)介绍及其Pytorch实现
【从零开始学习深度学习】31. 卷积神经网络之残差网络(ResNet)介绍及其Pytorch实现
|
2天前
|
机器学习/深度学习 搜索推荐 PyTorch
【机器学习】图神经网络:深度解析图神经网络的基本构成和原理以及关键技术
【机器学习】图神经网络:深度解析图神经网络的基本构成和原理以及关键技术
19 2
|
6天前
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】36. 门控循环神经网络之长短期记忆网络(LSTM)介绍、Pytorch实现LSTM并进行训练预测
【从零开始学习深度学习】36. 门控循环神经网络之长短期记忆网络(LSTM)介绍、Pytorch实现LSTM并进行训练预测
|
19天前
|
Kubernetes 网络虚拟化 网络架构
k8s 网络组件详细 介绍
k8s 网络组件详细 介绍
|
1月前
|
机器学习/深度学习 算法 TensorFlow
TensorFlow 2keras开发深度学习模型实例:多层感知器(MLP),卷积神经网络(CNN)和递归神经网络(RNN)
TensorFlow 2keras开发深度学习模型实例:多层感知器(MLP),卷积神经网络(CNN)和递归神经网络(RNN)
|
1月前
|
机器学习/深度学习 自然语言处理 TensorFlow
Python TensorFlow循环神经网络RNN-LSTM神经网络预测股票市场价格时间序列和MSE评估准确性
Python TensorFlow循环神经网络RNN-LSTM神经网络预测股票市场价格时间序列和MSE评估准确性
|
1月前
|
机器学习/深度学习 算法 TensorFlow
RNN循环神经网络 、LSTM长短期记忆网络实现时间序列长期利率预测
RNN循环神经网络 、LSTM长短期记忆网络实现时间序列长期利率预测
|
1月前
|
机器学习/深度学习 存储 计算机视觉
sas神经网络:构建人工神经网络模型来识别垃圾邮件
sas神经网络:构建人工神经网络模型来识别垃圾邮件

热门文章

最新文章