深入了解Hinton的Capsule神经网络,第二部分:如何运作

在这个系列的第一部分,我谈到了架构的直观介绍和动机。在这部分,我将描述Capsule是如何在内部运作的。

第一部分:http://www.atyun.com/10006_深入了解Hinton的Capsule神经网络,第一部分:直观地介绍.html

Capsule是如何工作的? 让我们将Capsule与人造神经元进行比较。下表总结了Capsule和神经元之间的区别:

Capsule和神经元之间的重要区别

一个神经元接收来自其他神经元的输入标量,然后将它们的标量的权重和总和相乘。然后,这个总和被传递给许多可能的非线性激活函数中的一个,主要根据函数接受输入和输出一个标量。这个标量是神经元的输出,它将作为其他神经元的输入。这个过程的总结可以在上面的表格和下图中右边的内容上看到。从本质上说,人工神经元可以用3个步骤来描述:

1.输入标量的标量权重 2.加权输入标量的和 3.标量到标量非线性

左:Capsule;右:人工神经元

另一方面,Capsule除了上面三个步骤的向量形式,还有新的步骤和输入的仿射变换:

1.输入向量的矩阵乘法 2.输入向量的标量权重 3.加权输入向量的总和 4.向量到向量非线性

现在让我们更好地看一下Capsule内部的4个计算步骤。

1.输入向量的矩阵乘法 Capsule接收到的输入载体(图中的u1、u2和u3)来自于下面这一层的另外3个Capsule。这些向量的长度编码了较低的Capsule检测到它们对应的对象和向量方向的概率,并对检测到的对象的内部状态进行编码。让我们假设较低层次的Capsule分别检测眼睛、嘴巴和鼻子,而稍好些的Capsule检测到的是面部。

然后,这些向量乘以相应的权重矩阵W,它编码了重要的空间和其他低层次特征(眼睛、嘴和鼻子)和高层次特征(面部)之间的关系。例如,矩阵W2j可以对鼻子和面部的关系进行编码:面部以鼻子为中心,其大小是鼻子的10倍,而在空间上的方向与鼻子的方向一致,因为它们都在同一个平面上。对于矩阵W1j和W3j,也可以得出类似的结果。在这些矩阵相乘之后,我们得到的是更高层次特征的预测位置。换句话说,根据检测到的眼睛的位置,u1hat代表了人脸的位置,根据检测到的嘴巴的位置,u2hat代表了人脸的位置,根据鼻子的检测位置,u3hat代表了人脸的位置。

这时你可能会认为:如果这3个低层次特征的预测指向面部的同一个位置和状态,那么它一定是一张脸。

2.输入向量的标量权重 乍一看,这个步骤似乎非常熟悉,因为人工神经元会在添加它们之前,对输入进行加权。在神经元的情况下,这些权重是在反向传播过程中得到的,但Capsule是通过“动态路由选择(dynamic routing)”来确定的,这是一种确定每个Capsule的输出位置的新方法。

低层次的的Capsule将把它的输入发送到与它的输入“一致”的更高层次的Capsule。这是动态路由选择算法的本质

在上面的图片中,我们有一个低层次的Capsule,它需要“决定”它将向哪个更高层次的Capsule发送它的输出。它将通过调整权重C来决定这个Capsule的输出,然后再把它送到左侧或右侧更高层次的capsule J和capsule K中。

现在,更高层次的capsule已经从其他低层次的capsule中获得了许多输入载体。所有这些输入都用红色点和蓝色点表示。当这些点聚集在一起时,这就意味着较低层次的capsule的预测是相互接近的。这就是为什么,为了举个例子,在两个capsule J和capsule K中都有一个红色的点。

