CapsNet胶囊理论

来源:互联网 发布:c语言无法打开源文件 编辑:程序博客网 时间:2024/04/20 08:30

背景 :CNN存在不足

让我们考虑一个非常简单的非技术性例子。想象一张脸,想一下它是由哪些部件组成的?代表脸型的椭圆、两只眼睛、一个鼻子和一个嘴巴。对于CNN来说,仅仅这些对象的存在就是一个非常强烈的暗示,意味着图像中有一张脸。而组件的朝向和空间上的相对关系对CNN来说并不是很重要。也就是没有整体约束的判断能力!只要图像中含有人脸的各个部件就可以判断为人脸,而至于部件放位置是不管的!
Hinton自己就表示,最大池化表现如此优异是一个巨大的错误,是一场灾难:

卷积神经网络使用的池化操作是一个巨大的错误,它表现如此优异则是一场灾难。
当然,你可以不使用最大池化,基于传统的CNN取得不错的结果,然而这仍旧没有解决一个关键问题:

卷积神经网络的内部数据表示没有考虑简单和复杂对象之间的重要空间层级。
上文提到的例子,图片中存在两只眼睛、一张嘴和一个鼻子,仅仅这些并不意味着图片中存在一张脸,我们还需要知道这些对象彼此之间的朝向关系。

启发:计算机图形学

Hinton主张,大脑做的,和渲染正好相反。他把这个叫做逆图形,从眼睛接收到的视觉信息中,大脑解析出我们周围世界的分层表示,并尝试匹配已学习到的模式和存储在大脑中的关系。辨识就是这样进行的。关键的想法是大脑中物体的表示并不依赖于视角。

那么我们现在要考虑的问题是:我们如何在神经网络中建模这些分层关系?答案源自计算机图形学。在三维图形中,三维对象之间的关系可以用位姿表示,位姿的本质是平移和旋转。

Hinton主张,为了正确地分类和辨识对象,保留对象部件间的分层位姿关系很重要。这是让你理解胶囊理论为何如此重要的关键直觉。它结合了对象之间的相对关系,在数值上表示为4维位姿矩阵。

当数据的内部表示内建这些关系时,模型非常容易理解它看到的是以前见过的东西,只不过是另一个视角而已。考虑下面的图片。你可以轻易辨识出这是自由女神像,尽管所有的图像显示的角度都不一样。这是因为你脑中的自由女神像的内部表示并不依赖视角。你大概从没有见过和这些一模一样的图片,但你仍然能立刻知道这是自由女神像。

对CNN而言,这个任务非常难,因为它没有内建对三维空间的理解。而对于CapsNet而言,这个任务要容易得多,因为它显式地建模了这些关系。相比之前最先进的方法,使用CapsNet的论文能够将错误率降低45%(由约20%降低到约12%),这是一个巨大的提升。

胶囊方法的另一大益处在于,相比CNN需要的数据,它只需要学习一小部分数据,就能达到最先进的效果(Hinton在他关于CNN错误的著名演说中提到了这一点)。 从这个意义上说,胶囊理论实际上更接近人脑的行为。为了学会区分数字,人脑只需要几十个例子,最多几百个例子。而CNN则需要几万个例子才能取得很好的效果。这看起来像是在暴力破解,显然要比我们的大脑低级。

结论

胶囊引入了一个用于深度学习的新构件,以更好地建模神经网络中内部知识表示的分层关系。胶囊背后的直觉非常简单优雅。

Hinton和他的团队提出了一种训练这种胶囊组成的网络的方法,并在一个简单的数据集上成功完成训练,达到了最先进的效果。这是非常鼓舞人心的。

尽管如此,挑战依旧存在。胶囊网络的当前实现比其他现代深度学习模型慢很多。时间会告诉我们,是否能够快速高效地训练胶囊网络。此外,我们需要看看胶囊网络在更困难的数据集上和不同领域是否仍然表现良好。

原创粉丝点击