Group Equivariant Capsule Networks
仿照了这个博主的方法,读每一篇文献的时候都要问自己
一、四个问题
1、要解决什么问题?
对胶囊网络进行扩展,为胶囊网络引入“不变性、等变性”的属性。
2、用了什么方法解决?
提出一个通用的动态路由协议算法。
3、效果如何?
显著提高了CNN对旋转不变分类的能力;
参数较少;
大多数情况下姿势是等变的。
4、还存在什么问题?
需要选择一组适当的M 和 δ;
在更复杂的数据集上效果不好;
二、论文概述
2.1简介
等变性:
- 当改变一个因素来转换输入样例时,我们希望“表示”等变,而在其他方面“不变”。
CNN:
- 卷积神经网络仅实现了“平移”下的等变性。
- 卷积神经网络在不同的空间位置共享权值,减少了参数。
- 前人利用其他潜在转换和对称性实现了等变的卷积神经网络(如Group Equivariant Convalutional Networks),还实现了等变的深度神经网络。
我们旨在获得具有以上属性的胶囊网络版本。
2.2动机和贡献
动机:
- 为保证解纠缠表示和视点不变性,一般的胶囊网络不具备等变性。
- 当前胶囊架构不具备等变性的具体原因:
- 平均投票发生在向量空间,而姿态的潜在空间是一个流形,向量空间表示的平均投票不产生流形上的等变平均估计。
- 胶囊层使用定义在空间向量场域的局部接收场的可训练的转换核,其中接收场坐标对于姿态是不可知的。
(流形就是一块弯曲的N维空间的橡皮擦,橡皮擦的每一颗原子的位置可以用N个实数描述,这些实数叫做这原子的座标。)
贡献:
前提:提出群等变胶囊层,其姿态向量都是群(G,◦)内的元素。
- 提出新的动态路由协议算法(保证不变性和等变性)。
- 解决了胶囊网络中局部感受野的聚集问题。
- 将胶囊网络和群卷积结合起来,继承两者的等变性、不变性、解纠缠表示。
- 将以上架构应用于MNIST数据集,进行证明和验证。
三、群等变胶囊
群胶囊层的定义:
- 以上胶囊层具有m个输出胶囊;
- Lp计算输出姿态向量;
- La计算输出激活。
为实现群律下的全局不变性和局部等变性,为单个群胶囊层定义以下性质:
- 计算输出姿态向量的左等变性
- 计算输出激活的不变性
根据等变性的传递性,可知在多层胶囊层的组合操作中,这些性质仍旧会保留下来。输出的激活不变,输出的姿势向量根据相同的变换而变化。
(目前的关键问题:如何完成以上两个性质的实现。)
3.1群胶囊层
群:
群胶囊层的迭代路由:
M(Gn× Rn→ G):通用的加权平均运算; δ:距离度量
M 和 δ 的性质:
- M须满足封闭性。(参考群的封闭性)
- M须满足群律下的左等变性:
- 输入排列的不变性。(个人见解,指的是Gn× Rn→ G中Gn和Rn的一一对应)
- 选择合适的δ,使变换g∈G保持δ-距离
在等变性可传递的基础上,满足以上性质的M和δ即可保证Lp和La的左等变性和不变性。
有用的群:
群的选择
- M 和 δ 需要根据选择的群和元素表示来选择。(因此选择一个恰当的群尤为重要)
- 选择二维旋转群SO(2)来实现该框架上的应用
- G的元素表示为二维单位向量
-
M表示重正化,欧几里得,加权平均值
-
δ表示负标量积
(这SO(2)链接挂在这我也看不懂...能帮忙理解的希望私戳我一下)
进一步的高维群包括三维旋转群SO(3)以及一般可逆矩阵群GL(n,R)。
群的基本属性
-
使用组的直接乘积允许我们将我们的框架应用于组的组合
- 给定两个组(G,◦G)和(H,◦H),
- 可以构造直乘积组(G,◦G)×(H,◦H) = (G×H,◦),
-
也可构造
3.2群胶囊的空间聚集(用于SO(2))
目前的胶囊网络进行空间聚合不会产生等变的姿态:
- 胶囊网络的输入发生改变时,深层的姿势向量会发生变化;
- 姿势向量在Rn中的位置也可能基于转换而变化,但可训练的转换定义为局部接收野的固定位置;
- 姿势向量和可训练的变换依赖输入变换计算选票,因而没有保持等变性。
在局部接收野的胶囊层中计算选票的公式为:
- Xi为接收场位置
- P(Xi)为位置Xi的输入姿势
- t(Xi)为位置Xi的可训练变换
- g为输入变换
(此公式为下图b中的情况,很明显是不匹配的,因此需要做改进)
解决方案:
在使用t(i)作为可训练的变换生成器作为输入之前,基于姿态对常量位置Xi进行对齐。
(类似于用于不规则域稀疏数据聚合)
- 计算当前接收场的平均姿态向量:
- 变换后的输入和未变换的输入有着关于g的区别:
- 由于M的等变性和不变性,意味着意味着对输入的旋转直接转换未更深层的姿势向量。
- 使用来计算恒定输入位置Xi处的选票。
- vi得到更新:
tip:
- 对所有的输入转换都是常数,因而不会导致进一步的问题。
- 使用双层MLP(多层感知器)来计算t(·),训练时收敛速度更快(相较于直接优化)。
- 由于交换性不是必须的,因此也适用于非交换群(如SO(3))。
四、群胶囊和群卷积
我们可建立稀疏群卷积网络,将群等变胶囊网络和群等变卷积相结合。
(这块在论文里的实现介绍的比较简洁,看懂了的也麻烦戳我一下)
- 从胶囊网络部分继承激活的不变性。
- 使用任意群元素的固定组合来评估卷积,而不是常规的组离散化。
- 提高了群卷积的理论效率。
- 提高了胶囊网络的定性性能。
- 能够提供解纠缠的信息。
群卷积:
群等变卷积网络可以实现等变的属性,但与胶囊网络相比,它不直接计算解纠缠表示,因此我们将其与胶囊网络结合。
稀疏群卷积:
- 我们将群胶囊网络解释为群等变网络的稀疏树表示。
- 群卷积层在群G上的输出特征图是定义于每一个g∈G的元素的。
- 群胶囊层的输出是元组(g,a)的集合。(群元素g:姿势向量,激活:a)可被解释为群卷积层输出的稀疏索引/值表示。
- l层通过一致路由计算得到g,作为l+1层在g位置的相关特征图内容假设。
好处:
- 稀疏的评估群卷积的特征图输出。
- 使用胶囊的协议值(激活)来减弱或放大特征图内容。
- 将姿态协方差纳入考虑。(Figure 3a)
- 继承了胶囊激活的不变性(每个胶囊与一个对特征映射进行正规格化卷积的算子配对):
step further:
- 给定群上的群卷积层;
- 使用胶囊输出姿势作为一个群的索引,可密集的计算其他群的卷积;(这里我感觉不是很好理解,原文是:)
we can use the capsule output poses as an index for one group and densely evaluate the convolution for the other.
- 实现高维度上的等变性和胶囊维度上的不变性;(继承群等变卷积的等变性)
tip:
- 卷积的计算可以通过使用胶囊的姿势向量对局部输入进行逆变换来实现。(如Figure 3b)
- 也可通过网格翘曲、基于空间图的卷积算子或在组合特征图内容之前,通过对其与路由权值加权来动态聚合特征地图内容。