Capsule Network 胶囊网络介绍

论文名称:Dynamic Routing Between Capsules
论文地址:https://ndey96.github.io/deep-learning-paper-club/slides/Capsule%20Networks.pdf
项目地址(Keras): https://github.com/XifengGuo/CapsNet-Keras
项目地址(Torch): https://github.com/leftthomas/CapsNet

1 引言

Geoffrey Hinton的胶囊网络(Capsule Network)一经发布就震动了整个人工智能领域,它将卷积神经网络(CNN)的极限提升到一个新的水平。这种网络基于一种被Hinton称为胶囊(capsule)的结构。 此外,他还发表了囊间动态路由算法,用来训练新提出的胶囊网络。
Capsule Network 胶囊网络介绍_第1张图片
在传统神经网络中,神经元通常是按层排列的而胶囊网络通过将神经元组织成胶囊的形式,更好地捕捉输入数据之间的层级关系。这种设计使得胶囊网络对于姿态空间关系等信息的学习更为有效。

2 胶囊网络的工作原理

胶囊网络的工作原理涉及到动态路由胶囊之间的关联以及向量输出等概念。在胶囊网络中,每个胶囊都有一个动态路由的机制,可以动态地将信息传递给上一层的胶囊,从而形成胶囊之间的关联。这种机制使得网络能够更好地处理输入数据的层级结构

Capsule Network 胶囊网络介绍_第2张图片
此外,胶囊网络的输出是一个向量,其中包含了关于输入数据的重要信息这种向量输出的方式有别于传统神经网络中的标量输出,使得胶囊网络在处理复杂数据结构时更具优势

损失函数:
Capsule Network 胶囊网络介绍_第3张图片

3 胶囊网络的优缺点

CNN的缺点:

  • 通常需要大规模的注释数据集才能实现高性能;
  • 不能很好地表征不同特征之间的空间关系。

例子:
Capsule Network 胶囊网络介绍_第4张图片
对于上图这样一个人脸识别任务,虽然右图不是人脸但都具备了人脸需要的对象,所以CNN有很大可能通过具有的对象激活了是人脸的判断,从而使得结果判断出错。这个例子就体现了CNN只注重图像像素中的重要特征,而不考虑对象的空间关系。

胶囊网络的优点:

  • 可以用更小的训练数据进行良好的训练;
  • 具有更强的能力去识别复杂的层次结构和空间关系。

胶囊网络的缺点:

  • 运行消耗的内存非常大,一个普通设计8G显存足够用的任务,使用胶囊网络大概要24G显存才勉强够用!!!
  • 运行速度很慢,跑的是真的慢,因为内部时动态路由(或者说是动态寻优)是一个不停地迭代过程,所以运算速度很慢。。。
  • 效果很不稳定。对于我自己在做的任务,跑完之后效果远差于原始网络。

4 原论文实验效果

作者在多个数据集上的实验结果表明:胶囊网络可以实现更高的精度
Capsule Network 胶囊网络介绍_第5张图片

注意:当前也有很多人拿着胶囊网络在做一些任务,但是就目前我在自己数据上跑i的任务而言,还不是很成熟。。
就我个人而言认为:它不是一个适配性更高、效果很好的模型。不稳定可能是其最大的缺点。。。

5 总结

建议:可以作为一个论文提分的点,但是工程上不建议用。。。
到此,使用 Capsule Network 胶囊网络介绍 已经介绍完毕了!!! 如果有什么疑问欢迎在评论区提出,对于共性问题可能会后续添加到文章介绍中。

如果觉得这篇文章对你有用,记得点赞、收藏并分享给你的小伙伴们哦。

参考资料

胶囊神经网络

你可能感兴趣的:(人工智能,python,机器学习,深度学习,pytorch)