Capsule Networks

传统CNN:
工作原理:将每一层对应的特征累积起来,从寻找边缘开始,然后是形状、再识别实际的对象。
(1)然而,在这个过程中,所有这些特征的空间关系信息丢失了。
(2)对图片的角度要求有点苛刻,它能容忍照片稍微旋转一些,但要是旋转太多,它就不认得了。(旋转的程度超出了最大池化(maxpooling)所带来的旋转不变性(invariance)的限度)因此需要数据增强。
(3)CNN还很容易受到白盒对抗性攻击(adversarial attacks)的影响,也就是说在图片上悄悄藏一些其他图案,就能让CNN把原物品误认作别的东西。

Capsule Networks
代码:https://github.com/naturomics/CapsNet-Tensorflow
知乎:https://www.zhihu.com/question/67287444/answer/251460831
Capsule Networks_第1张图片
点点:
(1)capsule相当于一个向量版的神经元。
(2)模型有三层。第一层是一个常规的卷积层,作用是进行局部特征检测。若常规卷积的输出为6*6*32即6*6*1*32,那么第二层(PrimaryCaps)的输出为6*6*8*32(primaryCaps层可以理解为多个常规卷积层的叠堆,换句话,就是把8个conv2d封装在一起,然后形成一种新的neural unit,hinton称之为capsule,在这层这种neural unit可以输出8x1的vector)。第三层(DigitCaps)在第二层的输出之上就开始使用了 routing 算法。这一层可以看作一个全连接层。
(3)每个neural unit的参数更新不仅应该受到global的loss fun影响,还应该受到这个capsule的周边capsule影响。

你可能感兴趣的:(随便看看)