极市平台(ExtremeMart)是深圳极视角旗下的专业视觉算法开发与分发平台,为开发者提供行业场景集,每月上百真实项目需求,算法分发,技术共享等,旨在联合开发者建立起良好的计算机视觉生态。已与上百名开发者建立了合作并转化了上百种视觉算法。
PS.8月29日(本周三)晚20:00~21:30,图普科技深度学习算法工程师小美,及格灵深瞳算法工程师张德兵,将为大家分享基于分布式人脸训练谜题思路及背后的工业级应用,公众号回复“32”即可获取直播详情。
来源:我是程序员
https://zhuanlan.zhihu.com/p/42864711
摘要:胶囊网络是如何克服卷积神经网络的一些缺点,包括需要更少的训练数据,保存图像细节,处理模糊性的呢?看完本文你就知道了!
胶囊网络(CapsNets)是一种可能会对深度学习产生深远影响的热门新型神经网络结构,特别是在计算机视觉领域。那么问题来了:计算机视觉相关问题不是已经解决了吗?我们不是都已经见过卷积神经网络(CNNs)在各种计算机视觉任务(如分类、定位、目标检测、语义分割或实例分割)中达到超人水平的例子吗?(如图1)
我们已经了解了卷积神经网络,但是:卷积神经网络要在大量的图像上进行训练(或者它们重复使用了神经网络的一部分),而胶囊网络可以很好地推广使用更少的训练数据。
卷积神经网络不能很好地处理模糊性,胶囊网络却可以,甚至可以在拥挤的场景中处理的很好。
卷积神经网络在池化层中丢失了大量信息,降低了空间分辨率(参见图2),因此当输入发生微小的变化,输出基本不变,这是一个在整个网络中必须保留详细信息的问题,例如在语义分割中。如今,这个问题通过围绕CNNs构建复杂的体系结构来解决,来恢复一些丢失的信息。通过胶囊网络,详细的姿态信息(如精确的目标位置、旋转、厚度、倾斜、大小等)将在整个网络中被保存,而不是丢失了之后再恢复,输入的小变化导致输出的小变化——信息被保存,这就是所谓的“等变化(equivariance)”。因此,胶囊网络可以在不同的视觉任务中使用相同简单一致的架构。
最后,卷积神经网络需要额外的组件来自动识别部件属于哪个目标(例如,这条腿属于这只羊),而胶囊网络为你免费提供部件层次。
2011年,Geoffrey Hinton等人在一篇名为《变换自动编码器》的论文中首次引入胶囊网络。在几个月前,2017年11月,Sara Sabour、Nicholas Frosst和Geoffrey Hinton发表了一篇名为《胶囊间的动态路由》的论文,该论文介绍了一个在MNIST(著名的手写数字图像数据集)上达到最先进性能的胶囊网络架构,并且在MultiMNIST(一种不同数字重叠对的变体)上得到了比卷积神经网络更好的结果,如参见图3。
虽然胶囊网络有这些优点,但离完美还有很大的距离。首先,就目前而言,它们在大型图像(如CIFAR10或ImageNet)上的性能不如卷积神经网络。此外,它们的计算量非常大,而且当两个检测目标离得很近的时候,胶囊网络无法检测到同一类型的两个物体(这被称为“拥挤问题”,而且已经证明人类也存在这种问题)。但是关键的想法是非常好的,胶囊网络只需要做一些调整就能充分发挥它们的潜力。毕竟,现在的卷积神经网络是在1998年被发明出来的,但它们经过几次调整之后才在2012年的ImageNet上,超越了目前的技术水平。
那么,胶囊网络到底是什么?
简而言之,胶囊网络是由胶囊组成的,而不是神经元。胶囊是一组神经元,它会学习检测给定区域(例如一个矩形)图像的特定目标,它输出一个向量(例如一个八维向量),向量的长度代表目标存在的概率估计[1],而且它对姿态参数(例如精确的位置,旋转,等等)定向编码(例如8D空间)。如果对象有轻微的变化(例如移位、旋转、改变大小等),那么胶囊将输出相同长度但方向略有不同的向量,因此,胶囊是等变化的。
就像常规的神经网络,胶囊网络在多个层中构建(见图4)。胶囊在最低层被称为基本胶囊:每个胶囊把接收的一个小区域的图像作为输入(称为感受野),它试图检测一个特定部分的姿势和存在,例如一个矩形。更高层的胶囊被称为路由胶囊,能检测到更大更复杂的物体,如船只。
基本胶囊层使用一些常规的卷积层实现。例如,在本文中,它们使用两个输出256个包含标量的6x6特征映射的卷积层。它们重塑这个输出,得到32个包含8维向量的6x6映射。最后,使用一个新的压缩函数来确保这些向量的长度在0到1之间(表示概率),得到基本胶囊的输出。
下一层的胶囊工作原理非常不同,它们使用了一种名为“路由协议”(routing by agreement)的算法来试图检测物体及其姿态,这就是胶囊网络的神奇所在,举个例子。
假设有两种基本胶囊:一种是长方形胶囊,一种是三角形胶囊,假设它们都发现了要检索的东西,矩形和三角形都可以是房子或船的一部分(见图5)。给定矩形的姿态,它会稍微向右旋转,房子和船也会稍微向右旋转。考虑到三角形的位置,房子几乎是上下颠倒的,而船会稍微向右旋转。注意,形状和整个/部分关系都是在训练中学习的。矩形和三角形在船的姿势上是一致的,而在房子的姿势上是完全不同的。所以很可能矩形和三角形是同一条船的一部分,而不是房子。
因为我们确信矩形和三角形是船的一部分,所以将输出的矩形和三角形胶囊发送给更多的船胶囊,船胶囊将获得更多有用的输入信号,房子胶囊将接收到很少的信号。对于每次连接,路由协议算法维护一个路由权值(参见图6),当结果一致时协议时路由权值增加,不一致时路由权值减少。
路由协议算法涉及到协议检测+路由更新的几个迭代(注意,这种情况发生在每个预测中,而不仅仅是一次,也不仅仅是在训练时),在拥挤的场面特别适用:例如,在图7中,现场是模糊的,因为你可以看到一个倒立的房子在中间,但如果这样,底部矩形和三角形就无法解释了,所以路由协议算法将最有可能收敛到一个更好的解释:一只船在底部,顶部是一栋房子。这种模糊性被称为“被解释掉”,较低的矩形最好的解释是船,这也解释了较低的三角形,一旦这两个部分被解释掉,剩下的部分很容易被解释为房子。
这就是胶囊网络的关键原理!
本文作者:【方向】
*推荐阅读*
PS.8月29日(本周三)晚20:00~21:30,图普科技深度学习算法工程师小美,及格灵深瞳算法工程师张德兵,将为大家分享基于分布式人脸训练谜题思路及背后的工业级应用,点击文末阅读原文申请加入谜题活动交流群,~