那么,我们的低层次的capsule应该把它的输出送到哪里呢? 是capsule J还是capsule K? 这个问题的答案是动态路由算法的本质。低层次capsule的输出,当乘以相应的矩阵W,远离在capsule J中“correct”预测的红色集群capsule J.另一方面,如果将非常接近在右侧的capsule K 中的“true”预测的红色集群.低层次capsule有一个测量机制,高层次capsule更好地适应其结果和将自动调整其权重,这样重量C对应的capsule K会变高,对应的capsule J会变低。

3.加权输入向量的总和 这一步骤类似于常规的人工神经元,并表示输入的组合。我不认为这一步有什么特别之处(除了它是向量和标量之和)。因此,我们可以进入下一个步骤。

4.“挤压(squash)”:新式的向量到向量非线性 CapsNet引入的另一个创新是新的非线性激活函数,该函数取一个向量,然后将其挤压到长度不超过1,但不会改变它的方向。

在不改变方向的情况下,挤压非线性scale输入向量

等式的右边(蓝色矩形)缩放具有单位长度的输入向量su,,左侧(红色矩形)执行额外的缩放。记住,输出向量的长度可以被解释为被capsule探测到的一个给定特征的概率。

下图是对一维向量应用的挤压函数(squashing function),它是一个标量。我把它包含在这个函数的非线性形状中。只有在一维情况下才有意义;在实际应用中,它会取向量和输出一个向量,这是很难想象的。

结论 我们看到,capsule的设计是建立在人工神经元的设计之上的,但将其扩展到向量形式,以获得更强大的表征能力。它还引入了矩阵权重来对不同层次的特性之间的重要层次关系进行编码。结果得出:神经元活动与在特征检测的输入和不变性方面的变化是一致的。

capsule的内部工作原理

请注意,这里没有偏差,因为它已经包含在可以容纳它和其他更复杂的转换和关系W矩阵中。本系列的第二部份结束,今后的文章将讨论Capsules算法的动态路由选择,以及该网络结构的详细介绍。

原文发布于微信公众号 - ATYUN订阅号(atyun_com)

原文发表时间:2017-11-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习入门

PRML系列:1.3 Model Selection

PRML系列:1.3 Model Selection 模型选择 模型选择一般采用交叉验证,本节提到了S-fold cross-validation,原理如下,把...

1838
来自专栏我是攻城师

opencv里面直方图的意义

3136
来自专栏利炳根的专栏

学习笔记CB012: LSTM 简单实现、完整实现、torch、小说训练word2vec lstm机器人

LSTM(Long Short Tem Memory)特殊递归神经网络,神经元保存历史记忆,解决自然语言处理统计方法只能考虑最近n个词语而忽略更久前词语的问题。...

4376
来自专栏yl 成长笔记

图形搜索中用到的机器学习基础介绍

针对目标图像(具有统一特征的图像),进行基于深度学习技术的模型训练,通过调优模型结构与参数,得到对于指定图像具有提取特征信息的模型 M。将库中所有图像通过 M ...

603
来自专栏技术小站

吴恩达深度学习笔记 course4 week4 测验

Face verification requires comparing a new picture against one person’s face, wh...

754
来自专栏wym

opencv学习笔记 ----绘制直方图

函数的参数cv.calcHist(images,channels,mask,histSize,ranges,hist=None,accumulate=None)

1022
来自专栏书山有路勤为径

Generative Adversarial Network

这里我们将建立 一个对抗生成网络 (GAN)训练MNIST,并在最后生成新的手写数字。

702
来自专栏智能算法

深度学习三人行(第4期)---- TF训练DNN之进阶

2128
来自专栏机器学习算法与理论

树回归分析

树回归:可以对复杂和非线性的数据进行建模;适用数值型和标称型数据。 1、 CART:classification and regression trees(...

2706
来自专栏大数据挖掘DT机器学习

python使用AI实现识别暹罗与英短

先来上两张图看看那种猫是暹罗?那种猫是英短? 第一张暹罗 ? 第二张英短 ? 你以后是不是可以识别了暹罗和英短了?大概能,好像又不能。这是因为素材太少了,我们...

36111

扫码关注云+社区