深度学习之胶囊网络CapsNet

论文地址:https://arxiv.org/abs/1710.09829
github地址:https://github.com/naturomics/CapsNet-Tensorflow


胶囊网络的理解

我的理解:胶囊网络是CNN的升级版,它们有很多相似的地方和根本的不同点。
CNN:每个神经元的输出是标量
CapsuleNet:每个神经元的输出是向量,也就是多个标量的结合

类比一下CNN和CapsNet:
CNN的过程是(convolution)加权求和,激活函数(relu),获取更重要的信息(maxpooling)。
CapsNet是加权求和(向量的加权和),激活函数(squashing),获取更重要的信息(dynamic routing)


公式

输入:vector u i u_i ui

仿射变换: u ^ j ∣ i = W i j u i \hat{u}_{j|i} = W_{ij}u_i u^ji=Wijui

加权求和: s j = ∑ i c i j u ^ j ∣ i s_j = \sum_ic_{ij}\hat{u}_{j|i} sj=iciju^ji

c i j = e x p ( b i j ) ∑ k e x p ( b i k ) c_{ij} = \frac{exp{(b_{ij})}}{\sum_k{exp{(b_{ik})}}} cij=kexp(bik)exp(bij)

b i j = b i j + u ^ j ∣ i   v j b_{ij} = b_{ij} + \hat{u}_{j|i} \ v_j bij=bij+u^ji vj

非线性激活函数: v j = ∣ ∣ s ∣ ∣ 2 1 + ∣ ∣ s ∣ ∣ 2 s j ∣ ∣ s j ∣ ∣ 2 v_j = \frac{{||s||}^2}{1+{||s||}^2}\frac{s_j}{{||s_j||}^2} vj=1+s2s2sj2sj

输出:vector v j v_j vj

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


CapsNet模型

两个卷积层(Conv 1, PrimaryCaps),一个全连接层(DigitCaps)

L1. Conv 1层:常规的卷积层,起像素级局部特征检测作用

input_size: 28 * 28 * 1
kernel_size: 9 * 9
conv_stride: 1 * 1
Channels : 256
activation: Relu
shape: [None, 28, 28, 1] → \rightarrow [None, 20, 20, 256]
parameters: 9 * 9 * 256 + 256 = 20,992

L2. PrimaryCaps层

input_size: 20 * 20 * 256
kernel_size: 9 * 9
conv_stride: 2 * 2
Channels : 32
non-linearity function: Squashing function
8 convolutional units: 256=8 * 32
在这里插入图片描述

shape:[None, 20, 20, 256] → \rightarrow [None, 6, 6, 32] → \rightarrow 8个并行卷积层:
[None, 6, 6, 1, 32]
[None, 6, 6, 1, 32]

[None, 6, 6, 1, 32]

对每个卷积层的各个通道在第四个维度上进行合并

=[None, 6, 6, 8, 32]
在这里插入图片描述

parameters:(9 * 9 * 256) * 8 * 32 + 8 * 32 = 5,308,672

L3. DigitCaps层

10 capsules with 16D vector output, fully connected
输入:PrimaryCaps层所有capsule(6 * 6 * 32)的输出向量 u i u_i ui,向量维度[8, 1]
输出: v j v_j vj,维度为[16, 1]
shape:[None, 1152, 8, 1] → \rightarrow [None, 10, 16, 1]
parameters:
1152 * 10个 W i j W_{ij} Wij: 1152 * 10 * 8 * 16 = 1,474,560
1152 * 10个 c i j b i j \frac{c_{ij}}{b_{ij}} bijcij: 1152 * 10 * 1 = 11,520
在这里插入图片描述

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值