Capsule Network Performance on Complex Data

  • Edgar Xi, Machine Learning Department, Carnegie Mellon University
  • Selina Bing Yang Jin, Computer Science Department, Carnegie Mellon University

Introduction

CNN存在的问题

  • CNN忽略了层内的层级结构(人脑里面就有这样的结构)
  • 缺乏旋转不变性

为了解决这个问题,Hinton等人最近提出了CapsNet,一种使用capsule的新型神经网络

Capsule Networks概览

主要创新点

  • 使用capsule作为基本组件
  • 使用向量输出替代标量输出
  • 使用routing by agreement替代max-pooling

Dynamic Routing

capsule输出一个向量,并且可以选择将信息传送到上层的那个capsule。对于每个潜在的parent,capsule network可以增加或者降低连接强度。这种routing by agreement机制在添加方差方面比max-pooling更加有效。

Reconstruction Regularization

传统CNN使用dropout避免过拟合,而Capsule通过重构自动编码器来达到同样的目的。在训练时,除了正确的数字对应的向量外,其他向量都被屏蔽。这个正确数字对应的向量会被用来重构为图像,根据重构的结果来计算loss。这是的网络能够学习更一般话的图像表示。

Methodology

本文实验对CapsNet做了以下调整

  • 使用更多胶囊层
  • 增加PrimaryCaps的capsule数量,使其学习到更丰富的特征表达
  • 整体平均(Ensemble averaging):一组网络一起训练,取结果的平均值
  • 调整重构损失的比例,分析缩放银子对过拟合和收敛速度的影响
  • 增加胶囊层之前的卷积层数量
  • 使用自定义的激活函数f(x)=(1- \frac{1}{e^{|x|}} \frac{x}{|x|}),使得极寒函数对x的微小变化更敏感,从而导致更大的类别区分度
  • 增加一个类别:胶囊倾向于解说图像中的所有内容,因此增加一个类别可以提高准确性(猜测是将不相关的噪声信息都归入到了这个类别当中,我之前做实验尝试过这种方法,并没有取得多少提升)

实验结果

实验部分将上面提到的调整分别进行实验,其中“Ensemble”包含了增加一个类别的方法。结果如下:

9743044-237a93bc12c4aafc.png

9743044-daa1952b6ded22fc.png

9743044-1291367500833f3d.png

并没有取得预期效果,大部分仅带来了一些提高。稍好的是增加卷积层和Ensemble,其有效的根本原因是由于更复杂的特征表达。与预期相反,堆叠额外的胶囊层和使用自己的激活函数使得表现大幅下降。降低重构占loss的比重和增加一个类别均低于预期。

Reconstruction

9743044-624d1eb3d78a3a03.png

图片上半部分是原始数据,下半部分是重构的图像。可以看到,对MNIST的重构是比较成功的,而对CIFAR-10这种复杂数据的重构就比较糟糕,从而导致了reconstruction loss,这也是影响模型表现的一部分。因此,对于复杂的数据,应该使用更复杂的重构模型。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值