【何恺明最新论文】非局部神经网络,打造未来神经网络基本组件

大神 Kaiming He 日前在 arXiv 上新挂出来一篇论文,标题延续了一贯的简洁风格,叫做《非局部神经网络》(Non-local Neural Networks)。

这是一篇 CMU 与 FAIR 合作的论文,第一作者是 CMU 的 Xiaolong Wang,其他两位作者是 Ross Girshick(DenseNet 作者之一)和 Abhinav Gupta(CMU 教授,他今年 CVPR + ICCV 一共发表了 15 篇论文)。

摘要

卷积和递归运算都是一次处理一个局部邻域的基本计算组件(building block)。在本文中,我们将非局部运算(non-local operation)作为获取长时记忆(long-range dependency)的一类通用组件。受计算机视觉中的经典非局部均值方法的启发,我们的非局部运算将一处位置的响应计算为所有位置的特征的加权和。这个组件可以插入到许多计算机视觉结构中。在视频分类任务上,即使没有任何花里胡哨的处理,我们的非局部模型也能在 Kinetics 和 Charades 数据集上获得与一些当前视觉竞赛的冠军模型相当乃至更好的效果。在静态图像识别中,我们的非局部模型提高了 COCO 物体检测/分割和人体姿态估计这些任务的性能。代码今后公开。

作者训练好用于视频分类的一个网络,在时空上进行非局部运算的示例。计算时,位置 Xi 的响应等于时空中所有位置的特征的加权和。注意第一帧里球的位置与后两帧球的关联。来源:论文(下同)

论文中给出的深度神经网络非局部计算公式,其中 i 是(空间、时间或时空上的)输出位置的序号,计算的就是位置 i 的响应,j 是所有可能位置的序号。x 是输入信号(一般是特征,可以是图像数据、序列数据或视频数据),y 是与 x 相同大小的输出信号。函数 f 计算 i 和所有 j 之间的标量(代表两者间的关系)。一元函数 g 计算位置 j 处的输入信号的表征。最终响应通过因子C(x)归一化。

将非局部计算作为获取长时记忆的通用模块,提高神经网络性能

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

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

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

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

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

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

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

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

实验及结果

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

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

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

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

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

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

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

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

知乎讨论:将传统视觉处理里的好方法整合进入深度神经网络,值得关注

知乎用户 Dr.Frankenstein 认为:这篇论文动机直接,但也需要一些想象力才能提出,将传统视觉处理里的好操作想法融合到深度网络里做成一个组件,延续了一直以来发paper的思路,值得关注的是实验结果。以下内容经授权转自知乎,详见文末链接。

Non-local mean的传统工作,这篇文章里做了简要介绍。在这里应用到CNN里面,说得暴力一点,就是在做一个网络的时候把卷积核搞的跟整张图片一样大,那为啥要这么暴力呢?

我们要回归CNN一开始的设计思想。CNN一开始是面向目标实体识别的任务的。它就是要模拟人的认知方式,达到一个从局部到宏观的层次化认知流程。所以每一层的卷积核就不该设计的太大,底层的去捕捉轮廓信息,中层的组合轮廓信息,高层的组合全局信息。

但对于序列化的任务,这种思路就不一定能学到充分的需要的信息。比如一个人跳水的视频,每一帧中CNN可以很好的识别他的脚在哪,一个卷积核能覆盖的位置也就是脚及其四周。而要识别跳水的动作,我们要看到他的脚跟他的膝盖、他的大腿、胳膊,发生了一系列的相对位移关系,这些信息是将跳水区别于相扑运动的重要信息,因为运动员静态地看都是只穿小裤衩而已。而这些信息难以被关注于局部的卷积核收集到。

要注意的是,卷积核真的只关注于局部吗?如果只看一层,那答案就是“是的”。但纵观整个网络,不同的全局信息最终被综合,但由于sampling损失了大量信息,就没有这篇文章这种暴力做法来得效果明显。所以传统CNN不是很local,但是信息逐层传递丢失太多以致于不能有期待的效果。

