胶囊网络(Capsule Networks)

如何理解胶囊网络

        胶囊网络(Capsule Networks)是深度学习三巨头之一的Geoffrey Hinton提出的一种全新的神经网络。胶囊网络基于一种新的结构——胶囊(Capsule),通过与现有的卷积神经网络(CNN)相结合,从而在一些图像分类的数据上取得了非常优越的性能。

        何谓胶囊?简单来说,胶囊就是将原有大家熟知的神经网络中的个体神经元替换成了一组神经元组成的向量,这些神经元被包裹在一起,组成了一个胶囊。因此,胶囊网络中的每层神经网络都包含了多个胶囊基本单元,这些胶囊与上层网络中的胶囊进行交互传递。

如上图所示,CNN在判别人脸问题时,往往会忽略五官的相对位置,虽然它能够很好地判别五官,但特征之间的联系等信息,CNNs是丢失的。

举个例子,如图2中有一个胶囊对应数字6,其输出对应数字6的16维向量表示,若我们微调某一个分量的值,在重构数字6(重构,是指通过向量恢复出原来的数字)的时候,就可能对应数字6粗细、大小的改变等,同时数字6出现在图中的概率就用向量的大小去衡量。

在一个胶囊内,一般会进行如下的标量操作:

1、输入向量与权重矩阵的矩阵乘法。这编码了图像中低级特征和高级特征之间非常重要的空间关系。

2、加权输入向量。这些权重决定当前胶囊将其输出发送到哪个更高级的胶囊。这是通过动态路由(dynamic routing)的过程完成的。

3、对加权后的向量求和,这与一般的cnn没什么差别。

4、非线性化使用squash函数。该函数将向量进行压缩使得它的最大长度为1,最小长度为0,同时保持其方向不变。

胶囊之间则由动态路由联系,在路由(routing)过程中,下层胶囊将输入向量传送到上层胶囊。对于可以路由到的每个更高层的胶囊,下层胶囊通过将自己的输出乘上权重矩阵来计算预测向量。如果预测向量与上层胶囊的输出具有较大的标量积,则存在自顶向下的反馈,具有增加上层胶囊耦合系数,减小其他胶囊耦合系数的效果。如下图示例

 一种新的权重更新方法:动态路由

以下为本人动态路由算法的推导过程

 瓶颈

跟传统的CNN相比,当前的胶囊网络在实验效果上取得了更好的结果,但是训练过程却慢了很多。并且,虽然CapsNet在简单的数据集MNIST上表现出了很好的性能,但是在更复杂的数据集如ImageNet、CIFAR-10上,却没有这种表现。这是因为在图像中发现的信息过多会使胶囊脱落。

总体来看,胶囊网络仍然处于研究和开发阶段,并且不够可靠,现在还没有很成熟的任务。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部