Capsule network 模型优化攻略

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_40279184/article/details/99687490

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:
------------------------------------ 小编的新突破---------------------------------------------
对胶囊网络进行上述改造之后。我有了一些新的想法。之前对胶囊进行多尺度编码。认为低级胶囊编码应该大维度胶囊,而高级特征编码到小维度胶囊(虽然实验表明这种编码更具有鲁棒性,其实他的参数量也大,与低级特征编码到小维度胶囊相比)。而且实验结果和我们使用的数据集有关。所以我想避免这种人工设定胶囊维度的操作。于是我借助SEnet的思想。对三个分支进行学习一个权重系数。在进行三分之特征融合的时候我对每个分支进行加权拼接。这样我避免了人工设定胶囊维度。于是并有了Adaptive diverse capsule network,在特征提取网络我使用了MobilenetV3的bottleneck 模块进行改造。实验结果提升了1个多点。目前代码和消融对比实验已经开源到我github上Adaptive diverse capsule network
欢迎大家一起交流学习!

猜你喜欢

转载自blog.csdn.net/weixin_40279184/article/details/99687490