当前位置: 首页 > 编程日记 > 正文

有望替代卷积神经网络?微软最新研究提基于关系网络的视觉建模

640?wx_fmt=jpeg


导语:最近两年,自注意力机制、图和关系网络等模型在NLP领域刮起了一阵旋风,基于这些模型的Transformer、BERT、MASS等框架已逐渐成为NLP的主流方法。这些模型在计算机视觉领域是否能同样有用呢?近日,微软亚洲研究院视觉计算组主管研究员胡瀚受邀参加VALSE Webinar,分享了他们最近的一些相关工作。他们的研究以及同期的一些其它工作表明这些模型也能广泛地用于视觉基本元素之间关系的建模,包括物体与物体间、物体与像素间、以及像素与像素间的关系,特别是在建模像素与像素间关系上,既能与卷积操作形成互补,甚至有望能取代卷积操作,实现最基本的图像特征提取。


大脑和机器智能都应是通用学习机器


首先,我们从一个很有意思的实验讲起,这个实验将老鼠大脑里的听觉皮层接到视觉的输入上,经过一段时间训练后,发现听觉皮层也能实现视觉的感知任务。这个实验引起我们思考一个问题,机器智能是否同样能实现结构和学习的通用性呢?


目前的机器学习范式基本是统一的,一般遵循收集数据、进行标注、定义网络结构、以及利用方向传播算法训练网络权值的过程,但是不同任务里用到的基本模型却是多样的。当前计算机视觉主要被卷积网络所主导,而自然语言处理则经历了LSTM、GRU、卷积以及自注意等多种模型阶段。那是否有一种基本模型,能解决视觉、NLP、图结构数据感知、甚至推理等不同智能任务呢?


目前最通用的模型:关系和图网络


目前来看,关系网络是最接近这一目标的一种模型。在解释这个模型之前,我们首先对一些名词作一些澄清,包括图神经网络以及自注意力机制。


640?wx_fmt=jpeg

图1:关系网络架构


图神经网络概念上更通用一些,包括了对节点、对边、对全局属性的特征表示,而自注意模型则是图神经网络的一种特殊实现,里面只对节点进行了特征表示,而边(也就是关系)则通过key嵌入和query嵌入后的内积计算得到,是一种图为全连接时(所有节点之间都有连接)非常经济的模型,但表达能力又足够强,因为任何事物和概念之间都可以通过不同的投影后(key和query)的特征来使得两者可比。


注意力机制里key和query的集合往往不一致,例如分别是单词集合和图像块集合,或者分别是不同语言的句子,而自注意力机制则是key和query的对象为同一集合的情况。最近在NLP领域的革命,主要在于发现了“自”注意力机制在编码同一句子单词与单词之间关系上的价值。而关系网络和图神经网络还有自注意力机制从实现上是同样的,字面上更关注对于节点与节点间联系的建模。


将关系网络应用于基本视觉建模


考虑到关系网络在图结构数据和NLP序列数据建模上取得了巨大成功,很自然的一个问题是这一建模方法是否也适用于视觉里的建模。计算机视觉里面主要涉及两个层次的基本元素:一个是物体;一个是像素。于是我们研究了物体和物体、物体和像素以及像素和像素的关系建模问题。


640?wx_fmt=png

图2:将关系网络应用于基本视觉建模


物体与物体关系建模,第一个完全端到端的物体检测器


物体是很多视觉感知任务的核心,在深度学习时代,单个物体的感知有了很好的进展,但如何去建模物体与物体间的关系却一直没有很好的工具。我们在去年CVPR上提出了一个能即插即用的物体关系模块(Object Relation Module),简称ORM。物体关系模块的建模基本上是一种自注意力机制的应用,和基本的自注意力机制的主要不同在于添加了相对几何项,我们发现这一项对于视觉问题来说很重要,物体之间的相对位置关系能帮助对于物体本身的感知。这一模块可以很方便地嵌入到现有的物体检测框架(图3所示是目前应用最广泛的Faster R-CNN算法),去改进头部(head)网络,以及替换手工的去重模块,也就是目前通常采用的非极大化抑制方法(NMS)。其中替换前者使得物体不是独立识别的,而是一起识别的,而替换后者则帮助实现了第一个完全的端到端物体检测系统。我们还将物体关系模块推广到时空维度,去解决多目标跟踪问题。


640?wx_fmt=png

图3:第一个完全端到端的物体检测器


物体与像素关系建模


