教程:可视化 CapsNet

此前,跨象乘云™ 介绍了《取代 CNN?Hinton 开源胶囊网络模型》。Geoffrey Hinton 认为,尽管卷积神经网络(Convolutional Neural Networks)已经做出了令人惊艳的成绩,但还是存在着一些根本性问题。是时候开始思考新的解决方案和改进了。现在就让我们一起来了解一下胶囊网络 —— CapsNet (Capsule Networks)将神经元的标量输出转换为向量输出提高了表征能力,我们不仅能用它表示图像是否有某个特征,同时还能表示这个特征的旋转和位置等物理特征。本文从可视化的角度出发详解释了 CapsNet 的原理的计算过程,非常有利于直观理解它的结构。

在过去的几个月里,Nick Bourdakos 一直沉浸在各种各样的胶囊网络里,觉得现在是时候一起更加深入地探索胶囊网络的实际运作方式了。为了让后面的讨论更加容易,我开发了一款与胶囊网络实现配套的可视化工具,它能够让您看到网络的每一层是如何工作的。如下所示,是 CapsNet 的结构。如果您现在还不理解每个部分的具体含义,不必担心。通过可视化教程,你能一层一层地进行详细讨论并了解 CapsNet 的工作原理。另外,你也可以通过机器之心的机器学习 GitHub 门户,了解更多机器学习的原理。

Architecture of CapsNet
Architecture of CapsNet

GitHub地址项目 GitHub 地址

取代CNN?Hinton开源胶囊网络模型

深度学习之父,Google Brain 人工智能团队首席科学家:Geoffrey Hinton,在10月份发表了备受瞩目的 Capsule Networks (CapsNet),大有要用它取代 CNN —— 卷积神经网络模型的气势。Hinton 早在 2017 年 10 月,便发布《 Dynamic Routing Between Capsules 》论文,介绍全新的一代深度学习模型:胶囊网络。

目前的神经网络中,每一层的神经元都做的是类似的事情,比如一个卷积层内的每个神经元都做的是一样的卷积操作。而 Hinton 坚信,不同的神经元完全可以关注不同的实体或者属性,比如在一开始就有不同的神经元关注不同的类别(而不是到最后才有归一化分类)。具体来说,有的神经元关注位置、有的关注尺寸、有的关注方向。这类似人类大脑中语言、视觉都有分别的区域负责,而不是分散在整个大脑中。

为了避免网络结构的杂乱无章,Hinton 提出把关注同一个类别或者同一个属性的神经元打包集合在一起,好像胶囊一样。在神经网络工作时,这些胶囊间的通路形成稀疏激活的树状结构(整个树中只有部分路径上的胶囊被激活),从而形成了他的 Capsule 理论。

Capsule 这样的网络结构在符合人们“一次认知多个属性”的直观感受的同时,也会带来另一个直观的问题,那就是不同的胶囊应该如何训练、又如何让网络自己决定胶囊间的激活关系。Hinton 论文解决的重点问题就是不同胶囊间连接权重(路由)的学习。

只要你当前的深度学习环境中部署了:TensorFlowNumPy 以及 GPU,便可在胶囊网络的开源页面上,下载代码,使用胶囊网络模型对 MNIST,CIFAR10 数据集进行测试验证。

GitHub地址项目GitHub地址