Non-local Neural Networks(2018年CVPR) 阅读笔记-1

        这是个人第一次写博客文章,首先就内容上,关于论文的理解不当之处,希望大家指正,做到相互交流;其次在语言表达上的不通顺之处,希望大家多多包涵。接下来我们进入正题。

       按照是什么?为什么?怎么办?的思路架构来整理论文。

1.灵感启发来源the classical non-local means method【1】,

2.作者提出了non—local 模块用于capturing long-range dependencies,什么是 long-range dependencies?

3.所提出的模块具有一定的泛化能力,可以用于许多框架中。

        模块的适用领域: 用于视频分类(时空域),静态图像数据(空域)和序列数据(时域)。论文实验部分主要是视频分类(时空域),其次还在目标检测,语义分割,关键点检测上做出了实验分析。

        什么是 long-range dependencies?(这里可能有些抽象,解释不太清楚)图像数据,可以简单理解为 空间上 某一点位置像素值 与 其他位置的像素值 之间的关系;随着卷积操作的重复使用,网络层次加深,形成的感受野变大,能够获取空间上比较远的依赖关系。序列数据,可以理解为在时域上,该位置的值与过去的每一时刻的值都有关,也与将来每一时刻的值都有关,依赖关系的程度就是对应权重值的大小。

        这种关系有什么用?换句话说:作者为什么觉得捕获了这个关系,对性能有提升?这种关系怎么直观的理解呢?

我的理解就是:(1)卷积和循环操作能够通过重复叠加来捕获长距离关系,继而实现一些任务。(2)作者提出的non—local 操作能直接捕获长距离关系,当然也可以实现任务。(3)作者的论点在于提出操作来捕获,而不是在于回答捕获的关系为什么对效果有用。(4)所以这个问题有些尴尬,理解不了。

        作者指出:当CNN层数加深,或者RNN循环次数增多,虽然可以捕获long-range dependences,但是计算效率低,导致优化困难。

        所提出的操作具体内容是什么呢?该怎么实现?怎么使用?关于可视化图怎么理解?(下面会有好多关于论文中公式的部分截图,便于大家浏览。)

a.具体定义

f函数可以理解为权重(依赖关系的大小),g函数——一个变化空间函数,第i位置的值等于空间上所有位置的值的加权平均,(权重就是依赖关系的大小)。关于g(*)函数的说明

在这里作者给出f(*)函数有4个版本,分别是:高斯函数、高斯嵌入函数、点积函数、级联函数。(这一部分贴上函数图片,做出简要说明)

(1)高斯函数:

是点积相似度(在深度学习算法中便于实现),也可以用欧式距离相似度,权重之和,考虑到归一化,

(2)高斯嵌入函数

作者指出,这里用于机器翻译的注意力机制【2】是利用高斯嵌入函数版本的模块的一个特例,此时这里就是softmax函数。(乘积求和取平均 ==平均乘积再求和,公示的变形)

(3)点积函数:

(4)级联函数:

b.怎么实现?

作者利用残差连接,可以将模块与现有的训练模型进行结合。

实现结构图:(论文中的实验部分主要是针对高斯嵌入版本的使用)

关于该图,做以下说明:由于作者实验主要是针对视频分类,是时空域上的内容,这个图中涉及到三维卷积的内容,可以将其简单的理解为二维卷积,见修改后的下图,关于具体计算,这里涉及到矩阵乘法,所以看起来比较复杂,建议大家可以先利用xi 和xj进行简单的推导,在扩展到X上来。

c.怎么使用?

作者在这里将其放到res-net50和res-net101网络架构上进行实验,见下图。

附图的简要说明:由于实验主要是针对视频分类,是三维卷积【3】;所以这个stride这里后面有三个值(2,2,2)。

这部分是对实验操作的细节部分的理解:上图是二维卷积网络框架(2D ConvNet baseline (C2D)),(为了便于理解作者的实验部分,在这里我也会做一些简单的介绍,自己当时看的时候很晕,现在也勉强理解,希望能有所帮助,不正确的地方还望指正),接着作者将其扩到三维卷积(Inflated 3D ConvNet (I3D)),这里只是inflating the kernels(拓展卷积核的维度),

比如:二维的 kXk 变成 tXkXk (t是时域上的跨度帧),作者只是将残差块中的二维的3X3卷积变为三维的3X3X3的卷积核,就有了I3D3×3×3这个结构;将残差块中的第一个二维的1X1卷积变为三维的3X1X1的卷积核,也就有了I3D3×1×1这个结构。每两个残差块变一个核,将conv1 变为5X7X7。

在实验部分,作者做了大量实验:<1>f函数的选择,<2>block加的具体位置,<3>加模块的数量,<4>适用领域

<5>Non-local vs. 3D Conv,<6>Non-local 3D ConvNet,<7>Longer clips

d.可视化图的理解:

任务是视频分类,图上是小男孩踢足球的小视频,每幅图片是视频的某一帧,会发现,左边第一幅图的Xi足球位置与图1、图2中小男孩的头(眼睛和脖子)、图3、图4中足球和头部(这些是Xj位置)都有关,也就是说在时空域上,足球的(Xi)位置与整个视频中男孩头部和其他位置的足球关系程度比较大,其他关系较小。

对于其合理的解释就是男孩踢球时,需要用眼睛、头部看着足球,所以整个过程中二者关系最大,其他草坪等背景什么的 关系就不是很明显了;另外,我猜测,如果视频中出现孩子的脚,那么脚关系也是比较大的。对于男孩拍篮球的小视频而言,当然手和球的关系也是比较大的。   深一点的理解就是,所做的任务主要是针对  一个视频  中的动作(这一姿势)来识别分类的。

e. 参考论文

【1】A. Buades, B. Coll, and J.-M. Morel. A non-local algorithm for image denoising. In Computer Vision and Pattern Recognition (CVPR), 2005. 1, 2, 3

【2】A. Vaswani, N. Shazeer, N. Parmar, J. Uszkoreit, L. Jones, A. N. Gomez, L. Kaiser, and I. Polosukhin. Attention is all you need. In Neural Information Processing Systems (NIPS), 2017. 2, 3, 6

【3】https://www.cnblogs.com/szxspark/p/8445406.html

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值