物体与像素关系建模的一个最直接的应用是从图像特征里提取物体区域特征,此前最常用的算法是RoIPooling或者RoIAlign,我们用关系网络实现了自适应地从图像特征里提取区域特征的方法,并证明这一方法比RoIAlign在物体检测的标准数据集COCO上要好1 mAP左右。


像素与像素关系建模,替代卷积的局部关系网络及全局上下文网络


像素与像素关系的建模可以用来实现最基本的图像局部特征提取,也可以用来提取图像的全局信息,从而作为基本图像特征提取网络(例如卷积神经网络)的补充。


1)替代卷积神经网络的局部关系网络


现在的基本图像特征提取方法几乎都采用卷积算子,但卷积本质上是一个模板匹配(template matching)算子,效率是偏低的,例如图4中的三个鸟头,很简单的变化,却需要三个通道来去建模它。我们提出了一个局部关系层(local relation layer)来实现更高效的图像特征提取,它本质上还是基于关系网络。在应用到基本的像素与像素关系建模问题时,我们发现如下几个细节很重要:一是关系的建模要限制在局部内,只有限制在局部才能构造信息瓶颈,才能把图像里的模式学出来;二是需要引入可学习的几何先验项,这一项的引入也是注意到目前最流行的卷积算子所采用的模板匹配过程就是严重依赖相对位置关系的建模方法;三是采用标量的key和query,在标准的关系网络中,key和query通常是用向量表示的,采用标量的key和query能节省很多参数和计算,也因此能在有限计算量情况下建模多种关系。


与卷积相比,局部关系层概念上最大的不同是它是在根据两个像素自己的特征来计算像素间的可组合性,而不是用一个全局的模板来作匹配。图4右上还显示了学到的部分key和query图(标量),从左到右分别是由浅到深的层,发现浅层学到了边缘和内部的概念,深层学到了不同物体的概念。图4右下显示了学到的几何先验,从上到下分别是由浅到深的层,发现在浅层里几何先验比较集中和稀疏,暗示几何先验起很大作用,而深层里几何先验比较模糊,暗示key和query起更主要的作用。


640?wx_fmt=png

图4:局部关系层


局部关系层可以用来替换卷积网络里面所有的空间卷积层,包括所有的3x3的卷积,以及一开始的7x7卷积,于是得到了一个完全没有空间卷积层的网络,我们称为局部关系网络(LR-Net),图5左侧是用局部关系层替代ResNet-50网络中所有卷积层的例子,在相同计算量情况下,LR-Net相比于ResNet拥有更少的参数。图5右侧是26层LR-Net与26层带标准卷积或depthwise卷积的ResNet在ImageNet分类上top-1准确率的比较。可以看出,在不包含任何几何先验的情况下,LR-Net已与ResNet相匹敌,而在添加几何先验项后,与标准卷积的ResNet-50相比能取得高2.7%的性能。此外,局部关系网络在邻域为7x7时表现最好,而对应的标准ResNet网络则在3x3和5x5时表现更好,这表明局部关系网络相比普通基于卷积算子的ResNet网络能建模更大范围的像素关系。


640?wx_fmt=png

图5:局部关系层替代ResNet-50网络中所有卷积层(左);26层的LR-Net与ResNet相同运算量下在ImageNet分类上top-1准确率的对比(右)


2) 非局部网络遇上SE-Net,更高效的全局上下文网络


非局部关系网络在多个视觉感知任务上取得了非常好的效果,学界通常认为这得益于非局部网络对于远距离像素与像素间关系的建模。但我们在可视化学到的像素与像素间相似度时发现一个很不一样的现象,对于不同的query像素点(图中红色点),不管query像素点在前景、或是草地、或是天空中,它们和key像素的相似度形成的attention map几乎一模一样。


640?wx_fmt=png

图6:不同query像素点对应的attention map


很自然地,如果我们显示地让所有query像素点共享同一个attention map,是否会降低performance呢?我们实验发现在一些重要的感知任务,例如图像分类、物体检测、动作识别中,这一答案是否定的。也就是说,即使让所有query像素点共享同一个attention map,也不会降低识别的精度,而相应的计算则大幅降低,即使添加到ResNet网络中所有的residual block后也不怎么增加网络整体的计算量。


