文章首发于《有三AI》

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

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

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

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

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

1 什么是Non-Local Networks

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

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

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

借用论文中的公式如上,很简单,关键就在这个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,甚至是两者的融合,不过理解起来都是一样的。

上面展示的是一个视频数据的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网络效果会更好,这是必然的,视频中的主体空间移动速度非常快,如果没有大的感受野未必能很鲁棒的捕捉一个动作到底是跳高还是跳水。

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

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

参考文献

[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大基本结构

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

【总结】言有三&阿里天池深度学习模型设计直播汇总,附赠超过200页直播PPT课件​mp.weixin.qq.com

有三AI知识星球中网络结构1000变,每日更新

【杂谈】有三AI知识星球一周年了!为什么公众号+星球才是完整的?​mp.weixin.qq.com

有三AI秋季划模型优化组

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

全连接神经网络_【模型解读】从“局部连接”回到“全连接”的Non-Local神经网络...相关推荐

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

    文章首发于微信公众号<与有三学AI> [模型解读]resnet中的残差连接,你确定真的看懂了? 这是深度学习模型解读第6篇,本篇我们将介绍深度学习模型中的残差连接. 作者&编辑 | ...

  2. 「模型解读」resnet中的残差连接,你确定真的看懂了?

    https://www.toutiao.com/a6708715626782786061/ 1 残差连接 想必做深度学习的都知道skip connect,也就是残差连接,那什么是skip connec ...

  3. 爬虫神经网络_股市筛选和分析:在投资中使用网络爬虫,神经网络和回归分析...

    爬虫神经网络 与AI交易 (Trading with AI) Stock markets tend to react very quickly to a variety of factors such ...

  4. 手机投屏不是全屏怎么办_手机投屏win10怎么退出全屏详细图文教程

    出于某些原因,我们可能需要将手机屏幕投放到电脑上,不少小伙伴在网上苦苦搜寻投屏软件,当然有不错的,但是我个人觉得纯投屏的话.不用键盘操作的话,还是win10自带的投屏最好,支持传输声音,画质非常好,无 ...

  5. ai音响怎么连接网络_小爱音箱如何联网 小米AI音箱连接WiFi出问题怎么办

    小爱音箱如何连接WiFi?小米小爱音箱连接WiFi出现问题是什么原因?如何解决?小爱音箱如何重置WiFi密码?小爱音箱是需要连接WiFi的,智能设备需要联网,但是小爱音箱上除了按键也没有什么屏幕来设置 ...

  6. 连接手表_一图看懂小米手表/Color连接iPhone/安卓手机的功能差别

    IT之家2月19日消息 此前IT之家报道,小米穿戴iOS版客户端迎来了v1.1更新,终于新增支持了小米手表和小米手表Color设备,另外还修改了部分体验上的Bug,优化了设备配对过程中的交互体验. 今 ...

  7. NETGEAR拒绝连接请求_破案:Kubernetes/Docker 上无法解释的连接超时

    编译:bot(才云) 技术校对:星空下的文仔(才云) 编者按:将应用迁移到 Kubernetes 时,有时候工程师们会发现一些令人费解的连接超时,无论怎么排查都找不到原因.在这篇文章中,软件架构师 M ...

  8. 我只注视你全cg存档_科幻国漫持续推出,全CG动画星骸骑士首播,这一次吞噬星空输了...

    一直以来,在国漫行业,科幻题材都是一个难以染指的类型,因为自身经验的不足,再加上科幻类型的作品需要大量的资金支持,稍有不慎所有努力都将付诸东流,所以很多动画人宁愿放弃也不愿冒险. 但是现在,随着在制作 ...

  9. 路飞学城python全栈开发_[Python] 老男孩路飞学城Python全栈开发重点班 骑士计划最新100G...

    简介 老男孩&路飞学城Python全栈开发重点班课程,作为Python全栈教学系列的重头戏,投入了全新的课程研发和教学精力,也是Python骑士计划的核心教学,由ALEX老师开班镇守,一线技术 ...

  10. 连接手表_小米手表配对时间长、断开连接后一直连不上怎么办?

    小米手表发售已有一段时间了,不少小伙伴都已经拿到了自己的手表.但面对这款手表,不少用户似乎遇到了难题,比如说配对.连接等问题.最近我们微信公众号也收到了不少粉丝的反映,称自己的小米手表配对时间太长,配 ...

最新文章

  1. LeetCode实战:合并K个排序链表
  2. 浅析在网站软文内容中是如何做好关键词优化的?
  3. 大鱼吃光小鱼,绝不可能!盘点2016存储行业发生的大事件
  4. ef 数据迁移mysql_07116.3.0如何将CM的外部PostgreSQL数据库迁移至MySQL服务
  5. ASP正则表达式方面小笔记
  6. UE4 左右立体参数
  7. c#中的BeginInvoke和EndEndInvoke 摘要
  8. linux磁盘永久挂载教程,linux 永久磁盘挂载
  9. 挖出一个面试刷题的宝藏资源,赶紧收下了~
  10. centos PIL 安装
  11. resource和autowired
  12. ajax注册判断怎么写,ajax之判断用户名是否被注册
  13. 线程编程 pthread 问题集合
  14. HTML页面布局适配不同分辨率
  15. 20140925百度校园招聘一面
  16. 鼠标悬停放大图片特效
  17. 按照姓氏笔画排序数据、按照姓氏拼音排序数据
  18. 【Golang开发面经】深信服(两轮技术面)
  19. java get set写法_java get set方法的使用
  20. 秋招经历(2020蒟蒻)

热门文章

  1. ubuntu16.04编译安装boost
  2. try、catch和finally中都有return语句的情况
  3. 用python为喜欢的人写一个程序,每天发送贴心的消息
  4. 浏览器兼容性问题解决方案之CSS——已在IE、FF、Chrome测试
  5. Team Foundation Server 2010 安装、部署与配置(六):创建 Team Project .
  6. gps test free android,GPSTest | F-Droid - Free and Open Source Android App Repository
  7. 降低代码执行中得内存消耗_微服务中使用 OpenJ9 JVM内存占用降低60%!
  8. 平行空间怎么设置32位_每周推荐 | 空间占用减小32%,具有高级功能的16位逻辑封装...
  9. 机器学习实战(8):局部加强线性回归LWLR
  10. 医药计算机人员试题及答案,医药计算机应用试题.doc