4c8a9ce3f7340cba93b06a293e2f4668.png

文章首发于《有三AI》

【模型解读】从“局部连接”回到“全连接”的神经网络​mp.weixin.qq.com

这是深度学习模型解读第9篇,本篇我们简单介绍非局部神经网络。

与全连接神经网络相比,卷积神经网络在每一层是局部的,采用了较小的卷积核,感受实际对应到原始图像空间较大的区域,而且随着网络的加深,感受野增加。但是感受野毕竟不是全图,在降采样的过程中也会丢失信息。

那为什么还要这么做呢?首先这是计算量的限制,卷积核越大计算量越大,而且会存在非常多的冗余。另外,这也是模仿人眼的分层视觉理论,即不断加深抽象层级。

虽然网络结构从全连接进化到局部连接后才有了现在的发展,但并不意味着拥有更大视野的全连接就没有用了,至少Non-local networks又开始重新思考这个问题。

1 什么是Non-Local Networks

这背后的核心思想是non-local,说到non-local又得提一下经典的non-local means滤波算法。

b519b9219c04707da95751532fa486e8.png

假设输入是f,输出是g,一个经典的局部滤波算子如上,它是只在一个邻域内的加权平均,所以称之为local滤波方法,实际上上面是双边滤波的公式。

36a3bbe07f25b899564031d082cc5fea.png

而non-local顾名思义,将这个邻域扩展到全图。如上图p作为中心像素,q1,q2,q3对p的滤波都有贡献,实际上图像上任意一个点都有贡献。

36a3bbe07f25b899564031d082cc5fea.png

借用论文中的公式如上,很简单,关键就在这个f如何定义。传统的最好的图像降噪算法BM3D,就是non-local means方法,它通过计算不同图像块的相似性来获得权重。

2 为什么需要Non-local

在正式说如何实现时,先来总结一下为什么我们需要这个non-local连接。

首先我们要看现在的CNN是怎么做的,为了能够捕捉到更大的感受野,现在的CNN是通过不断加深网络,逐步增加感受野的方案,RNN则是通过循环的方式处理序列输入(如视频帧序列或者图片上一行一列等空间序列),从而融合非局部的信息,它们都有几个缺点。

(1) 计算效率不高,这是肯定的,明明可以一步到位,却去增加了网络深度。

(2) 感知效率不高,虽然感受野可以通过深度增加,但这个增加是有限的,实际上感受野并没有理论计算出来那么大,很多的长程的信息依然获取不到。

(3) 增加优化难度,我们知道随着网络的加深,网络的优化会面对各种梯度问题。

而更大的感受野对于视频图像中的场景理解,跟踪,语音识别等时序问题都是必要的。因此我们需要一个Non-Local连接,而non-local也有理由表现得更好,就好比Non-Local means方法比local filter方法去噪更强,dense crf比普通的crf更强一样。

3 怎么实现

首先要说明的是,non-local可以是只在图像空间上的non-local,也可以是不同时间帧上的non-local,甚至是两者的融合,不过理解起来都是一样的。

8ba6bfc4c155470601014dc1ae2e7424.png

上面展示的是一个视频数据的block,首先我们要注意,non-local-block可以作为基础的block嵌入到现有的模块,因为它的输入与输出相等,都是T*H*W*1024。

其中1024是通道数,T就是时间帧数。⊗是矩阵乘法,⊕是逐像素相加。

我们看上面的图,f的操作,对应的就是输入T*H*W*512与512*THW矩阵相乘输出THW*THW的模块。可以看到,f(.)的操作就是每个通道上每个点的特征向量进行内积,空间信息保留了下来,输出还是HxW大小。

另外上面的设计采用了残差的方式,所以可以轻松地嵌入现有的任何网络。

一如既往,咱们没有贴实践效果。从理论猜想和作者的实验结果都可以看出,对于视频分类non-local比对应的local网络效果会更好,这是必然的,视频中的主体空间移动速度非常快,如果没有大的感受野未必能很鲁棒的捕捉一个动作到底是跳高还是跳水。

a1f8b176efbaa5eb5f1ca25c238d0b28.png

3e598110040774c2e71143d9dce77c94.png

依据作者们的结论,在网络浅层效果会更好,我想这也是可以理解的,毕竟随着网络深度增加,感受野增加了。

更多的实践,放心,随着咱们这个系列接近尾声,实践也快来了,不过你可能需要补一补以前的知识了。

参考文献

[1] Wang X, Girshick R, Gupta A, et al. Non-local neural networks[C]//The IEEE Conference on Computer Vision and Pattern Recognition (CVPR). 2018.

----------------------------更多相关内容,请阅读以下资料----------------------------
模型解读系列目录:

【模型解读】从LeNet到VGG,看卷积+池化串联的网络结构

【模型解读】network in network中的1*1卷积,你懂了吗

【模型解读】GoogLeNet中的inception结构,你看懂了吗

【模型解读】说说移动端基准模型MobileNets

【模型解读】pooling去哪儿了?

【模型解读】resnet中的残差连接,你确定真的看懂了?

【模型解读】“不正经”的卷积神经网络

【模型解读】“全连接”的卷积网络,有什么好?

【模型解读】从“局部连接”回到“全连接”的神经网络

【模型解读】深度学习网络只能有一个输入吗

【模型解读】从2D卷积到3D卷积,都有什么不一样

【模型解读】浅析RNN到LSTM

【模型解读】历数GAN的5大基本结构

阿里天池模型结构设计与优化直播:

843803fd5e07effa064ecec309ff6d0a.png
【总结】言有三&阿里天池深度学习模型设计直播汇总,附赠超过200页直播PPT课件​mp.weixin.qq.com
c4f45b30a11367885b0705bed43e129e.png
有三AI知识星球中网络结构1000变,每日更新
【杂谈】有三AI知识星球一周年了!为什么公众号+星球才是完整的?​mp.weixin.qq.com
3b2624346a642f51e4acbe643d83dc82.png

4de7c3663dc95ea4d0d7b1e854e432d7.png

c3843d86e2c9bfe18e67ed3261849262.png

020f0bcc79d920d047e9ec2c14cc24ed.png

a3ec3b4d1e49626e8668ba209855d82f.png
有三AI秋季划模型优化组
【通知】如何让你的2020年秋招CV项目经历更加硬核,可深入学习有三秋季划4大领域32个方向​mp.weixin.qq.com
e177eec039873226c9f8da6751c2ef93.png

e3c4c14cd7f6e42cd0a45d6a79907025.png
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