[capsNets系列]2018-06-12

CNN 目前的不足

尽管卷积神经网络在诸多方面性能表现良好,但是依旧存在一些问题;回归到问题的本质------众所周知,CNN最初的结构是有仿生学原理在里面的。20世纪60年代,Hubel和Wiesel在研究猫脑皮层中用于局部敏感和方向选择的神经元发现其独特的网络结构可以有效地降低反馈神经网络的复杂性,继而提出了卷积神经网络(Convolutional Neural Networks,CNN)。那么问题来了---现在的CNN的结构是否真的完全模拟出卷积神经网络?这就是我们对CNN产生的疑惑;基于以下几点,均是从问题的本质上提出的:

1、 通常情况下,大脑的认知不是一个神经元关注一个特征,而是一组神经元关注一个特征,一个和一组的区别在于,一个只能输出一个数值,而一组可以输出一个向量一组神经元输出的信息量远远大于一个神经元,不是简单的加法。从仿生模拟的角度来说,使用向量作为输出结果,更为贴切。

2、 在CNN中,不同位置上相同的实体激活同一个神经元,相同位置上不同的实体激活不同的神经元,但是人脑工作似乎不是这样,相同位置差别不大的实体激活同一组神经元,不同位置上即使相同的实体也会激活不同的神经组。人的大脑识别具有位置和实体的通识性和变识性。

3、在生物学中, 人的大脑对于相近实体的反复刺激后,会建立特殊的联结以加快和改善对于该实体的识别,而CNN没有这个功能。

因此Hinton建议用神经元组来替代神经元,发展一套新的深度学习策略。

CapsNet

根据Hinton的论文,我们可以得知:新的神经网络每一层有若干节点,每一个节点表示一个神经元向量(NC),底层的神经元向量通过边连接到高一层的NC,连接权值在学习过程中会变化,由此引起节点连接程度的变化,因此叫做动态路由(dynamic routing)。




模型的实现



1. 第一层卷积 ,具体方法忽略;最后一句是验证卷积后的维度 



重点关注primary_caps()的实现


primary_caps()的实现方法: 可以看出,依旧是




参考文献

知乎:如何看待Hinton的论文《Dynamic Routing Between Capsules》?

A Keras implementation of CapsNet in the paper:

Sara Sabour, Nicholas Frosst, Geoffrey E Hinton. Dynamic Routing Between Capsules. NIPS 2017

This code is adopted from CapsNet-Keras to test the performance of CapsNet on Fashion-MNIST

https://github.com/XifengGuo/CapsNet-Fashion-MNIST 

https://github.com/JunYeopLee/capsule-networks/blob/master/capsNet

推荐阅读更多精彩内容

  • 文章主要分为:一、深度学习概念;二、国内外研究现状;三、深度学习模型结构;四、深度学习训练算法;五、深度学习的优点...
    艾剪疏阅读 19,167评论 0 57
  • 不知不觉现在已经一点多了,早就记不清楚自己到底多少次说要早睡早起了。每天早上手机铃声响起的时候大脑一团浆糊,唯一的...
    土豆是只小浣熊阅读 62评论 0 0
  • 生态学·植物 | 森林里的植物是怎么争夺阳光的? 徐来 2017-11-17 世界好大,奇妙的事情每天都有,我们一...
    陌上嫣然_37d8阅读 1,248评论 0 0
  • ▎大众用户 地铁上、公车上、大马路上,随处可见戴着耳塞搭配手机或者MP3听音乐的人,严格意义来讲这部分人群算不上H...
    弥渡阅读 712评论 0 3
  • 下午跟老爸砍了一个多小时的竹子,感觉好久没有在民宅路边好好地感受一下农村的美了。蹲在路旁,感受着竹子断口发出...
    春田花花_阅读 233评论 1 2