在论文“Matrix Capsules with EM Routing”中是否正确使用了“pose”这个词?

人工智能 神经网络 深度学习 计算机视觉 术语 胶囊神经网络
2021-10-20 06:05:37

在传统的计算机视觉和计算机图形学中,位姿矩阵是4×4形式的矩阵

[r11r12r121r21r22r222r31r32r3230001]

并且是将观点从一个框架更改为另一个框架的转换。

Matrix Capsules with EM Routing论文中,他们说对象的各种子对象的“姿势”由每个胶囊下层编码。但是从论文中描述的过程中,我了解到他们所说的姿势矩阵不符合姿势矩阵的定义。保持上面显示的姿势矩阵的形式没有任何限制。

  1. 那么,用“pose”这个词来形容4×4每个胶囊的矩阵?

  2. 此外,既然声称胶囊学习了对象的子对象的姿势矩阵,是否意味着它们学习了子对象的视点变换,因为姿势矩阵实际上是一个变换?

2个回答

很好的问题,我认为我们本可以在论文中更好地回答这个问题。

本质上,每个胶囊的位姿矩阵都是这样设置的,以便它可以学习表示对象和观察者之间的仿射变换,但我们并不限制它必须这样做。所以我们谈论胶囊的输出,就好像它是一个仿射变换矩阵,但我们不能确保它会是。我们明确地做一些事情,使它更像这样一个矩阵——比如将坐标添加到右列——但我们不能确定。这在某种程度上体现了胶囊网络理论的很大一部分——我们设置了脚手架,以便网络可以学习等价于我们认为它应该不变的变换,但我们不能确保它是不变的。

我试图通过给它这个标签来让它学习仿射变换,它工作得很好。胶囊网络给我留下了深刻的印象和兴奋,不知道为什么以前没有人想到这一点,因为它是如此明显和简单。尖峰神经元还告诉我们,神经元之间的信息不能只是一维的。它应该由某种向量表示。

更新:

在上面的评论中,我声称当我让胶囊网络通过将其作为标签来学习仿射变换时,它工作得“很好”。这不是真的.. 它不起作用!- 对不起,我来得太快了。

我认为原因是仿射 4x4 矩阵表示是多余的。同样不可能在这样的变换之间进行合理的线性插值,这会影响梯度(它不会指向最小值的方向)。

我成功做的是让胶囊网络学习一个四元数(旋转)和一个 3d 向量(位置)——总共 7 个参数。当固定 2 个参数时,这些可以包含在 3x3 矩阵中。但是训练速度很慢,并且网络无法在这个 3x3 设置中编码倾斜等。

使用胶囊网络(矩阵胶囊)对图像进行仿射变换,也可以通过使网络通过解码器部分学习其自己的 4x4 姿势表示来实现。然后可以训练一个小型网络将这些姿势转换为 7d 向量(四元数和 3d 向量),显然可以从中计算仿射 4x4 变换。这我也成功了。看起来姿势中编码的旋转具有更像四元数的性质,这是有道理的。