标签:pattern 计算 array 简单 描述 四元数 处理 ons 运算
出自文献:Xiang S, Li H. Revisiting the Continuity of Rotation Representations in Neural Networks[J]. arXiv preprint arXiv:2006.06234, 2020.
考虑如下的 toy problem:已知旋转矩阵表示的 3D 旋转,我们希望用神经网络将它转换为其他旋转表示。
可以证明,对于任何的神经网络,要把旋转矩阵转换为四元数或者欧拉角,总会存在一些输入,使得网络产生高误差的结果。
以前的学者提出简介:对于任何将 3D 旋转矩阵转换为四元数的函数,都会展现出某些“不连续性”,这是因为 $\mathrm{SO}(3)$ 没有嵌入到 $\mathbb{R}^{4}$ 中。
由于神经网络通常是一个连续函数,因此不能拟合出旋转矩阵到四元数的不连续函数。
然而,我们认为该论点没有很好地解释该问题。它依赖于特定的转换规则,并且没有给出误差边界。
借我我们开始引入第一个定理。
令 $\mathbf{R}_{Q}: S^{3} \rightarrow \mathrm{SO}(3)$ 是从四元数到对应旋转的标准转换,即:
\begin{equation}
\mathbf{R}_{Q}(w, x, y, z)=\left[\begin{array}{ccc}
1-2 y^{2}-2 z^{2} & 2(x y-z w) & 2(x z+y w) \\
2(x y+z w) & 1-2 x^{2}-2 z^{2} & 2(y z-x w) \\
2(x z-y w) & 2(y z+x w) & 1-2 x^{2}-2 y^{2}
\end{array}\right]
\end{equation}
并且令 $d\left(R_{1}, R_{2}\right)$ 定义为两个旋转 $R_{1}$ 和 $R_{2}$ 的距离,单位是角度。对于两个四元数的距离,同样用这个 $d$ 来表示:$d(\mathbf{p}, \mathbf{q})=2 \cos ^{-1}|\mathbf{p} \cdot \mathbf{q}|$。
定理 1.对于任意连续函数 $f: \mathrm{SO}(3) \rightarrow S^{3}$,总是存在一个旋转 $R \in \mathrm{SO}(3)$,使得 $d(R, f(R))=\pi$。
推论 2. 对于任意连续函数 $\mathrm{SO}(3) \rightarrow \mathbb{R}^{3}$,总是存在一个旋转 $R \in \mathrm{SO}(3)$,使得 $d\left(R, \mathbf{R}_{x y z}(f(R))\right)=\pi$。
定义 3. 对于任意连续函数 $f: \mathrm{SO}(2) \rightarrow \mathbb{R}$,总是存在一个旋转 $R \in \mathrm{SO}(2)$,满足旋转角 $f(R)$ 与 $R$ 的旋转角相差 $\pi$。
神经网络通常是连续、可导的,这样可以用梯度下降进行训练。然而,在测试阶段,我们其实也经常使用不连续的运算,例如根据概率分布得到类别标签。不幸的是,对于有连续输出空间的回归问题就行不通了,但是,我们可以使用一个简单的 ensemble trick,来把回归的不连续性变换为分类的不连续性。
考虑从 2D 旋转矩阵计算出旋转角度的问题。 给定 $M=\left[\begin{array}{ll}a & -\bar{b} \\ b & a\end{array}\right]$,其中 $a^{2}+b^{2}=1$,我们希望得到的实际上就是 $\operatorname{atan} 2(b, a)$。对于这个多值函数,实际上有不同的方式来取值,例如 $[0,2 \pi)$ 或 $(-\pi, \pi]$。为了区别,我们称第一种为 $\operatorname{atan} 2$,第二种为 $\operatorname{atan} 2_{\triangleleft}$。它们分别在 $2 k \pi$ 和 $(2 k+1) \pi(k \in \mathbb{Z})$ 上有不连续性。
现在我们构建了两个连续函数,除了接近不连续的地方,我们分别计算 $\operatorname{atan} 2$ 和 $\operatorname{atan} 2_{\triangleleft}$。在不连续的地方,会得到错误的结果。但是如果我们知道这两个函数错误的区域没有交叉,那么对于任意给定矩阵,至少两个函数的其中之一,可以给出正确的旋转角度。
定理 4. 总是存在连续函数 $f_{1}, f_{2}: \mathrm{SO}(2) \rightarrow \mathbb{R}$,满足对于任意旋转 $R \in \mathrm{SO}(2)$,$f_{1}(R)$ 和 $f_{2}(R)$ 中至少有一个函数可以给出 $R$ 正确的旋转角度。
例如:
\begin{equation}
\begin{array}{l}
f_{1}\left(\left[\begin{array}{cc}
a & -b \\
b & a
\end{array}\right]\right)=\left\{\begin{array}{ll}
2 \pi-2 \cdot \operatorname{atan} 2_{\triangleright}(b, a) & \left(a<-\frac{1}{2}\right) \\
\operatorname{atan} 2_{\triangleleft}(b, a) & \left(a \geq-\frac{1}{2}\right)
\end{array}\right. \\
f_{2}\left(\left[\begin{array}{cc}
a & -b \\
b & a
\end{array}\right]\right)=\left\{\begin{array}{ll}
\operatorname{atan} 2_{\triangleright}(b, a) & \left(a \leq \frac{1}{2}\right) \\
\pi-2 \cdot \operatorname{atan} 2_{\triangleleft}(b, a) & \left(a>\frac{1}{2}\right)
\end{array}\right.
\end{array}
\end{equation}
由于该函数是连续的,因此可以用神经网络来近似。然后,我们可以添加一个分类器,来预测对于任意输入,哪个函数可以给出正确的输出。在训练的时候,这些函数和分类器一起联合训练:所有 ensemble 的误差是每个函数的误差的加权和,权重是分类器给出的概率。现在,不连续性只发生在测试阶段了,这个时候我们选择最高概率的函数来给出输出。我们称这种方法为 self-selecting ensemble。
那么有没有类似的方法,可以搞定 3D 旋转矩阵到四元数的转换呢?看起来两个、甚至三个函数都不够:
定理 5. 对于任意三个连续函数:$f_{1}, f_{2}, f_{3}: \mathrm{SO}(3) \rightarrow S^{3}$,总是存在一个旋转 $R \in \mathrm{SO}(3)$,满足对于所有 $i \in\{1,2,3\}$,$d\left(R, f_{i}(R)\right)=\pi$。
不过,如果有四个函数,我们就可以有一个成功的 ensemble:
定理 6. 总是存在连续函数 $f_{1}, f_{2}, f_{3}, f_{4}: \mathrm{SO}(3) \rightarrow S^{3}$,满足对于任意旋转 $R \in \mathrm{SO}(3)$,对某一个 $i \in\{1,2,3,4\}$,都有 $\mathbf{R}_{Q}\left(f_{i}(R)\right)=R$。
那么对于欧拉角是否也是如此呢?类似推论 2,我们可以下结论,3 个函数的 emsemble 是不够的。我们还要考虑万向锁问题。我们首先证明了,当域中包含一个万向锁位置时,不纯在正确的从旋转矩阵到欧拉角的连续转换。
定理 7. 令 $U$ 是 $\mathrm{SO}(3)$ 中的 $\mathbf{R}_{x y z}\left(0, \frac{\pi}{2}, 0\right)$ 的任意邻域。不存在连续函数 $f: U \rightarrow \mathbb{R}^{3}$,满足对任意 $R \in U$,$\mathbf{R}_{x y z}(f(R))=R$。
定理 8. 总是存在连续函数 $f_{1}, f_{2}, f_{3}, f_{4}: \mathrm{SO}(3) \rightarrow \mathbb{R}^{3}$,满足对于任意旋转 $R \in \mathrm{SO}(3)$,至少其中之一等于 $R$: $\mathbf{R}_{x y z}\left(f_{1}(R)\right)$,$\mathbf{R}_{x y z}\left(f_{2}(R)\right)$, $\mathbf{R}_{x y z}\left(f_{3}(R)\right)$,$\mathbf{R}_{x y z}\left(f_{4}(R)\right)$。
在 3.1 节我们用实验证明,神经网络可以成功用 4 个 emsemble 学习四元数表示和欧拉角表示,在整个 $\mathrm{SO}(3)$ 空间都有很小的误差。
以上讨论注重理论方面的,但是如果四元数和欧拉角表示可以用连续表示(如文献 1 提出的 5D embedding 表示)来替换,那么这个问题其实迎刃而解。但是,我们证明,由于输入和神经网络的对称性(symmetry)的影响,这样的 embedding 也会失效。
在文献 1 中,我们考虑这样的问题:估计目标点云相对于参考点云的旋转。由于同时给出目标和参考的点云,这个输入空间是非常复杂的,因此在理论分析中,我们重点关注一个很简单的情况:参考点云固定不变,因此只需给网络一个目标点云,该点云对固定的参考点云进行了一个旋转。
乍眼一看,这个问题的拓扑结构,和将 3D 旋转矩阵转换为其他表示的问题完全一样,因为输入空间和 $\mathrm{SO}(3)$ 存在同胚。但是,神经网络看到的却完全不一样。在点云中,并没有假设不同点之间的关系,对于神经网络来说,最好能够对输入有置换不变性。很多知名的点云处理神经网络架构(如 PointNet),都有这样的设计原则。
这个特性会导致难以预料的结果。如果输入点云本身具有非平凡的旋转对称性,那么对该点云的不同旋转,可能会得到相同的点集,只是顺序不同而已。由于神经网络不知道输入点的顺序,这些不同旋转生成的点云,对于神经网络来说完全是相同的输入。
令 $X \subset \mathbb{R}^{3}$ 是一个 3D 点云,而 $R \in \mathrm{SO}(3)$ 是一个旋转。令 $R X=\{R x \mid x \in X\}$。那么关于 $X$ 的对称群(symmetry group),$\operatorname{Sym}(X)$,定义为 $\operatorname{Sym}(X)=\{R \in \operatorname{SO}(3) \mid R X=X\}$。令 $X$ 是参考点云。那么如果有两个旋转 $R_{1}, R_{2} \in \mathrm{SO}(3)$ 生成相同的目标点云,那么 $R_{1} X=R_{2} X$,于是 $X=R_{1}^{-1} R_{2} X$,即 $R_{1}^{-1} R_{2} \in \operatorname{Sym}(X)$,也就是说,$R_{1}$ 和 $R_{2}$ 属于 $\operatorname{Sym}(X)$ 在 $\mathrm{SO}(3)$ 中的相同的左陪集(left coset)。反之亦然。
因此对于神经网络,两个输入是等价的,当且仅当生成它们的旋转属于 $\operatorname{Sym}(X)$ 的相同的左陪集。$\operatorname{Sym}(X)$ 在 $\mathrm{SO}(3)$ 中的的左陪集,构成了齐性空间(homogeneous space),定义为 $\mathrm{SO}(3) / \operatorname{Sym}(X)$。当 $X$ 有限,除非 $X$ 中所有点都在同一直线上,那么有 $\operatorname{Sym}(X)$ 必然也是有限的。如果 $G$ 是 $\mathrm{SO}(3)$ 的有限子群,那么 $\mathrm{SO}(3)$ 就是 $\mathrm{SO}(3) / G$ 的覆盖空间,其中覆盖映射为:$p_{G}: \mathrm{SO}(3) \rightarrow \mathrm{SO}(3) / G, R \mapsto R G$。
我们可以证明,当 $\operatorname{Sym}(X)$ 是非平凡的,输入点置换不变的网络,不能总得到正确的旋转矩阵。这里的正确是指,网络给出的矩阵,不必与产生输入点云的矩阵完全相同,但是必须能够生成顺序不同但是点集相同的点云。$p_{G}^{-1}[\mathcal{R}]$ 定义为 $\mathcal{R}$ 在 $p_{G}$ 下的原像。
定理 9. 令 $G$ 是 $\mathrm{SO}(3)$ 中的非平凡有限子群,那么存在连续函数 $f: \mathrm{SO}(3) / G \rightarrow \mathrm{SO}(3)$,使得对于所有 $\mathcal{R} \in \mathrm{SO}(3) / G$,有 $p_{G}(f(\mathcal{R}))=\mathcal{R}$。
推论 10. 令 $G$ 是 $\mathrm{SO}(3)$ 的非平凡子群,并且 $g: \mathrm{SO}(3) \rightarrow \mathbb{R}^{n}$ 是一个嵌入,那么不存在连续函数 $f: \operatorname{SO}(3) / G \rightarrow g[\mathrm{SO}(3)]$,满足对于所有 $\mathcal{R} \in \mathrm{SO}(3) / G$,有 $p_{G}\left(g^{-1}(f(\mathcal{R}))\right)=\mathcal{R}$。
命题 11. 令 $G$ 是 $\mathrm{SO}(3)$ 的非平凡子群,那么存在连续函数 $f_{1}, f_{2}, f_{3}, f_{4}: \mathrm{SO}(3) / G \rightarrow \mathrm{SO}(3)$,满足对于所有 $\mathcal{R} \in \mathrm{SO}(3) / G$,有 $p_{G}\left(f_{i}(\mathcal{R})\right)=\mathcal{R}$ 对某个 $i \in\{1,2,3,4\}$ 成立。
在 3.2 节,我们使用不同表示测试了点云旋转估计,一个是有平凡对称性的点云,另一个是有非平凡对称性的点云。我们证明了,对于非平凡的情况,ensemble 但对于 5D/6D/四元数都是必要的。
标签:pattern 计算 array 简单 描述 四元数 处理 ons 运算
原文地址:https://www.cnblogs.com/noluye/p/14681993.html