理解Hinton胶囊网络之精华浓缩版,第二部分: 胶囊网络是如何工作的?(Capsule Networks)

胶囊网络精华浓缩版第一部分中,我们就吐槽过Max pooling的一堆缺陷:

  • 虽然最大池化层可帮助辨别图像中元素的位置关系,但是有太多信息丢失(pooling操作“粗暴地”把局部相邻像素点集压缩成一个像素点)
  • 缺乏空间分层和空间推理能力,缺乏“举一反三”的能力
Max pooling图示

当我们深入看胶囊网络的工作方式,我们会感觉胶囊网络就是为改进Max Pooling而生的:

来自: https://arxiv.org/pdf/1710.09829.pdf

上图胶囊网络整体架构中,卷积层Conv1输出后,跟的不再是Max Pooling层, 而是主胶囊层(PrimaryCaps layer)数据胶囊层(DigitCaps layer)

这些胶囊层到底是如何工作的?我们先从胶囊层和一般的全连接层入手。

一般的全连接层是这样工作的:

来自:https://medium.com/ai%C2%B3-theory-practice-business/understanding-hintons-capsule-networks-part-ii-how-capsules-work-153b6ade9f66

对于上一层Max Pooling输出的所有标量(x1, x2, x3)与权重(w1,w2,w3)做卷积求和操作。最后,使用非线性激活函数 f(•)输出预测值hj

胶囊层是这样工作的:

来自:https://medium.com/ai%C2%B3-theory-practice-business/understanding-hintons-capsule-networks-part-ii-how-capsules-work-153b6ade9f66

对于上一层胶囊层输出的所有胶囊向量(u1,u2,u3),通过一系列转换矩阵(W1j,W2j,W3j),转换为更高层的胶囊向量(\hat{u1}\hat{u2}\hat{u3}),最后通过胶囊网络独有的动态路由算法(而不是后向传播)聚合成最后需要的胶囊向量(capsule j),再通过特殊的激活方法(squash)输出最后结果。

以人脸识别举例,

...阅读更多...加入David9的星球群阅读所有文章:

阅读全文

加入David9的星球群,获得通行密码

发布者

David 9

邮箱:yanchao727@gmail.com 微信: david9ml

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注