Logarithm & Exponential
指数関数と対数関数は、**リー群(Lie groups)とリー代数(Lie algebras)**の文脈でSLAM全体に登場する。おなじみのスカラー形式に加えて、これらの行列版は、回転(最適化が難しい)とベクトル(最適化が容易)を結びつける橋渡し役となる。
スカラーの復習
指数関数 とその逆関数である対数 は、それらを有用にする以下の恒等式を満たす:
対数の恒等式は、確率論においてすでにその価値を発揮する:尤度は多数の小さな数の積であり、浮動小数点演算ではアンダーフローを起こす。対数を取ることで、この積を数値的に安定な和に変換できる ── これが、推定量が尤度そのものを最大化する代わりに負の対数尤度を最小化する理由である。
回転にまつわる問題
回転行列 はベクトル空間ではない ── 2つの回転を加算しても回転にはならないため、勾度降下法をそのまま適用することができない。しかし、そのリー代数 (単位元における接空間)はベクトル空間である:その要素は単なる3次元ベクトル (軸角度表現)であり、歪対称行列 として書かれる。
指数写像と対数写像
行列指数関数はスカラーの場合と同じべき級数、 で定義され、歪対称な引数に対してはこの級数が閉形式に落ち込む:
- 指数写像 は、リー代数の要素を回転行列に変換する。単位軸 周りの角度 の回転の場合(すなわち ):
これは**ロドリゲスの公式(Rodrigues’ formula)**である ── 単位歪対称行列のべき乗が周期的に循環する()ことから得られる、行列指数関数級数の閉形式である。
- 対数写像 はその逆写像であり、回転行列から軸角度ベクトルを抽出する。角度はトレースから求まる:、軸は の反対称成分から求まる。
小さな回転の場合、1次の項のみを残すとよく使われる近似が得られる:
これは、回転の摂動に対する残差のヤコビアンを導出する際に使われる線形化そのものである。
同じ構成は、剛体の完全な姿勢にも拡張できる: は (6次元ベクトル:並進+回転)を (斉次変換行列)に写し、 はその逆を行う。
スカラーの直感が今も役立つ理由
おなじみの恒等式は精神的には引き継がれる:指数関数は加算を合成に変換し(可換な引数に対しては )、対数関数は合成を再び加法的なものに戻す。これはまさに最適化が必要とするものである:小さな補正をベクトル として表現し、 として乗法的に適用し、姿勢誤差を として測る。
覚えておくべき注意点が一つある:行列の場合、 が成り立つのは と が可換な場合のみである ── そして異なる軸周りの回転は可換ではない。この非可換性こそが、3次元回転が単純なベクトル加算ではなくリー理論を必要とする理由である。
よくある落とし穴
- および 付近での対数写像の数値的不安定性:軸の計算式は で除算するため、堅牢な実装ではこれらの角度付近でテイラー展開した分岐に切り替える。
- 加法性を仮定してしまう:2つの軸角度ベクトルを単純に加算して合成するのは小さな角度に対してのみ近似的に正しい。正確な合成は / を経由する。
- 慣例の混同:一部のライブラリは の接ベクトルを(並進、回転)の順で格納し、他は(回転、並進)の順で格納する ── コードベース間でヤコビアンをコピーする前に確認すること。
SLAMにおける意義
対数と指数関数は、回転や姿勢を「線形化」し、勾度ベースの最適化に適した形にする ── 現代のすべてのSLAMバックエンド(g2o、GTSAM、マニフォールドパラメータ化を用いたCeres)は指数写像を通じて姿勢を更新し、ポーズグラフの誤差は対数写像を通じて定義される。今のうちに に慣れておくことは、Level 2でリー群を本格的に学ぶ際に直接役に立つ。