进一步可以发现这样一种简化的非局部网络(SNL)和2017年ImageNet比赛的冠军算法SE-Net结构很相似,都是首先建模全局上下文信息,把HxW的图像特征集合起来,生成一个全局的向量,第二步都是对这一全局的向量作特征变换,最后是变换后的全局特征和图像每个位置原来的特征融合起来,于是可以抽象出来一个通用的建模全局上下文信息的框架。进一步的,在每一步里面选择最好的实现,于是可以得到全局上下文模块(Global Context Block),这一网络可以在COCO物体检测,ImageNet图像分类,和动作识别任务中均取得比非局部网络和SE-Net更优的准确率,而计算量则保持基本不变或者低于非局部网络和SE-Net。


640?wx_fmt=png

图7:通用的建模全局上下文信息的框架


640?wx_fmt=png

扫描上方二维码下载演讲PPT


参考论文:

[1] Han Hu*, Jiayuan Gu*, Zheng Zhang*, Jifeng Dai and Yichen Wei. Relation Networks for Object Detection. In CVPR 2018.

[2] Jiarui Xu, Yue Cao, Zheng Zhang and Han Hu. Spatial-Temporal Relation Networks for Multi-Object Tracking. Tech Report.

[3] Jiayuan Gu, Han Hu, Liwei Wang, Yichen Wei and Jifeng Dai. Learning Region Features for Object Detection. In ECCV 2018.

[4] Han Hu, Zheng Zhang, Zhenda Xie and Stephen Lin. Local Relation Networks for Image Recognition. Tech Report.

[5] Yue Cao*, Jiarui Xu*, Stephen Lin, Fangyun Wei and Han Hu. GCNet: Non-local Networks Meet Squeeze-Excitation Networks and Beyond. Tech Report.


