介绍胶囊网络 capsule networks

读到一篇文章,介绍capsule networks,特此记录笔记。
原始链接:
https://www.oreilly.com/ideas/introducing-capsule-networks?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+oreilly%2Fradar%2Fatom+%28O%27Reilly+Radar%29

CNN与CapsNets比较

  • CNN要么需要大量图片来训练,要么需要复用训练好的CNN网络来填充当前网络的某些层。而胶囊网络,只需要少量图片就可以训练
  • 对于元素丰富的图片,CNN不能很好地处理模棱两可的边界。而CapsNets即使在拥挤的场景下,也能表现出色(仅说明CapsNets比CNN强,并不是说CapsNets就可以完美处理了)。
  • CNN在池化层,会主动丢弃大量信息。池化层降低了空间分辨率,所以它们的输出对于输入的小变化是不敏感的。如果要求网络保存细节信息时,例如在语义分割场景中(请参见原文中的图,译者从业NLP,对CV不太了解。),CNN就力所不能及了。当然,可以通过在CNN周围简历复杂的体系结构来恢复一部分丢失的信息。而使用CapsNets,详细的位置信息(如精确的对象位置,旋转,厚度,歪斜,大小等等)会整个网络中被保留下来。这种信息的留存的优势在于,输入的微小变化直接导致输出的细微不同。因此,CapsNets可以以简单而一致的身姿,出现在多种计算机视觉任务中。
  • CNN需要额外的组件,来识别图像中元素的归属关系。而CapsNets免费提供层次结构信息。

2011年,Geoffrey Hinton大神首次提出了CapsNets。而在几个月前,即2017年11月,它在MNIST手写数字识别上达到最先进的水平。

尽管如此美好,不过,它还远未达到完美之境。
首先,现在它在CIFAR10或ImageNet等数据集上表现不如CNN好。
其次,它们是计算密集型的,当两个相同的物体贴合得很近时,它无法区分出来。
它的核心思想非常有前途,只是还需要时间打磨。

胶囊网络到底是什么

简而言之,CapsNet由胶囊组成。一个胶囊单元是一组神经元,学习检测某一给定区域的特定物体,输出一个向量,向量的长度表示特定物体出现的概率,而向量的方向编码了特定物体的姿态(如,位置、朝向)。如果特定物体稍作变换,如移动,旋转,调整大小等,则胶囊将输出相同长度的向量,但是方向稍有不同。 因此,胶囊是等变的。

CapsNet和普通神经网络一样,由许多层组成。最底层的胶囊层被称为初级胶囊层:它们中的每一个胶囊单元都接收图像的一块区域作为输入,检测特定物体的存在和姿态,例如矩形。 更高层能够检测更大更复杂的物体,如船只。

接下来,原文中用图文结合的方式,展示了胶囊网络,是如何通过胶囊单元识别基本元素的存在于方向,进而识别图像中的具体的事物。略长,改天继续翻译。

你可能感兴趣的:(介绍胶囊网络 capsule networks)