Capsule:Dynamic Routing Between Capsules

本文介绍了Hinton提出的Capsule概念,旨在解决CNN在位置关系和3D空间理解上的问题。Capsule通过神经元向量捕获对象间的空间关系,使用动态路由算法实现对3D空间的建模。此外,Capsule网络只需少量数据即可高效学习,更接近人脑的学习方式。
摘要由CSDN通过智能技术生成

Capsule介绍

Hinton在《Dynamic Routing Between Capsules》中提出了capsule,以神经元向量代替了从前的单个神经元节点,以dynamic routing的方式去训练这种全新的神经网络。又在第二篇论文《Matrix Capsules With EM Routing》中以神经元矩阵代替了神经元向量,我们以em routing的方式进行训练。本文分析第一篇capsule论文《Dynamic Routing Between Capsules》。

CNN的工作原理

  1. 浅层的卷积层会检测一些简单的特征,例如边缘和颜色渐变。
  2. 更高层就会将简单的特征加权合并到更复杂的特征中,在这种设置中,简单特征之间的关系(平移和旋转)构成了更高级的特征。CNN在这里会使用到max pooling,保留重要的特征同时丢弃一些它所认为不重要的特征,增加高层神经元的视野。
  3. 最后,网络顶部的网络层会结合这些非常高级的特征去做分类预测。

CNN有两个重大的问题:

  • CNN只关注要检测的目标是否存在,而不关注这些组件之间的位置和相对的空间关系。如卡戴珊的例子(我并没有黑她,真的没有),CNN判断人脸只需要检测出它是否存在两个眼睛,两个眉毛,一个鼻子和一个嘴唇,现在我们把右眼和嘴巴换个位置,CNN依然认为这是个人。
    在这里插入图片描述
  • CNN对旋转不具备不变性,学习不到3D空间信息。例如下面的自由女神,我们只看自由女神的一张照片,我们可能没有看过其它角度的照片,还是能分辨出这些旋转后的照片都是自由女神,也就是说,图像的内部表征不取决于我们的视角。但是CNN做这个事情很困难,因为它无法理解3D空间。
    在这里插入图片描述
  • 另外,神经网络一般需要学习成千上万个例子。人类学习数字,可能只需要看几十个个例子,最多几百个,就能区别数字。但是CNN需要成千上万个例子才能达到比较好的效果,强制去学习。并且关于前面的旋转不变性,CNN可以通过增强数据的手段去改善,但是这也就需要用到大量的数据集。

虽然max pooling在很多任务上提高了原始CNN的准确率,但是我们也可以看到max pooling丢失了很多有价值的信息,并没有很好地理解内容,比如对畸形脸的判定,之所以测试集上准确率高,是因为我们没有畸形脸的训练数据与测试数据。

因此Hinton认为:max pooling工作得这么好其实是一个大灾难。

The pooling operation used in convolution neural networks is a big mistake and the fact that it works so well is a disaster.

就算你不使用max pooling,传统CNN依然存在这样的关键问题,学习不到简单与复杂对象之间的重要的空间层次特征:

Internal data representation of a convolution neural network does not take into account important spatial hierarchies between simple and complex objects.

所以Capsule尝试去解决这些问题:

  • Capsule可以学习到物体之间的位置关系,例如它可以学习到眉毛下面是眼睛,鼻子下面是嘴唇,可以减轻前面的目标组件乱序问题。
  • Capsule可以对3D空间的关系进行明确建模,capsule可以学习到上面和下面的图片是同一个类别,只是视图的角度不一样。Capsule可以更好地在神经网络的内部知识表达中建立层次关系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值