三次元回転の確率分布

唐突ですが、三次元空間内での回転の確率分布というのを考えてみます。回転の距離、回転の表現、超球面上の分布、回転の分布、という順番に見ていきます。

回転の距離の定義

まず、単一の回転Rの角度f(R)、というのを考えてみましょう。不変な場合は0になって欲しいのでf(I)=0となりますが、それ以外ではどうでしょう。
ちょっと考えてみると、Iじゃない回転は回転軸との正の角度に分解できるので、その角度のうち最小のものを使って、f(R)=\thetaとしてやれば良さそうです。このとき0 \le a \le \piとなります。

ちなみに、この角度aは、全ての三次元単位ベクトルvについてRvvの角度の最大値をとったものに等しいです。

このfを使うと、二つの回転の距離d(R_1,R_2)d(R_1,R_2)=f(R_1^{-1}R_2)と書けます。で、これが以下の距離の公理を満たしているか順番に見てみます。

  • 非負性: d\ge 0
  • 対称性: d(R_1,R_2)=d(R_2,R_1)
  • 三角不等式:  d(R_1,R_2) + d(R_2,R_3) \ge d(R_1,R_3)
  • 非退化性: d(R_1,R_2)=0 \Leftrightarrow R_1=R_2

まず、fの値域から非負性は満たされます。
d(R_1,R_2)=f(R_1^{-1}R_2)=f((R_1^{-1}R_2)^{-1})=f(R_2^{-1}R_1)=d(R_2,R_1)なので対称性もあります。

三角不等式はちょっとややこしいですが、d(R_1,R_3)R_1からR_3まで最短で回転させる角度にもなっている(ような気がする)ので、その経路上にR_2が乗ってれば d(R_1,R_2)+d(R_2,R_3) = d(R_1,R_3)になって、それ以外では遠回りになると考えると成り立ちそうです。

で、最後の非退化性ですが、d(R,R)=0はすぐにわかって、d(R_1,R_2)=0ならR_1^{-1}R_2=Iで、R_1=R_2なので問題なく成り立ちます。これでdが距離であると言えるでしょう。

単位クオータニオン

さて、みなさんご存知の通り(?)、三次元の回転は単位クオータニオンで表すこともできます。クオータニオンスカラーと三次元ベクトルの組み合わせq=s+vとして書くことができます。*1そのうちノルムが1のものを単位クオータニオンと呼んで、うまいことベクトルの回転の規則を選んでやると、角度がs=\cos (\theta/2)|v|=|\sin (\theta/2)|を満たし、軸がa=\hat{v}な回転を表します。

回転の合成はクオータニオンの積q_1 q_2 = (s_1s_2 - v_1\cdot v_2) + (s_1 v_2 + s_2 v_1 + v_1 \times v_2)で表せます。他にも、共役q^*=s-vqの逆の回転になります。

3自由度を表すのに4つの実数しか使ってなくて、オイラー角みたいな汚い問題(ジンバルロックとか)も発生しないのでよく用いられているらしいです。この素晴らしい表現を維持したまま、確率分布を考えたいわけです。

von Mises-Fisher分布

任意の次元の超球面上の分布のひとつにvon Mises-Fisher分布というのがあるらしく、pdfは次のようになります。
f(x|\mu, \kappa) = C_p(\kappa) \exp(\kappa \mu \cdot x) 但しC_p(\kappa) = \kappa^{p/2-1} / (2\pi)^{p/2} I_{p/2-1}(\kappa)

よくみるとexpの中には\mu \cdot xが入っていて、これで\muとの距離を計っているのが分かります。

回転の確率分布

さて、クオータニオンの要素の順番には意味があるので、これをさっきのvMF分布に直接突っ込んでしまっても果たして意味のある分布が得られるのかが問題になります。vMFでは\mux内積を考えていたので、クオータニオン内積が序盤で定義した回転の距離とどう関係するのか考えてみます。

回転R_1,R_2を単位クオータニオンq_1,q_2で表すこととすると、d(q_1,q_2)=f(q_1^*q_2)となります。そこで、q_1^*q_2を計算してみると次のようになります。
q_1^*q_2 = (s_1 s_2 + v_1 \cdot v_2) + (s_1 v_2 - s_2 v_1 - v_1 \times v_2)

この結果のスカラーの部分(\cos (\theta/2)相当)を見てみると、これはq_1,q_2を単純に四次元のベクトルとみなして内積をとったものに等しくなっています。というわけで、四次元空間でのクオータニオンふたつの角度の半分が、それらのクオータニオンが表す回転の角度になっていることがわかります。正直この辺のイメージはあまり鮮明ではないですが、一応めでたくvMF分布を使えそうです。

*1:複素数の虚部がベクトルになってるような感じです