Capsule network 胶囊网络模型优化

Capsule Network

自从Hinton团队的capsule network 文章出来后,蛮多研究都围绕这个模型进行,小编也加入了大军。第一版胶囊网络,官方开源也已经公布到github上了。

第二版胶囊网络,代码:非官方实现

第三版胶囊网络
关于胶囊网络:其实质还是卷积网络,只是这里采用了封装操作,将对一块区域的卷积后的特征进行封装,这一组特征都是原图像的同一区域的特征组合。当然同一位置可以得到多个胶囊。现在我们来分析一下单个胶囊:单个胶囊其实就是一组卷积操作后的响应向量。向量的每一维,都对原区域的一个响应值。所以这个向量的长度。自然就能反映这个胶囊对这块区域的响应度啦。这里其实有点attention的思想,也和目标检测的预测向量不谋而合,Hinton提出的矩阵胶囊更是将胶囊加上了坐标信息。
当同一区域可以产生多个胶囊(姿势不同),不同区域也可产生多个胶囊(代表不同的实体)。最后去判断这些实体属于哪一个分类。Hinton引进了聚类算法来实现。然这些胶囊去投票决定属于哪一类。关于这里的数学原理:揭开迷雾,来一顿美味的capsule盛宴这篇博客分析的很到位。(这位博主对Matrix capsule 聚类原理分析的也很到位)。
---------------------------------胶囊网络的一些改进方向-------------------------------
关于胶囊网络的改进:
1.针对路由部分的改造:AN OPTIMIZATION VIEW ON DYNAMIC ROUTING BETWEEN CAPSULES
2.另一部分则是对卷积特征提取器进行改造的。因为原论文是采用大卷积进行采样的。所以有人借鉴Google 的 inception 模块对其进行多尺度卷积改造。也有用 densenet 对特征提取层进行改造的。这些改造也都提升了性能。
-------------------------------小编的改进方案-----------------------------------------------
小编也基于一些观察事实对原胶囊网络进行改造:
1.对特征提取卷积网络进行改造,将densenet(收敛很快,但是也存在特征冗余还可以再优化)和FPN(特征金字塔) 多尺度提取特征结合。
2.采用多尺度编码胶囊,高 中 低 三层特征封装到不同维度的胶囊。直观的解释就是,底层的认知更丰富饱满(大维度胶囊),高层的特征更简单而深刻(小维度胶囊)。
3.小编对复数卷积也做研究。复值卷积的话也有一些优势,直观上来看它由实部虚部组成能够表达的信息更加丰富,当用不到复数的时候也可以退化到实数(虚部为0即可),而且实部和虚部之间极角也是可以携带特征信息的,从一些研究来看在实值图像分类任务中也可以取的不错的效果。构建复值胶囊网络之后。我发现可以利用实部虚部在路由阶段共享路由参数的特性对模型进行轻量化,而且从消融实验来看,复值胶囊网络效果也相对不错。改造的具体细节可以查看论文Cv-CapsNet:。

欢迎大家一起交流学习!

你可能感兴趣的:(深度学习)