胶囊网络(学习笔记)

一、什么是胶囊网络

1.1普通CNN的缺点:CNN在提取特征时只在乎有没有,不在乎他具体的状态是如何的。

上面第一张图片是一个人像,CNN可以正常识别出来;第二张是一个五官错位的图片,CNN仍然将其识别成一张人脸。这是因为CNN是可以识别出人像所具有的具体特征,只要包含这些特征就将其判定为一张人脸。

 1.2Hinton自己说过:最大池化层表现的如此优异是一个巨大的错误,是一场灾难。

从图中不难看出最大池化将一个4*4的矩阵池化为1*1的,会丢失大量的数据特征。

1.3胶囊网络的改进

1)使用向量代替单个数据,是输入是向量,输出也是向量。

普通CNN输出的是单个数据,丢失了大量的信息;Capsule输出的是一个向量,这个向量是关注数据位置空间信息的。

1.4胶囊网络的全貌:

输入一张图片,通过CNN进行简单的特征提取,然后通过8个并行的CNN进行深度的特征提取,在经过胶囊网络的动态路由输出预测结果。

 重建过程:提取到特征向量后采用全连接的方式将其恢复为784的向量(因为初始图片是28*28的),然后将其还原为图片。

二、胶囊网络的概览

2.1.初始卷积:就是简单的CNNConv2d以及ReLu。

核心代码:

输入图片形状1*1*28*28(B*C*W*H)

Conv2d的处理参数为in_channels=1,out_channels=256,kernel_size=9*9,stride=1.1

输出:1*256*20*20(N=(W-F+2P)/S+1)

实现了图片------>张量的过程。

2.2.PrimaryCaps网络层:由8个并行的CNN过程,用于更新权重w的。

核心代码:

 输入:1*256*20*20

这里是8个并行的Conv2d,步长为2

输出:一个CNN的输出是1*32*6*6,8个并行的输出是1*8*32*6*6---->1*8*1152

实现了普通特征---->深度特征&胶囊预处理的过程

2.3.DigitCaps网络层:数字胶囊层,这一层就是胶囊网络的核心,用于更新权重b。输入的是向量,输出也是向量。

输入:1*8*1152

这一层没有网络,他是一个新的操作,所以他的网络相当于自己手写的

输出:1*10*16*1

然后用Sigmoid()函数将其转化为1*10的预测概率

三、胶囊结构

3.1整体过程

 C的求法

 更新的原理:

 更新过程:

内容取自B站

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值