深入了解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 条评论
登录 后参与评论

相关文章

来自专栏人工智能LeadAI

透析 | 卷积神经网络CNN究竟是怎样一步一步工作的?

视频地址:https://www.youtube.com/embed/FmpDIaiMIeA; 文档参阅:<a href="https://github.com...

3676
来自专栏Coding迪斯尼

使用矩阵运算加速实现神经网络误差的反向传播

1103
来自专栏新智元

DeepMind重磅:神经算术逻辑单元,Keras实现

【新智元导读】DeepMind最新提出“神经算术逻辑单元”,旨在解决神经网络数值模拟能力不足的问题。与传统架构相比,NALU在训练期间的数值范围内和范围外都得到...

462
来自专栏机器之心

学界 | 473个模型试验告诉你文本分类中的最好编码方式

2925
来自专栏AI科技大本营的专栏

透析|卷积神经网络CNN究竟是怎样一步一步工作的?

译者 | zhwhong 当你听到说深度学习打破了某项新技术障碍,那么十有八九就会涉及到卷积神经网络。它们也被称作CNNs或着ConvNets,是深层神经网络领...

3129
来自专栏人工智能

评分卡系列(二):特征工程

文章很长,理论和实现都讲的很细,大家可以先收藏,有时间再看。 在上一篇文章中,我们对LendingClub的数据有了一个大致的了解,这次我将带大家把10万多条、...

4797
来自专栏数据科学与人工智能

【陆勤践行】SVM之核函数

前段时间热映的《星际穿越》想必大家都看过,在这部烧脑大片中,主角库珀进入到了高维度空间,在那里,时间这个维度变成实体存在,人们可以像散步一样沿着时间这个维度来回...

1888
来自专栏https://www.cnblogs.com/L

【机器学习】--xgboost从初识到应用

在 Kaggle 的很多比赛中,我们可以看到很多 winner 喜欢用 xgboost,而且获得非常好的表现,今天就来看看 xgboost 到底是什么以及如何应...

742
来自专栏机器学习算法与Python学习

Machine Learning -- Bayesian network

链接地址:http://www.dataguru.cn/thread-508373-1-1.html 0 引言 事实上,介绍贝叶斯定理、贝叶斯方法、贝叶斯推断的...

3586
来自专栏数说工作室

【分类战车SVM】第五话:核函数(哦,这实在太神奇了!)

分类战车SVM (第五话:核函数) 查看本《分类战车SVM》系列的内容: 第一话:开题话 第二话:线性分类 第三话:最大间隔分类器 第四话:拉格朗日对偶问题(原...

3635

扫描关注云+社区