一、整体结构
胶囊网络原论文《Dynamic Routing Between Capsules》中给出如下的网络结构:输入层、卷积层、主胶囊层、数字胶囊层。
图中输入为28×28的MNIST手写数字,经过256个9×9步长为1的卷积核得到20×20×256的特征图,该层就是普通的卷积神经网络,下一层采用8组9×9×32的卷积核卷积8次,会得到8组6×6×32的特征图,然后将每一个特征图展成一维,对应位置组合,一共得到1152个8维的向量神经元,也就是胶囊。最后通过动态路由算法得到数字胶囊层,数字胶囊层向量的模长大小就是预测结果。
二、主胶囊层详解
下图即为主胶囊层的计算过程,上一层得到的是20×20×256的特征图,接下来用8组9×9×32的卷积核进行步长为2的卷积操作,得到如下图所示的8组6×6×32的特征图,这里与普通卷积神经网络有了区别。然后将8组特征图都展成一维,然后对应位置合并,即可得到1152个胶囊。
三、动态路由算法
下图展示了动态路由算法的整个过程。