[深度学习论文笔记][arxiv 1711] Non-local Neural Networks

本文介绍了一种非局部模块(NL block)的网络结构,用于深度学习中融合非局部信息,适用于视频分类、物体检测、物体实例分割等任务。NL block借鉴了non-local means方法,并在实验中表现出优于传统CNN和RNN的特点,特别是在信息关联和计算效率方面。文章对比了不同定义方式的f(.)函数,并提出了Embedded Gaussian+Dot product的方案。NL block可以通过残差结构轻松插入现有网络中,且对输入尺寸无限制,具有较小的计算量和额外参数。
摘要由CSDN通过智能技术生成

[arxiv 1711] Non-local Neural Networks

Xiaolong Wang, Ross Girshick, Abhinav Gupta, Kaiming He

from CMU, FAIR

paper link

Motivation

“Non-local”直译为“非局部”。个人的理解是指特征提取时,当前输入数据的特征计算要考虑其它输入数据的信息。举例来说,非局部操作的关注点就是在于如何建立起图像上两个有一定距离的像素之间的联系,如何建立视频里两帧的联系,如何建立一段话中不同词的联系。

一个典型的CNN网络是由一系列卷积操作累积起来的。对于使用在图像上的CNN,每个卷积操作只能捕捉到输入数据的局部信息。整个网络通过局部操作的逐步累积来获得范围较广的信息提取。而RNN则是通过循环的方式处理序列输入(如视频每一帧图像的时间序列或者图片上一列像素的空间序列),从而融合非局部的信息。

这篇文章提出三点CNN和RNN在融合非局部信息上的三个劣势:1.计算不高效;2.优化更难;3.非局部特征的信息传递不够灵活,功能不够强大。当然,这也是因为CNN和RNN的初衷并不是专门来融合非局部信息的。

在这篇文章中,作者提出了一种非局部模块(non-local block, 简称NL block)的网络结构,来帮助深度网络更好地融合非局部的信息。这对于一些问题是非常重要的。

Method

从使用在图像去噪问题中的non-local means[1]方法出发,作者对NL block的抽象描述为:
这里写图片描述
以图像为背景来说的话,i,j是像素坐标,x,y是输入和输出信息。j的取值范围是任意的坐标。C(x)是一个归一化常数。f(.)是用来构建i,j点处信息关联的二输入函数。g(.)是计算j点信息对i点影响的单输入函数。

这样的非局部操作其实很常见,从广义的角度来讲可以从多个已有的研究方向来理解这个操作。首先这是从图像去噪中借鉴来的模型。除此之外,如果f(.)函数输出的是一个概率值,即0~1之间的数值,那么这就是前段时间有所讨论的self-attention[2]。因为(i,j)二元坐标对取遍了所有情况,这个定义又很像dense CRF[3],或者可以认为这也是一种图模型。

回到这篇文章中。作者对f(.)有很多不同选择的定义方式。通过实验选定了名为Embedded Gaussain+Dot product的方案。对g(.)的定义是一个简单的线性函数。NL block的输出并没有替代输入,而是和原输入相加,形成一个残差结构(residual),得到 zi

g(xj)=W
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值