分享
教程 | 可视化CapsNet,详解Hinton等人提出的胶囊概念与原理
输入“/”快速插入内容
教程 | 可视化CapsNet,详解Hinton等人提出的胶囊概念与原理
🔗 原文链接:
https://mp.weixin.qq.com/s/HbqmdaxI...
⏰ 发表时间:机器之心
2018年04月07日 11:33
选自freecodecamp
作者:Nick Bourdakos
机器之心编译
参与: Pedro、思源
CapsNet 将神经元的标量输出转换为向量输出提高了表征能力,我们不仅能用它表示图像是否有某个特征,同时还能表示这个特征的旋转和位置等物理特征。本文从可视化的角度出发详解释了 CapsNet 的原理的计算过程,非常有利于直观理解它的结构。
尽管卷积神经网络已经做出了令人惊艳的成绩,但还是存在着一些根本性问题。是时候开始思考新的解决方案和改进了。现在就让我们一起来了解一下胶囊网络(capsules networks)。
在之前的文章中我曾简要地讨论过胶囊网络(
https://hackernoon.com/capsule-networks-are-shaking-up-ai-heres-how-to-use-them-c233a0971952
)是如何解决一些传统问题的。在过去的几个月里,我一直沉浸在各种各样的胶囊网络里。我觉得现在是时候一起更加深入地探索胶囊网络的实际运作方式了。
为了让后面的讨论更加容易,我开发了一款与胶囊网络实现配套的可视化工具,它能够让您看到网络的每一层是如何工作的。这些内容都可以在 GitHub 上找到(
https://github.com/bourdakos1/CapsNet-Visualization
)。
如下所示是 CapsNet 的结构。如果您现在还不理解每个部分的具体含义,不必担心。我会尽我所能一层一层地进行详细讨论。
part 0: 网络输入
胶囊网络(CapsNet)的输入是提供给神经网络的真实图片。在这个例子中输入的图片长宽都为 28 个像素。一张图片实际上有 3 个维度用来存储不同颜色通道的信息。
因为是灰度图,而用作示例的图片仅仅有一个颜色通道。大家所熟悉的大多数图片都有 3 或 4 个通道用来存储红-绿-蓝和可能用于存储灰度或透明度的额外通道。
每个像素都被表示为 0 到 255 之间的一个数字并且被存储在一个 28x28x1 的矩阵 [28, 28, 1] 里。每一个像素的颜色越明亮,其数值越大。
Part 1a: 卷积
胶囊网络的第一个部分是传统的卷积网络。那么什么是卷积网络,它是怎么工作,而又有什么作用呢?
我们的目标是要从输入图像中提取一些非常基础的特征,比如边缘或者曲线。 那么我们是怎么做到的呢? 让我们来思考一个边缘情况: