胶囊网络Dynamic Routing Between Capsules论文详解

Dynamic Routing Between Capsules

20181118

14:39

 

https://github.com/ageron/handson-ml

 

 

 

 

胶囊网络Dynamic Routing Between Capsules论文详解_第1张图片

 

 

屏幕剪辑的捕获时间: 2018/11/18 14:43

C类似于max_pooling(结果由卷积后的输出决定)

 

胶囊网络Dynamic Routing Between Capsules论文详解_第2张图片

 

屏幕剪辑的捕获时间: 2018/11/18 14:48

 

流程类似于RNN,输出在下一轮被用。

胶囊网络Dynamic Routing Between Capsules论文详解_第3张图片

 

屏幕剪辑的捕获时间: 2018/11/18 14:51

 

 

胶囊网络Dynamic Routing Between Capsules论文详解_第4张图片

 

屏幕剪辑的捕获时间: 2018/11/18 14:56

固定v1的其他维度,只改变一个维度,观察输出reconstruction network输出的结果,发现该维度的特征是控制,粗细、旋转等等。

 

 

 

胶囊网络Dynamic Routing Between Capsules论文详解_第5张图片

 

屏幕剪辑的捕获时间: 2018/11/18 15:00

 

CNN对同一类的图片的输出是相同的,但是capsule对进行翻转的同类图片,输出向量也是翻转(取负数)的结果。

胶囊网络Dynamic Routing Between Capsules论文详解_第6张图片

 

屏幕剪辑的捕获时间: 2018/11/18 15:02

胶囊的同变性:

池化pooling会丢失掉精确的位置信息和姿态。精确的图像分区和目标检测(位置和姿态)会受到干扰。

 

 

 

 

胶囊网络Dynamic Routing Between Capsules论文详解_第7张图片

 

屏幕剪辑的捕获时间: 2018/11/18 15:04

 

capsule类似于memory network。

 

胶囊网络Dynamic Routing Between Capsules论文详解_第8张图片

 

屏幕剪辑的捕获时间: 2018/11/18 15:05

 

 

 

胶囊网络Dynamic Routing Between Capsules论文详解_第9张图片

 

屏幕剪辑的捕获时间: 2018/11/18 15:12

 

胶囊网络Dynamic Routing Between Capsules论文详解_第10张图片

 

屏幕剪辑的捕获时间: 2018/11/18 15:13

squashing类似于softmax,使用非线性变换将向量的模归一化到【0,1】.

softmax:

 

屏幕剪辑的捕获时间: 2018/11/18 15:19

 

胶囊网络Dynamic Routing Between Capsules论文详解_第11张图片

 

屏幕剪辑的捕获时间: 2018/11/18 15:23

 

胶囊网络Dynamic Routing Between Capsules论文详解_第12张图片

 

屏幕剪辑的捕获时间: 2018/11/18 15:27

 

 

使用9*9的filter,得到ReLU后的卷积结果,将其分组得到32个caps并flatten成1152*8,后全连接得到10个16维的capsule.将每个胶囊计算的范数算argmax得到胶囊的标号,即分类标签。

Related Paper

胶囊网络Dynamic Routing Between Capsules论文详解_第13张图片

 

屏幕剪辑的捕获时间: 2018/11/18 15:34

胶囊网络Dynamic Routing Between Capsules论文详解_第14张图片

 

屏幕剪辑的捕获时间: 2018/11/18 15:43

胶囊网络Dynamic Routing Between Capsules论文详解_第15张图片

 

屏幕剪辑的捕获时间: 2018/11/18 16:02

类似Kmeans的routing agreement.

 

胶囊网络Dynamic Routing Between Capsules论文详解_第16张图片

 

屏幕剪辑的捕获时间: 2018/11/18 16:10

capsule可以通过多轮投票的方式选出正确的house+boat组合,而并不是倒着的house,适用于复杂场景的图像分区。

胶囊网络Dynamic Routing Between Capsules论文详解_第17张图片

 

屏幕剪辑的捕获时间: 2018/11/18 19:37

Margin loss.如果该类别是当前向量所表示的类,该向量范数>0.9,否则<0.1

胶囊网络Dynamic Routing Between Capsules论文详解_第18张图片

 

屏幕剪辑的捕获时间: 2018/11/18 19:39

 

 

Reconstruction network有正则化,防止过拟合的作用。

 

 

 

 

 

代码分析:

 

胶囊网络Dynamic Routing Between Capsules论文详解_第19张图片

 

屏幕剪辑的捕获时间: 2018/11/18 19:52

 

胶囊网络Dynamic Routing Between Capsules论文详解_第20张图片

 

屏幕剪辑的捕获时间: 2018/11/18 20:03

Input_layer:X是输入的灰度图,28*28*1

Primary_capsule_layer(绿色的初始胶囊激活向量)=2*卷积层+reshape+squash:

    1. 卷积层:输出36*256.
    2. reshape:得到32个capsule,每个大小36*8(比如第一张特征图代表了角度信息,一共有36个可选角度(local feature)排列成一张特征图6*6,每个角度用8维的向量表示)便于理解,实际操作36*256->32*36=1152个向量代表了所有子特征,每个向量是8维的,转置成1*8方便接下来使用。

 

    1. squash:自定义,注意生成零向量在分母则NAN(not a number),因此在分母+1e-7.

 

屏幕剪辑的捕获时间: 2018/11/18 20:21

 

胶囊网络Dynamic Routing Between Capsules论文详解_第21张图片

Digit capsules:

    1. 胶囊网络Dynamic Routing Between Capsules论文详解_第22张图片
    2. 得到10个16维的向量,每个向量的每个维度代表一个综合特征,类似之前的32个特征组,比如角度、厚度等等。
    3. 粉色箭头第i行代表了使用第i个子特征(i<=1152)对当前的图片进行第j(j<=10)类预测的概率大小

胶囊网络Dynamic Routing Between Capsules论文详解_第23张图片

 

 

屏幕剪辑的捕获时间: 2018/11/18 22:42

 

 

 

屏幕剪辑的捕获时间: 2018/11/18 22:43

 

 

屏幕剪辑的捕获时间: 2018/11/18 16:43

 

屏幕剪辑的捕获时间: 2018/11/18 20:44

 

 

 

屏幕剪辑的捕获时间: 2018/11/18 20:45

 

 

胶囊网络Dynamic Routing Between Capsules论文详解_第24张图片

 

屏幕剪辑的捕获时间: 2018/11/18 20:46

 

Scale production 点乘 vj actual output vector,说明了在某个j类别中,使用第i个子特征向量最能表示该数字或者类别的特征。即提取了主特征。

 

 

胶囊网络Dynamic Routing Between Capsules论文详解_第25张图片

 

屏幕剪辑的捕获时间: 2018/11/18 22:23

 

Digit Capsules:动态循环,可改变循环次数。

 

屏幕剪辑的捕获时间: 2018/11/18 22:33

Length:计算10个向量的范数或者长度作为分类概率(单纯比较大小,不需要softmax),类似之前的routing 环节需要使用homemade 范数,因为tensorflow自带的范数,在0向量处训练会爆炸。

而且,可以计算判断图像中出现的两个不同的数字,相同数字无法判断。

胶囊网络Dynamic Routing Between Capsules论文详解_第26张图片

 

屏幕剪辑的捕获时间: 2018/11/19 10:34

 

Margin loss:使用onehot确定当前变量K和预测标签是否相同,通过上述函数表达式计算Lk.

 

胶囊网络Dynamic Routing Between Capsules论文详解_第27张图片

 

屏幕剪辑的捕获时间: 2018/11/19 10:39

 

 

胶囊网络Dynamic Routing Between Capsules论文详解_第28张图片

 

屏幕剪辑的捕获时间: 2018/11/19 10:40

 

 

胶囊网络Dynamic Routing Between Capsules论文详解_第29张图片

 

屏幕剪辑的捕获时间: 2018/11/19 10:43

 

在训练中,用真实label的onehot向量mask与digit capsules的输出相乘;

在测试时,用预测标签的onehot向量mask与digit capsules的输出相乘。

胶囊网络Dynamic Routing Between Capsules论文详解_第30张图片

 

屏幕剪辑的捕获时间: 2018/11/19 10:51

 

 

胶囊网络Dynamic Routing Between Capsules论文详解_第31张图片

 

屏幕剪辑的捕获时间: 2018/11/19 11:03

Github 中加上了用validation+提前截止寻找最优模型,防止过拟合的方法。

 

胶囊网络Dynamic Routing Between Capsules论文详解_第32张图片

 

屏幕剪辑的捕获时间: 2018/11/19 11:06

 

 

胶囊网络Dynamic Routing Between Capsules论文详解_第33张图片

 

屏幕剪辑的捕获时间: 2018/11/18 19:53

loss用全连接的输出方差决定,28*28=784

 

 

你可能感兴趣的:(胶囊网络Dynamic Routing Between Capsules论文详解)