到这里你会发现这篇文章的想法是很简单直接的,但是有趣的其实是实验的结果:

  1. 单一的non-local block加在较浅层次效果显著。Reasonable。高层次丢失的信息太多了,找不到细小的远距离的联系,太模糊了。
  2. 多个non-local block加入,也就是加深non-local特性,有一定效果提升但不会很明显。Reasonable。既然容易起作用的是在低层加,那么使劲加深其实意义不大,加多了这种东西就要考虑梯度消失和引入噪声。毕竟你把背景全都扔进来算。
  3. 时空同时non-local比单一时间维度或单一空间维度效果都要好。这不是废话吗。
  4. Non-local比三维CNN要好。也是废话。这是有人会问,non-local这么吊怎么不把卷积层全都替换掉?肯定不行的!你要依赖小卷积核去捕捉主体信息,同时用他的block捕捉全局信息,两者相辅相成才有好的效果。

值得注意的是,在视频变长以后,non-local的trick的提升变小了。Reasonable。因为在时间维度上,这些短视频帧数太短,时间维度上的小卷积得到的信息不足,劣势明显。时间变长了,non-local也不能handle这么大的信息量了,损失一些信息的小卷积反而不那么差劲了。

总结来说,insight可以的,不算很灌水。实验有些有趣的结论,但不属于极其优秀的那一类。调参是玄学,能不能有很好效果且看公布代码。

知乎用户 2prime 也做了想法类似的工作,我们取得授权后将部分评论节选如下:

文章里面提出来attention就是nonlocal算子的特例是非常有见识的,在视频的时间一档做了一个nonlocal attention,巧妙地将kernel做成两个函数的内积,就是\phi和\theta,然后矩阵内积做出来了kernel,最后内积上提取出来的特征1x1卷积核用来降维。

非局部神经网络究竟如何?至少,作者在结论中写道,所有任务,只需简单增加一个非局部模块,就能得到稳定的性能提升。我们希望非局部神经网络能够成为未来网络结构的基本组成部分(essential component)。

原文发布时间为:2017-11-23

本文作者:费欣欣

原文链接:【何恺明最新论文】非局部神经网络,打造未来神经网络基本组件

时间: 2024-10-06 03:59:12

【何恺明最新论文】非局部神经网络,打造未来神经网络基本组件的相关文章

Facebook介绍ICCV2017收录论文,其中五分之一都有何恺明的名字

本文讲的是Facebook介绍ICCV2017收录论文,其中五分之一都有何恺明的名字, 本周,全球的计算机视觉专家们即将齐聚威尼斯参加 ICCV (International Conference on Computer Vision)2017,展示计算机视觉和相关领域的最新研究进展.ICCV由IEEE主办,与计算机视觉模式识别会议(CVPR)和欧洲计算机视觉会议(ECCV)并称计算机视觉方向的三大顶级会议.CVPR每年召开一次,而ECCV和ICCV在世界范围内每年间隔召开.ICCV论文录用率很

两届CVPR最佳论文得主何恺明新作:应对样本的不平衡分布,刷新密集物体检测表现上限

