SO(3)上的黎曼梯度
原标题:\(\mathrm{SO(3)}\)上的黎曼梯度
在\(\mathrm{SO(3)}\)上定义了一个势能函数后,我们希望求其梯度。与多元微积分里的梯度相比,需要解决的新问题有:
- 方向导数的定义:因为存在\(\mathrm{SO(3)}\)流形约束,需要保证在\(X \in \mathrm{SO(3)}\)处加上方向向量微元\(Hdt\)后,\(X+Hdt\in \mathrm{SO(3)}\);在欧式空间中,方向向量微元仍属于原欧氏空间,然而由于流形的约束,\(H \in T_A \mathrm{SO(3)}\)在\(A\)处的切空间中,不再属于\(\mathrm{SO(3)}\)
- 为了沿用多元微积分中梯度的定义(梯度与单位方向向量的内积等于在该方向向量上的方向导数),需要在切空间中定义内积
- 定义好黎曼梯度后,如何求得黎曼梯度
00 概述
设约束流形为 \(\mathcal{M}\) ,当前点为 \(X\) ,实值函数 \(f: \mathcal{M} \rightarrow \mathbb{R}\) ,要求在\(X\)处的黎曼梯度 \(\mathrm{grad }f(X)\) ,首先计算欧式梯度 \(\nabla f(X)\) ,由于 \(X-\nabla f(X)\) 不一定仍在 \(\mathcal{M}\) 中,因此需要构造一个合适的映射:\(\mathbb{R}^n \rightarrow T_X \mathcal{M}\) 来将欧式梯度映射为黎曼梯度。
01 切向量与切空间
设 \(R(t)\) 为 \(\mathrm{SO(3)}\) 上的一条光滑曲线,设 \(R(t_0)=X\),则 \(H=\dot{R}(t_0)\) 即为 \(X\) 处的一个切向量。
因为 \(R(t)^{\top }R(t)=I\) ,对其求导得到
\[\dot{R}(t)^{\top }R(t) + R(t)^{\top }\dot{R}(t) =\mathbf0\]即在\(\mathrm{SO(3)}\)中,\(X\)处的切向量满足 \(H^\top X + X^\top H=0\),所有在\(X\)处的切向量构成在\(X\)处的切空间 \(T_X \mathrm{SO}(3)\),即
\[T_X \mathrm{SO}(3)=\{ H: H^\top X + X^\top H=0 \}\]设 \(\Omega = X^\top H\) ,则亦可表示为
\[T_X \mathrm{SO}(3)=\{ X\Omega: \Omega^\top + \Omega=0 \}\]\(\Omega\) 为反对称矩阵,也可以理解为单位元处的切向量,因此说 \(\mathfrak{so}(3)\) 是 \(\mathrm{SO}(3)\) 单位元(幺元)处的切空间
02 切空间上的内积
在欧氏空间中,(向量)内积定义为 \(\langle a,b \rangle =a^\top b \space \space ,\forall\space \space a,b\in\mathbb{R}^n\)
沿用到欧氏空间子流形 \(\mathrm{SO(3)}\) 上,切空间 \(T_X \mathrm{SO}(3)\) 上的内积定义为:
\[\langle A,B \rangle _X := \mathrm{tr}(A^\top B)\]内积定义的理解:
\[\mathrm{tr}(A^\top B) =\mathrm{tr}\left((X\Omega_A )^\top X\Omega_B\right)=\mathrm{tr}\left(\Omega_A^\top X^\top X \Omega_B\right)=\mathrm{tr}\left(\Omega_A^\top \Omega_B \right)=2a^\top b\]其中\([a]=A,[b]=B\)
因此,如此定义的切空间内积对应于\(\mathbb{R}^3\)中角速度向量的标准点积,只相差一个常数因子2
因此 \(\langle A,B \rangle _X := \mathrm{tr}(A^\top B)\) 在\(\mathrm{SO(3)}\)所有的切空间上定义了一个左不变黎曼度量
03 方向导数
对 \(f: \mathcal{M} \rightarrow \mathbb{R}\) ,可以在 \(T_X \mathrm{SO}(3)\) 上定义 \(f\) 在 \(H\in T_X \mathrm{SO}(3)\) 方向上的方向导数:
\[\mathbf{D}_Hf(X) = \lim_{t \rightarrow 0} \frac{f(X+tH)-f(X)}{t}\]04 黎曼梯度
在多元微积分中,方向导数定义为
\[\begin{align*} \mathbf{D}_v f(x) &=\lim_{t \rightarrow 0} \frac{f(x+tv)-f(x)}{t}\\\\ &=v^\top \cdot\nabla f(x) \end{align*}\]其中\(\|v\|=1\)。
上式的第二行可以视作对欧式梯度的定义,即梯度与单位方向向量的内积(向量点乘)等于该方向上的方向导数,其存在性和唯一性的证明可由Taylor展开得到。显然,梯度即是使方向导数最大的方向。
重写上式为
\[\mathbf{D}_v f(x)=\langle \nabla f(x),v\rangle\]可以得到黎曼梯度 \(\mathrm{grad} f(X)\) 的定义:
对于黎曼流形 \(\mathrm{SO(3)}\) 和实值函数 \(f:\mathrm{SO(3)}\rightarrow \mathbb{R}\) ,函数 \(f\) 在 \(X\) 处的黎曼梯度 \(\mathrm{grad} f(X)\) 是 \(T_X \mathrm{SO}(3)\) 中的一个向量,由下式唯一确定:
\[\mathbf{D}_\xi f(X)=\langle \mathrm{grad} f(X),\xi\rangle\space,\space\space \forall\xi \in T_X \mathrm{SO}(3)\]由于 \(\mathrm{SO(3)}\) 是欧氏空间中的黎曼子流形,因此其黎曼梯度就是欧式梯度 \(\nabla f(X)\) 在 \(T_X \mathrm{SO}(3)\) 中的投影,即
\[\mathrm{grad} f(X) = Proj._{\space T_X \mathrm{SO}(3)}\left(\nabla f(X)\right)\]投影计算公式为(推导见下一节):
\[Proj._{\space T_X \mathrm{SO}(3)}\left( M \right)=X skew(X^\top M)\\ ,其中skew()是反对称算子:skew(A)=\frac{A-A^\top}{2}\]展开得:
\[\begin{align*} \mathrm{grad} f(X) &= Xskew\left( X^\top \nabla f(X) \right)\\ &=\frac{1}{2}X\left( X^\top \nabla f(X) - \nabla f(X)^\top X\right)\\ &=\frac{1}{2}\left(\nabla f(X) - X \nabla f(X)^\top X\right)\\ &=\nabla f(X) - X sym\left( X^\top \nabla f(X)\right) \end{align*}\]其中,\(sym\) 是对称算子:\(sym(\cdot)=\frac{\cdot \space\space + \space\space \cdot^\top}{2}\)。
05 投影公式的推导
设 \(G\in \mathbb{R}^{3\times3}\) ,其在切空间 \(T_X \mathrm{SO}(3)\) 上的投影 \(Proj._{\space T_X \mathrm{SO}(3) }G \space\dot{=}\space X\Omega\) ( \(\Omega\)待求 )需要满足:
\[\langle X\Omega,\xi \rangle _X=\mathrm{tr}\left( (X\Omega)^\top\xi\right)=\mathrm{tr}\left( G^\top\xi\right), \space\space \forall\xi\in T_X \mathrm{SO}(3)\]这是投影的本质属性。
设 \(\xi=X\Omega_\xi\) ,则
\[\mathrm{tr}\left( (X\Omega)^\top X\Omega_\xi\right)=\mathrm{tr}\left( \Omega^\top X^\top X\Omega_\xi\right)=\mathrm{tr}\left( \Omega^\top\Omega_\xi\right)\]投影的定义式改写为
\[\mathrm{tr}\left( \Omega^\top\Omega_\xi\right)=\mathrm{tr}\left( G^\top X\Omega_\xi\right),\space\space \forall \space\Omega_\xi^\top =-\Omega_\xi\]注意到,第二节中定义的切空间内积继承自Frobenius内积,而在Frobenius内积下,对称矩阵与反对称矩阵正交,即
\[\mathrm{tr}\left( S^\top A \right)=0, \space\forall S^\top =S,A^\top =-A\]而任意矩阵可分解为对称部分和反对称部分:
\[G=\frac{G+G^\top}{2}+\frac{G-G^\top}{2}=sym(G)+skew(G)\]因此 \(\mathrm{tr}\left( \Omega^\top\Omega_\xi\right)=\mathrm{tr}\left( G^\top X\Omega_\xi\right)\) 当且仅当
\[\Omega^\top =skew(G^\top X)=\frac{1}{2}(G^\top X - X^\top G)\]故
\[Proj._{\space T_X \mathrm{SO}(3) }G=Xskew(G^\top X)^\top=Xskew(X^\top G)\]设 \(G=\nabla f(X)\) 即得到欧式梯度在切空间 \(T_X \mathrm{SO}(3)\) 上的投影(即黎曼梯度)\(\mathrm{grad}f(X)\) :
\[\begin{align*} \mathrm{grad}f(X)&=Proj._{\space T_X \mathrm{SO}(3)}\left(G\right)= Xskew(X^\top G)\\\\ &=\frac{1}{2}\left(\nabla f(X) - X \nabla f(X)^\top X\right) \end{align*}\]\(\mathrm{grad}f(X)\) 满足:
\[\langle \mathrm{grad}f(X),\xi\rangle _X=\mathrm{tr}\left( G^\top\xi\right)\]