胶囊网络为何如此热门?与卷积神经网络相比谁能更胜一筹?
编译 | AI科技大本营
参与 | 孙士洁
编辑 | 明 明
【AI科技大本营按】胶囊网络是什么?胶囊网络怎么能克服卷积神经网络的缺点和不足?机器学习顾问AurélienGéron发表了自己的看法。营长将文章内容翻译如下。
胶囊网络(Capsule networks, CapsNets)是一种热门的新型神经网络架构,它可能会对深度学习特别是计算机视觉领域产生深远的影响。等一下,难道计算机视觉问题还没有被很好地解决吗?卷积神经网络(Convolutional neural networks, CNNs)已在分类、定位、物体检测、语义分割或实例分割等各种计算机视觉任务中达到了超人类水平,难道我们所有人没有注意到这些难以置信的例子吗?(见图1)
图1 一些主要的计算机视觉任务。现今,这些计算机视觉任务都需要不同的卷积神经网络架构,如用于分类的ResNet架构,用于目标检测的YOLO架构,用于语义分析的掩模R-CNN架构,等等。图像由AurélienGéron提供。
是的,我们已经看到了令人难以置信的CNNs,但是:
这些CNNs都接受了数量巨大图像的训练(或重复使用了部分已训练过的神经网络)。CapsNets能通过少得多的训练数据就可很好地完成网络训练。
CNNs不能很好地处理图像多义性表达。而胶囊网络可以很好处理这一问题,即使在拥挤的场景下也表现出色(尽管CapsNets现在仍与背景纠缠在一起)。
CNNs在池化层丢失大量信息。这些池化层降低了图像空间分辨率(见图2),为此,它们的输出对输入端的微小变化是保持不变的。当整个网络中细节信息必须被保留时,这就是一个问题,如在语义分割中。目前,解决这个问题主要是通过在CNNs周围构建复杂结构来恢复一些丢失的信息。运用CapsNets,详细的姿态信息(如精确的目标位置、旋转、厚度、歪斜、大小等等)在整个网络中都被保留,而不是丢失而后被恢复过来。输入的微小变化会导致输出的细微变化——信息却被保留。这就是所谓的“同变性(equivariance)”。所以,CapsNets对于不同的视觉任务可以使用相同的简单且一致的架构。
最后,CNNs需要额外的组件来实现自动识别一个部件归属于哪一个对象(如,这条腿属于这只羊)。而CapsNets则免费提供部件的层次结构。
图2 DeepLab2图像分割流程,由Liang-Chieh Chen等提供:可以看到,CNN(右上)的输出结果是十分粗糙的,这使得通过增加额外步骤来恢复丢失的细节很有必要。该图来自Deeplab论文《Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution,and Fully Connected CRFs》,引用得到作者许可。想了解语义分割体系结构的多样性和复杂性可以看S. Chilamkurthy所做的这篇好文章。
CapsNets是由Geoffrey Hinton等人于2011年在一篇名为“转换自动编码器(Transforming Autoencoders)”论文中首次提出的。但仅在几个月前,也就是2017年11月,Sara Sabour, Nicholas Frosst和Geoffrey Hinton发表了一篇名为“胶囊间动态路由(Dynamic Routing between Capsules)”的论文,介绍了一个CapsNets结构,在MNIST(手写数字图像的著名数据集)上达到了最好性能,并在MultiMNIST(不同数字对重叠形成的变形手写数字图像数据集)上获得了比CNNs好得多的结果,见图3。
图3 MultiMNIST 图像(白色) 和CapsNets重构图像 (红色+绿色)。“R”代表重构 ,“L”代表标签. 如:这一个例子预测(左上)是正确的,重构图像也是正确的。但第5个例子预测是错的,(5,0)预测成了(5,7)。因此,5被正确重构,而0却没有。图形来自论文《Dynamic routing between capsules》, 引用得到作者许可。
尽管CapsNets具有很多有点,但它仍远不够完美。首先,现在CapsNets在如CIFAR10或ImageNet大规模图像测试集上的表现不如CNNs好。而且,CapsNets需要大量计算,不能检测出相互靠近的同类型的两个对象(这被称为“拥挤问题”,且已被证明人类也存在这个问题)。但CapsNets的主要思想还是非常有前途的,似乎只需要一些调整就可以发挥全部潜力。毕竟,现在的CNNs是在1998年发明的,经过一些调整后,就在2012年在ImageNet数据集上战胜了最新技术。
▌那么,CapsNets到底是什么?
简而言之,CapsNet由胶囊而不是神经元组成。胶囊是用于学习检测给定图像区域内特定对象(如矩形)的一小组神经元,它输出一个向量(如一个8维矢量),该向量的长度表示被检测对象存在的估计概率,而方向(如在8维空间中)对被检测对象的姿态参数(如精确的位置,旋转等)进行编码。如果被检测对象发生稍微改变(如移动、旋转、调整大小等),则胶囊将输出相同长度的矢量,但方向稍有不同。这样,胶囊是等变的。
就像常规的神经网络一样,一个CapsNet也是按多个层组织的(见图4)。最下层的胶囊被称为主胶囊:每个胶囊都接收图像的一个小区域作为输入(称其为接受场),尝试检测一个特定模式的存在和姿态,如矩形。更高层的胶囊称为路由胶囊,检测更大更复杂的对象,如船只。
图4 两层胶囊网络。这个例子中,初始胶囊层有两个5×5映射,而第二个胶囊层有两个3×3映射。每个胶囊输出一个向量,每个箭头符号表示一个不同胶囊的输出,蓝色箭头符号表示一个尝试检测三角形的胶囊的输出,黑色箭头符号表示一个尝试检测矩形的胶囊的输出。图像由AurélienGéron提供。
主胶囊层采用几个常规的卷基层来实现。如本文使用两个卷基层输出256个包含标量的6×6特征映射,并将这个输出转变成32个包含8维矢量的6×6映射。最后,使用一个新颖的压缩函数来确保这些向量的长度在0到1之间(表示一个概率)。这样就给出了主胶囊的输出。
下几层胶囊也尝试检测对象及其姿态,但工作方式非常不同,即使用按协议路由算法。这就是胶囊网络的最大魔力所在。我们来看一个例子。
假设只有两个主胶囊:一个长方形胶囊和一个三角胶囊,假设它们都检测到正在寻找的东西。矩形和三角形都可能是房子或船的一部分(见图5)。由于长方形的姿态是略微向右旋转的,房子和船也得是稍微向右旋转。考虑到三角形的姿态,房子就得几乎是颠倒的,而船会稍微向右旋转。注意,形状和整体/部分关系都是在训练期间学习的。现在注意长方形和三角形对船的姿态达成一致,而对房子的姿态强烈不一致。所以,矩形和三角形很可能是同一条船的一部分,并没有房子的存在。
图5 按协议路由,第1步—基于存在的部分对象及其姿态去预测对象及其姿态,而后在预测结果之间寻求一致性。图像由AurélienGéron提供。
既然现在确信长方形和三角形是船的一部分,那么将长方形和三角形胶囊的输出结果更多地发送给船胶囊,而更少发送给房子胶囊,将更有意义:这样,船胶囊将接收更有用的输入信号,而房子胶囊将会收到较少的噪声。对于每个连接而言,按协议路由算法包含一个路由权重(见图6):达成一致时,增大路由权重;出现分歧时,减少路由权重。
图6 按协议路由,第2步—更新路由权重。图像由AurélienGéron提供。
按协议路由算法包括协议检测+路由更新的一些迭代(注意,每次预测这都会发生,不只是一次且也不仅是在训练时间)。这在拥挤的场景中特别有用:如图7中,场景是存在歧义的,因为你从中间看到的可能是倒置的房子,但是这会使底部的矩形和顶部的三角形无法解释。协议算法很可能会给出更好的解释:底部是一只船,顶部是一个房子。这种模棱两可的说法被认为是“可解释过去的”:下面的矩形最好用船的存在来解释,这也解释了下面的三角形,一旦这两个部分被解释清楚,剩下的部分就很容易被解释为一个房子。
图7按协议路由能解析拥挤场景,如可被误解为颠倒的房子而其他部分无法解释的存在歧义的图像。但底部矩形路由给船,同时底部三角形将也路由给船。一旦船被解释清楚,那么很容易将顶部解释为房子。图像由AurélienGéron提供。
作者| AurélienGéron
原文链接
胶囊网络为何如此热门?与卷积神经网络相比谁能更胜一筹?相关推荐
- 【论文阅读】Learning Traffic as Images: A Deep Convolutional ... [将交通作为图像学习: 用于大规模交通网络速度预测的深度卷积神经网络](2)
[论文阅读]Learning Traffic as Images: A Deep Convolutional Neural Network for Large-Scale Transportation ...
- 【论文阅读】Learning Traffic as Images: A Deep Convolutional ... [将交通作为图像学习: 用于大规模交通网络速度预测的深度卷积神经网络](1)
[论文阅读]Learning Traffic as Images: A Deep Convolutional Neural Network for Large-Scale Transportation ...
- 卷积神经网络相比循环神经网络具有哪些特征
CNN卷积神经网络结构有哪些特点? 局部连接,权值共享,池化操作,多层次结构. 1.局部连接使网络可以提取数据的局部特征:2.权值共享大大降低了网络的训练难度,一个Filter只提取一个特征,在整个图 ...
- 网络规模推荐系统的图卷积神经网络
1. 摘要 最近的推荐系统中最突出的是称为图卷积网络(GCNs)的深度学习架构,通过使用神经网络循环地提取总体的特征信息(如,图1),而一个"卷积"操作从一个节点的单跳图邻 ...
- 深度学习之卷积神经网络经典网络LeNet-5简介
1. LeNet-5简介 LeNet5卷积神经网络源于Yann LeCun在1998年发表的论文:Gradient-based Learning Applied to Document Recogni ...
- 经典CNN卷积神经网络发展史+论文+网络实现(PyTorch)
网络搭建目录: Lenet 学习笔记 pytorch官方demo代码复现_放风筝的猪的博客-CSDN博客 AlexNet网络结构详解与代码复现_放风筝的猪的博客-CSDN博客 VGG网络结构详解与代码 ...
- 胶囊网络、边缘计算:2018年13个最新人工智能发展趋势
来源:亿欧智库 摘要: 美国知名研究机构CB Insights的报告<2018年必看的人工智能热门趋势>,对AI行业发展现状进行了深入研究剖析,并给出了2018年AI领域最值得关注的13个 ...
- 卷积神经网络(CNN)介绍
简单介绍和总结卷积神经网络(Convolutional Neural Networks)的基本组成网络层和常用的网络结构. 参考文章/书籍: An Intuitive Explanation of C ...
- Group equivariant capsule networks(组等变胶囊网络) 论文翻译
摘要 我们提出了组等变胶囊网络,这是一个向胶囊网络概念引入保证的等方差和不变性的框架.我们的工作可以分为两部分.首先,我们介绍了一种在组的元素上定义的通过协议算法的通用路由,并证明了输出姿势向量的等方 ...
最新文章
- 标签之美三——超链接的嵌入
- 数学之美系列14(转帖)
- Python流程控制语句
- base cap 分布式_高并发架构系列:详解分布式一致性ACID、CAP、BASE,以及区别
- GPU Gems2 - 9 S.T.A.L.K.E.R.中的延迟着色(Deferred Shading in S.T.A.L.K.E.R.)
- URLEncode编码和URLDecode解码
- 话里话外:成功的ERP需要全程的流程变革(三)
- JS动态添加、删除classl类
- android opencv 水印,关于opencv对图片添加水印
- access 删除字符串中的字符_SQL Server中的字符串分割函数
- Linux电源管理(3)-Generic PM之reboot过程【转】
- 单片机原理与应用技术(四)———矩阵键盘汇编语言
- Data Base学习记录:ER图
- 常微分方程matlab求解英文文献,常微分方程及其matlab求解毕业论文设计
- Android 使用三种方式缓存加载 倒影图片
- Android使用百度地图定位SDK在wifi下位置偏差
- 天蝎座2006年运程
- 97年的Mekka ’97 4K Intro世界编程大赛冠军作品
- Visual Studio 2017、2019 无法启动的解决方法
- 【For my liz】宇宙制作全纪录(如果能成功的话TT)
热门文章
- Red5安装与入门 与FMS配置
- 110道 Jvm面试题总结及答案 (持续更新)
- java date truncate_在Java中将dateTime转换为dd / mm / yy格式的日期
- python之函数三装饰器
- iOS 线程之GCD的高级使用方法
- 【组队学习】【32期】统计学习方法习题实战
- 【UVA】11991 Easy Problem from Rujia Liu? (整数v第k次出现在什么位置)
- 给力!斩获 GitHub 14000 Star,两周创办开源公司获数百万美元融资
- Python 捕获警告
- GSA+麦肯锡开年首场线上活动:汽车半导体要变天?