雷锋网 AI 科技评论按:CV大牛何恺明在Facebook人工智能实验室的新作,一起来围观! 何恺明博士,2007年清华大学毕业之后开始在微软亚洲研究院(MSRA)实习,2011年香港中文大学博士毕业后正式加入MSRA,目前在Facebook人工智能实验室(FAIR)实验室担任研究科学家.何恺明博士最让人印象深刻的是曾两次以第一作者身份摘得CVPR最佳论文奖(2009和2016),其中2016年CVPR最佳论文为图像识别中的深度残差学习(Deep Residual Learning for Im

【ICCV 2017华人雄起】何恺明包揽两项最佳论文,40%投稿来自中国

计算机视觉顶会ICCV 2017各大奖项公布:何恺明包揽两项最佳论文奖:贾扬清率Caffe团队获"无私贡献奖":DeepMind CEO 哈萨比斯导师Tomaso Poggio获得终身成就奖.沿袭CVPR的势头,ICCV 2017华人表现依然强劲,有40%的投稿来自中国,清华大学投稿数量在所有机构中位居第一. 两年一度的计算机视觉领域顶会ICCV 2017正在意大利威尼斯召开.由于计算机视觉及相关领域的快速发展,本届ICCV参与度创历史新高,共收到2143篇论文投稿,比上届增加了26%

完整复现何恺明ICCV获奖论文结果并开源 !(附论文&开源代码)

ICCV 作为计算机视觉的顶级会议,2017年共收到2143篇论文投稿,比上一届ICCV2015的1698篇增加了26.2%.共621篇被选为大会论文,录用比例28.9%:poster.spotlight.oral 比例分别为24.61%.2.61%和2.09%. 组委会根据作者署名统计了不同大学的研究数目,清华大学超过CMU.MIT.ICL.斯坦福以及谷歌名列第一,上海交通大学.北京航空航天大学也在前10当中. 而此次大会最大的新闻一定是何恺明大神在 ICCV 上拿下了双best paper!

周博磊知乎热答:如何评价何恺明大神斩获ICCV 2017最佳论文

2017年10月24日下午,Facebook AI 研究员何恺明大神斩获ICCV 2017最佳论文,这是他第三次斩获顶会最佳论文,对于Kaiming He 在 ICCV 2017 上拿下双 Best的paper,他的中大同学,另一位大神周博磊在知乎写了一段他眼中的凯明师兄. 大数据文摘经周博磊授权,发布这篇文章,看看大神眼中的大神是什么样? 其实从他发Dark Channel那篇论文开始,我就挺关注他的研究工作.那时候还是前Deep Learning时代的计算机视觉,一切都还不怎么work,还流

【前沿】何恺明大神ICCV2017最佳论文Mask R-CNN的Keras/TensorFlow/Pytorch 代码实现

我们提出了一个概念上简单.灵活和通用的用于目标实例分割(object instance segmentation)的框架.我们的方法能够有效地检测图像中的目标,同时还能为每个实例生成一个高质量的分割掩码(segmentation mask).这个方面被称为 Mask R-CNN,是在 Faster R-CNN 上的扩展--在其已有的用于边界框识别的分支上添加了一个并行的用于预测目标掩码的分支.Mask R-CNN 的训练很简单,仅比 Faster R-CNN 多一点计算开销,运行速度为 5 fp

非局部 均值滤波-非局部均值滤波和均值滤波的区别是什么?

问题描述 非局部均值滤波和均值滤波的区别是什么? 均值滤波的原理是用目标像素的周围8个像素的平均值代替目标像素,非局部均值滤波的原理是找到和目标像素的相似像素来代替吧?是不是?我是小白..不太懂...谢了各位大神~~~~~~ 解决方案 非局部均值是一种基于快匹配来确定滤波权值的.即先确定一个块的大小,例如7x7,然后在确定一个搜索区域,例如15x15,在15x15这个搜索区域中的每一个点,计算7x7的窗口与当前滤波点7x7窗口的绝对差值和,然后在计算一个指数函数,所有的搜索点都用指数函数计算出一

怎样用同一个归一化的式子表示双边滤波,非局部均值滤波以及引导滤波的滤波核函数??急急急

问题描述 怎样用同一个归一化的式子表示双边滤波,非局部均值滤波以及引导滤波的滤波核函数??急急急 怎样用同一个归一化的式子表示双边滤波,非局部均值滤波以及引导滤波的滤波核函数??急急急 解决方案 双边滤波与引导滤波双边滤波与引导滤波均值滤波 解决方案二: 这个一般都是用matlab,有算法实现的

终于盼来了Hinton的Capsule新论文,它能开启深度神经网络的新时代吗?

本文讲的是终于盼来了Hinton的Capsule新论文,它能开启深度神经网络的新时代吗?, 眼见"深度学习教父"Geoffery Hinton在许多场合谈到过自己正在攻关的"Capsule"之后,现在我们终于等到了这篇论文,得以具体感受Capsule的特性.雷锋网 AI 科技评论把这篇论文主要成果介绍如下. 背景 目前的神经网络中,每一层的神经元都做的是类似的事情,比如一个卷积层内的每个神经元都做的是一样的卷积操作.而Hinton坚信,不同的神经元完全可以关注不同的