zoukankan      html  css  js  c++  java
  • 【论文精炼】 | Revisiting the Continuity of Rotation Representations in Neural Networks | 再次探讨神经网络中旋转表示的连续性 | 2020年

    出自文献:Xiang S, Li H. Revisiting the Continuity of Rotation Representations in Neural Networks[J]. arXiv preprint arXiv:2006.06234, 2020.

    摘要

    • 本文详细分析了欧拉角单位四元数在神经网络中旋转表示的病态性质
      • 具体说来,我们证明了,对于某些输入,这两种表示会产生完全错误的结果这种性质源于问题本身的拓扑属性,而非源于网络架构或者训练过程
      • 我们接着证明了,以前提出的 $mathrm{SO}(3)$ 到高维欧式空间的的嵌入(embeddings),由于输入中可能的对称性(possible symmetry),会导致输入空间的拓扑变化,要解决这个问题也不是普遍有效的
    • 我们提出一个 ensemble trick 作为可选的解决方案。

    1 介绍

    • 四元数和欧拉角
      • 在 CG 和 CV 领域,四元数和欧拉角通常用于表示 3D 旋转。
      • 但是,在应用于神经网络时,网络似乎很难避免旋转的估计误差
      • 有些解释是说这些表示都不是嵌入,并存在某种程度的不连续性,并在数据中存在对称性。
    • 旋转嵌入
      • 一种解决方法是使用 $mathrm{SO}(3)$ 到 $mathbb{R}^{5}$ 或 $mathbb{R}^{6}$ 上的嵌入。
      • 然而,我们认为这些结论主要是基于直觉和实验的经验性结果,而问题的本质是拓扑,目前还没有很深入的研究
    • 本文目标是给出该问题更精确的描述,从理论上证明高误差的存在,分析对称性的效果,以及提出该问题的解决方案。具体说来:
      • 我们证明了,把旋转矩阵转换为四元数和欧拉角的神经网络,对某些输入,必然产生 180° 的误差
      • 我们证明了,输入的对称性,也会导致嵌入生成高误差,并且计算了这种对称性的误差边界
      • 我们提出了 self-selected ensemble,对于很多不同的旋转表示都运行得很好即使存在输入对称性的情况也是如此

    2 理论结果

    2.1 发生高误差的必然性

    考虑如下的 toy problem:已知旋转矩阵表示的 3D 旋转,我们希望用神经网络将它转换为其他旋转表示。

    可以证明,对于任何的神经网络,要把旋转矩阵转换为四元数或者欧拉角,总会存在一些输入,使得网络产生高误差的结果

    以前的学者提出简介:对于任何将 3D 旋转矩阵转换为四元数的函数,都会展现出某些“不连续性”,这是因为 $mathrm{SO}(3)$ 没有嵌入到 $mathbb{R}^{4}$ 中。

    由于神经网络通常是一个连续函数,因此不能拟合出旋转矩阵到四元数的不连续函数。

    然而,我们认为该论点没有很好地解释该问题。它依赖于特定的转换规则,并且没有给出误差边界

    借我我们开始引入第一个定理。

    令 $mathbf{R}_{Q}: S^{3} ightarrow mathrm{SO}(3)$ 是从四元数到对应旋转的标准转换,即:

    egin{equation}
    mathbf{R}_{Q}(w, x, y, z)=left[egin{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} ight]
    end{equation}

    并且令 $dleft(R_{1}, R_{2} ight)$ 定义为两个旋转 $R_{1}$ 和 $R_{2}$ 的距离,单位是角度。对于两个四元数的距离,同样用这个 $d$ 来表示:$d(mathbf{p}, mathbf{q})=2 cos ^{-1}|mathbf{p} cdot mathbf{q}|$。

    定理 1.对于任意连续函数 $f: mathrm{SO}(3) ightarrow S^{3}$,总是存在一个旋转 $R in mathrm{SO}(3)$,使得 $d(R, f(R))=pi$。

    推论 2. 对于任意连续函数 $mathrm{SO}(3) ightarrow mathbb{R}^{3}$,总是存在一个旋转 $R in mathrm{SO}(3)$,使得 $dleft(R, mathbf{R}_{x y z}(f(R)) ight)=pi$。

    定义 3. 对于任意连续函数 $f: mathrm{SO}(2) ightarrow mathbb{R}$,总是存在一个旋转 $R in mathrm{SO}(2)$,满足旋转角 $f(R)$ 与 $R$ 的旋转角相差 $pi$。

    2.2 Self-selecting Ensemble

    神经网络通常是连续、可导的,这样可以用梯度下降进行训练。然而,在测试阶段,我们其实也经常使用不连续的运算,例如根据概率分布得到类别标签。不幸的是,对于有连续输出空间的回归问题就行不通了,但是,我们可以使用一个简单的 ensemble trick,来把回归的不连续性变换为分类的不连续性

    考虑从 2D 旋转矩阵计算出旋转角度的问题。 给定 $M=left[egin{array}{ll}a & -ar{b} \ b & aend{array} ight]$,其中 $a^{2}+b^{2}=1$,我们希望得到的实际上就是 $operatorname{atan} 2(b, a)$。对于这个多值函数,实际上有不同的方式来取值,例如 $[0,2 pi)$ 或 $(-pi, pi]$。为了区别,我们称第一种为 $operatorname{atan} 2$,第二种为 $operatorname{atan} 2_{ riangleleft}$。它们分别在 $2 k pi$ 和 $(2 k+1) pi(k in mathbb{Z})$ 上有不连续性。

    现在我们构建了两个连续函数,除了接近不连续的地方,我们分别计算 $operatorname{atan} 2$ 和 $operatorname{atan} 2_{ riangleleft}$。在不连续的地方,会得到错误的结果。但是如果我们知道这两个函数错误的区域没有交叉,那么对于任意给定矩阵,至少两个函数的其中之一,可以给出正确的旋转角度。

    定理 4. 总是存在连续函数 $f_{1}, f_{2}: mathrm{SO}(2) ightarrow mathbb{R}$,满足对于任意旋转 $R in mathrm{SO}(2)$,$f_{1}(R)$ 和 $f_{2}(R)$ 中至少有一个函数可以给出 $R$ 正确的旋转角度。

    例如:

    egin{equation}
    egin{array}{l}
    f_{1}left(left[egin{array}{cc}
    a & -b \
    b & a
    end{array} ight] ight)=left{egin{array}{ll}
    2 pi-2 cdot operatorname{atan} 2_{ riangleright}(b, a) & left(a<-frac{1}{2} ight) \
    operatorname{atan} 2_{ riangleleft}(b, a) & left(a geq-frac{1}{2} ight)
    end{array} ight. \
    f_{2}left(left[egin{array}{cc}
    a & -b \
    b & a
    end{array} ight] ight)=left{egin{array}{ll}
    operatorname{atan} 2_{ riangleright}(b, a) & left(a leq frac{1}{2} ight) \
    pi-2 cdot operatorname{atan} 2_{ riangleleft}(b, a) & left(a>frac{1}{2} ight)
    end{array} ight.
    end{array}
    end{equation}

    由于该函数是连续的,因此可以用神经网络来近似。然后,我们可以添加一个分类器,来预测对于任意输入,哪个函数可以给出正确的输出。在训练的时候,这些函数和分类器一起联合训练:所有 ensemble 的误差是每个函数的误差的加权和,权重是分类器给出的概率。现在,不连续性只发生在测试阶段了,这个时候我们选择最高概率的函数来给出输出。我们称这种方法为 self-selecting ensemble

    那么有没有类似的方法,可以搞定 3D 旋转矩阵到四元数的转换呢?看起来两个、甚至三个函数都不够:

    定理 5. 对于任意三个连续函数:$f_{1}, f_{2}, f_{3}: mathrm{SO}(3) ightarrow S^{3}$,总是存在一个旋转 $R in mathrm{SO}(3)$,满足对于所有 $i in{1,2,3}$,$dleft(R, f_{i}(R) ight)=pi$。

    不过,如果有四个函数,我们就可以有一个成功的 ensemble:

    定理 6. 总是存在连续函数 $f_{1}, f_{2}, f_{3}, f_{4}: mathrm{SO}(3) ightarrow S^{3}$,满足对于任意旋转 $R in mathrm{SO}(3)$,对某一个 $i in{1,2,3,4}$,都有 $mathbf{R}_{Q}left(f_{i}(R) ight)=R$。

    那么对于欧拉角是否也是如此呢?类似推论 2,我们可以下结论,3 个函数的 emsemble 是不够的。我们还要考虑万向锁问题。我们首先证明了,当域中包含一个万向锁位置时,不纯在正确的从旋转矩阵到欧拉角的连续转换。

    定理 7. 令 $U$ 是 $mathrm{SO}(3)$ 中的 $mathbf{R}_{x y z}left(0, frac{pi}{2}, 0 ight)$ 的任意邻域。不存在连续函数 $f: U ightarrow 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) ightarrow mathbb{R}^{3}$,满足对于任意旋转 $R in mathrm{SO}(3)$,至少其中之一等于 $R$: $mathbf{R}_{x y z}left(f_{1}(R) ight)$,$mathbf{R}_{x y z}left(f_{2}(R) ight)$, $mathbf{R}_{x y z}left(f_{3}(R) ight)$,$mathbf{R}_{x y z}left(f_{4}(R) ight)$。

    在 3.1 节我们用实验证明,神经网络可以成功用 4 个 emsemble 学习四元数表示和欧拉角表示,在整个 $mathrm{SO}(3)$ 空间都有很小的误差。

    2.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) ightarrow 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 ightarrow 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) ightarrow mathbb{R}^{n}$ 是一个嵌入,那么不存在连续函数 $f: operatorname{SO}(3) / G ightarrow g[mathrm{SO}(3)]$,满足对于所有 $mathcal{R} in mathrm{SO}(3) / G$,有 $p_{G}left(g^{-1}(f(mathcal{R})) ight)=mathcal{R}$。

    命题 11. 令 $G$ 是 $mathrm{SO}(3)$ 的非平凡子群,那么存在连续函数 $f_{1}, f_{2}, f_{3}, f_{4}: mathrm{SO}(3) / G ightarrow mathrm{SO}(3)$,满足对于所有  $mathcal{R} in mathrm{SO}(3) / G$,有 $p_{G}left(f_{i}(mathcal{R}) ight)=mathcal{R}$ 对某个 $i in{1,2,3,4}$ 成立。

    在 3.2 节,我们使用不同表示测试了点云旋转估计,一个是有平凡对称性的点云,另一个是有非平凡对称性的点云。我们证明了,对于非平凡的情况,ensemble 但对于 5D/6D/四元数都是必要的

    3 实验结果

    3.1 转换旋转矩阵

    3.2 点云的旋转估计

    4 结论

    • 本文,我们以拓扑学的角度,分析了 3D 旋转的四元数和欧拉角表示,在神经网络中的不连续问题,并且证明了发生 180° 的最大误差的必然性。
    • 我们进而探讨了输入对称性对于网络计算正确旋转表示的影响,并发现了输入的对称性会导致连续的旋转表示失效。
    • 我们提出了 self-selecting ensemble,来解决不连续问题,并证明了对于不同旋转表示都能成功,即使存在输入对称性的情况。
    • 我们通过两个简单示例问题,用实验验证了该理论。
    • 该理论分析和集成方法对真实世界的应用,包括旋转表示,都是未来的研究方向。此外,用 self-selecting ensemble 解决更广泛的回归问题,包括不同的输入和输出拓扑结构、有其他的不连续性,都会在未来进行研究。

    参考

    1. Zhou Y, Barnes C, Lu J, et al. On the continuity of rotation representations in neural networks[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2019: 5745-5753.
  • 相关阅读:
    MogileFS的实现和bug解决
    MogileFS介绍
    SAMBA
    NFS
    测试DNS服务的命令
    DNS中的AC、rndc、智能DNS解析和基础排错
    DNS的主从、子域授权和转发服务器
    DNS域名记录
    DNS
    JavaScript设计模式与开发实践随笔(二)
  • 原文地址:https://www.cnblogs.com/noluye/p/14681993.html
Copyright © 2011-2022 走看看