(*本文为 AI科技大本营转载文章,转载请联系原作者



精彩推荐



640?wx_fmt=jpeg


“只讲技术,拒绝空谈”2019 AI开发者大会将于9月6日-7日在北京举行,这一届AI开发者大会有哪些亮点?一线公司的大牛们都在关注什么?AI行业的风向是什么?2019 AI开发者大会,倾听大牛分享,聚焦技术实践,和万千开发者共成长。


目前,大会早鸟票限量发售中~扫码购票,领先一步!


推荐阅读


640?wx_fmt=png你点的每个“在看”,我都认真当成了喜欢

相关文章:

Word 2013无法发布文章到博客园

2018年12月12日突然发现word2013无法发布文章到博客园了, 虽然不常发布博客, 但作为一个强迫症患者, 不折腾好了, 吃肉都不香呀! 删除之前的账户, 想重新注册, 居然遇到了灰色对话框&#xff01…

1 sec on Large Judge (java): https://github.com/l...

1 sec on Large Judge (java): https://github.com/leoyonn/leetcode/blob/master/src/q029_substring_of_all_words/Solution.java转载于:https://www.cnblogs.com/codingtmd/archive/2013/03/31/5079017.html

性能提升3倍的树莓派4,被爆设计缺陷!

整理 | 屠敏转载自CSDN(ID:CSDNnews)一直以来,素有世界最小电脑之称的 Raspberry Pi(树莓派)是一种独特的存在。它不仅只有一块信用卡般的体积,还具备主机电脑所具备的功能,如运行 L…

Windows7 64位机上Emgu CV2.4.2安装与配置

1. 从http://sourceforge.net/projects/emgucv/?sourcedirectory下载最新的Emgu CV2.4.2; 2. 将libemgucv-windows-x86-gpu-2.4.2.1777拷贝到D:\soft\Emgu2.4.2文件夹下,运行此.exe文件,将其安装到D:\soft\Emgu2.4.2\emgucv-wind…

2018年12月,华为HCNP大面积更新题目,军哥独家解题咯

2018年12月,华为HCNP大面积更新题目,乾颐堂军哥独家解题咯2018年是华为认证变动比较大的一年,华为认证走过这几年不得不说是有一定进步的,而且最近华为孟女侠确实让我也小小的骄傲了一把,所以当然希望华为认证能做的更…

关于ProGuard的学习了解(从别处转来)

from:http://www.cnitblog.com/zouzheng/archive/2011/01/12/72639.html在Android项目中用到JNI,当用了proguard后,发现native方法找不到很多变量,原来是被produard优化掉了。所以,在JNI应用中该慎用progurad啊。解决办…

tesseract-ocr3.02字符识别过程操作步骤

1、 从http://code.google.com/p/tesseract-ocr/downloads/list下载tesseract-ocr-3.02-vs2008、tesseract-ocr-3.02.chi_sim.tar、tesseract-ocr-3.02.02.tar、tesseract-ocr-3.02.02-doc-html.tar、leptonica-1.68-win32-lib-include-dirs相关文件; 2、 将所有…

中文repo“霸榜”GitHub Trending,国外开发者不开心了

编译整理 | 一一出品 | AI科技大本营(ID:rgznai100)近日,一位叫Balazs Saros 的国外开发者在Medium上发表了一篇名为"Chinese repos are ruining the Github trending page"的博文,翻译一下他的意思就是“中文 repo 正在…

使用 electron-updater 自动更新应用

前端工程师可以使用 Electron 非常方便的编写出 PC 端应用,而应用更新的方式也有很多,详细可见更新应用程序。 我的项目是基于 electron-vue 搭建的,构建打包生成安装包,则用的是 electron-builder,所以更新自然选择 e…

struts2请求处理过程源代码分析(1)

2019独角兽企业重金招聘Python工程师标准>>> 转载自:http://www.see-source.com/ 源码解析网 网上对于struts2请求处理流程的讲解还是比较多的,有的还是非常详细的,所以这里我就简单地将大概流程总结下,有了个大概印象…

Ubuntu中C代码静态检查工具Splint的安装配置和使用

1、 从http://www.splint.org/download.html下载splint-3.1.2.src.tgz,存放到/home/spring/Splint文件夹下; 2、 打开终端; 3、 解压缩:tar zxvfsplint-3.1.2.src.tgz 4、 安装到/usr/local/splint目录下: …

Fetch 入门

一、什么是Fetch ? Fetch的定义 Fetch本质上是一种标准,该标准定义了请求、响应和绑定的流程。 Fetch标准还定义了Fetch () JavaScript API,它在相当低的抽象级别上公开了大部分网络功能,我们今天讲的主要是Fetch API。Fetch API …

保障数据安全,强调科技向善,旷视发布《人工智能应用准则》

目录 AI应用落地加速 善用科技是关键 《人工智能应用准则》全文 2019年7月17日,旷视正式全文公布基于企业自身管理标准的《人工智能应用准则》(以下简称《准则》)。《准则》从正当性、人的监督、技术可靠性和安全性、公平和多样性、问责和及…

胜者树和败者树 - qianye0905 - 博客园

胜者树和败者树 - qianye0905 - 博客园胜者树和败者树胜者树和败者树都是完全二叉树,是树形选择排序的一种变型。每个叶子结点相当于一个选手,每个中间结点相当于一场比赛,每一层相当于一轮比赛。不同的是,胜者树的中间结点记录的…

C/C++代码静态检查工具PC-lint在VS2008开发环境中的安装配置和使用

PC-Lint偏重于代码的逻辑分析,它能够发现代码中潜在的错误,比如数组访问越界、内存泄漏、使用未初始化变量等。 1、 从http://download.csdn.net/detail/liuchang5/3005191 下载破解版PC-lint9.0; 2、 解压缩到D:\soft\PC-lint&#xff0c…

k8s使用kube-router网络插件并监控流量状态

简介 kube-router是一个新的k8s的网络插件,使用lvs做服务的代理及负 载均衡,使用iptables来做网络的隔离策略。部署简单,只需要在每个节点部署一个daemonset即可,高性能,易维护。支持pod间通信,以及服务的代…

作业盒子完成1.5亿美元D轮融资,更名“小盒科技”

作者 | 夕颜 导读:2019 年 7 月 18 日,AI 在线教育创企“作业盒子”召开发布会,宣布已于今年 5 月完成 1.5 亿美元 D 轮融资,由阿里巴巴领投。同时,“作业盒子”宣布进行品牌升级,正式更名为“小盒科技”&a…

8500WN流畅高速上网高端卡 12核心不锁倍频

据台湾媒体最新报道,台湾无线网卡厂商最新推出一款大功率80DBI无线网卡-横空出世8500WN集成机。售价约1180新台币(折合人民币约298元) 台湾卡王是全球著名的大功率无线网卡生产厂商,2007年曾最早推出大功率无线网卡8G,以其卓越的品质&#xf…

Fiddler抓包工具总结(转)

序章 Fiddler是一个蛮好用的抓包工具,可以将网络传输发送与接受的数据包进行截获、重发、编辑、转存等操作。也可以用来检测网络安全。反正好处多多,举之不尽呀!当年学习的时候也蛮费劲,一些蛮实用隐藏的小功能用了之后就忘记了&a…

Windows 64位机上C/C++代码静态检查工具Logiscope RuleChecker的安装和使用

1、 从http://download.csdn.net/detail/zmywly/3611820 和 http://download.csdn.net/detail/zmywly/3611854下载破解版; 2、 将文件解压缩到D:\soft\logiScope文件夹下,会生成一个logiScope[6.1.30]文件夹; 3、 双击D:\soft\lo…

作业盒子完成1.5亿美元D轮融资,用AI普及教育资源

作者 | 夕颜出品 | AI科技大本营(ID:rgznai100)导读:2019 年 7 月 18 日,AI 在线教育创企“作业盒子”召开发布会,宣布已于今年 5 月完成 1.5 亿美元 D 轮融资,由阿里巴巴领投。同时,“作业盒子…

迭代器接口IteratorAggregate 与类 ArrayIterator(转)

也许你很想使用foreach来遍历一个类中的属性&#xff0c;然而你却没有很好的方式来这么做。可能使用PHP中class的操作的方式能够帮助你实现一些&#xff0c;但是现在我想你有了更好的方式。通过继承接口&#xff1a;IteratorAggregate来实现。 示例 [php] view plaincopy <?…

整理《Mastering OpenCV with Practical Computer Vision Projects》中第8章用Eigenfaces或Fisherfaces进行人脸识别操作流程

These generally involve four main steps&#xff1a;(1)、Face detection&#xff1b;(2)、Face preprocessing&#xff1b;(3)、Collect and learn faces&#xff1b;(4)、Face recognition. 一、Face detection(Haar-based、LBP-based) LBP-based detectors are potential…

性能比GPU高100倍!华人教授研发全球首个可编程忆阻器AI计算机

译者 | 陆离责编 | 夕颜出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;导读&#xff1a;近日&#xff0c;密歇根大学研发成功第一台可编程的忆阻器计算机&#xff0c;它不仅是一个通过外部计算机运行的忆阻器阵列&#xff0c;而且还是可以在智能手机等小型设备上进行…

深入解析redis cluster gossip机制

社区版redis cluster是一个P2P无中心节点的集群架构&#xff0c;依靠gossip协议传播协同自动化修复集群的状态。本文将深入redis cluster gossip协议的细节&#xff0c;剖析redis cluster gossip协议机制如何运转。协议解析 cluster gossip协议定义在在ClusterMsg这个结构中&am…

Python 3.8即将发布,这几个变化你必须知道

作者 | Jake Edge译者 | Rachel出品 | Python大本营&#xff08;ID:pythonnews&#xff09;【导读】近日&#xff0c; Python 3.8.0b1 版本和 beta 版相继发布&#xff0c; Python 3.8 版的新特征已经基本成型。尽管最终版本的官方发布时间为 10 月&#xff0c;但实际上&#x…

Ubuntu 12.10 拨号上网及停用方法

2019独角兽企业重金招聘Python工程师标准>>> 本人电脑在设置了拨号上网过后&#xff0c;本来原先插上网线就能上网&#xff0c;现在反而不能上了&#xff0c;在网上找了些办法&#xff0c;再进行了些修改&#xff0c;最后成功了&#xff0c;现在把我的方法给大家分享…

011:视图函数介绍

视图&#xff1a; 视图一般都写在 app 的 views.py 中。并且视图的第一个参数永远都是 request &#xff08;一个HttpRequest&#xff09;对象。这个对象存储了请求过来的所有信息&#xff0c;包括携带的参数以及一些头部信息等。在视图中&#xff0c;一般是完成逻辑相关的操作…

Windows XP下vs2010中配置OpenCV2.4.3

1、 从http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.3/下载OpenCV2.4.3&#xff1b; 2、 将OpenCV-2.4.3.exe放到D:\Soft\OpenCV2.4.3文件夹下&#xff0c;解压到当前文件夹下&#xff0c;生成一个opencv文件夹&#xff1b; 3、 下载并安装CMake&…

改变shell read命令的隔符

2019独角兽企业重金招聘Python工程师标准>>> orgIFSIFS IFS"." ls */.fst/.txt | while read var1 var2 var3 do IFS$orgIFS fstcompile --isymbols${path1}isymtab.txt --osymbols${path1}osymtab.txt ${var1}/.fst/.txt ${var1}/.fst fstdraw --isymbol…