CV・CG・ロボティクスのためのリー群・リー代数入門: (6) 随伴表現
3 次元回転を表す方法として,前回のエントリで言及したオイラー角,回転角・回転軸表現,回転ベクトルといったもののほかに四元数 (クォータニオン) なるものがあることは,コンピュータグラフィクス (CG) やロボティクスの分野ではよく知られていることと思う.四元数は珍妙というか神秘的な数で,一見してそれが回転を表すとはとても思えない形をしている.
四元数が何者なのかを理解するには,リー群やリー代数の「表現」という概念を理解する必要がある.3 次元回転を表すには 3 次行列を使うのが当然と思いがちだが,実はそれは唯一の方法ではなく,他の次数の行列で表す方法を実は無数に作り出すことができる.そのようなものの一例として四元数を位置づけることができる.
このエントリでは,リー群やリー代数の表現とは何か,具体的にはどのようなものがあるのかを見ていくことにする.
表現
一般に,ある代数構造が与えられたとき,その構造を特徴づける演算関係を保存するように行列を対応づけることができるとき,対応づけられた行列のこと (あるいはその対応自体のこと) を表現と呼ぶ.
抽象的過ぎるので群の場合について具体的に考えると,群を特徴づける演算というのは積である.ある群 $G$ の元 $g_1, g_2, \cdots$ の 1 個 1 個に対して可逆行列 $\m{H}_1, \m{H}_2, \cdots$ をそれぞれ対応づけたときに,$g_i g_j = g_k$ ならば $\m{H}_i \m{H}_j = \m{H}_k$ であるようなとき,$\{\, \m{H}_i \,\}$ は群 $G$ の元 $\{\, g_i \,\}$ の表現になっているという.(逆元や結合則や単位元の存在については,可逆行列なら自動的に満たされる)
図にするとこんな感じになる.$G$ の元 $g_i$ に行列 $\m{H}_i$ を対応づける写像を $\m{H}_i = \psi(g_i)$ と書くことにすると,$\psi(g_i g_j) = \psi(g_i) \psi(g_j)$ が成り立つようになっているときに $\phi(g_i)$ は $g_i$ の表現であるということである.
「何を当たり前のことを小難しく言っているのか」と思うかもしれない.本テキストでは行列で表されるような群しか考えてこなかったので,そのように感じるのは当然のことである.我々の議論の範囲ではある群 $G$ の元 $g$ はそもそも行列であって,それ自体が表現である.それだけだと,そんなものをわざわざ考える価値はないのだが,実は,表現の与え方は一通りではないという点が重要である.$3 \times 3$ の回転行列は,3 次元回転を表す表現のうち自然表現と呼ばれる一例に過ぎない.
同様に,リー代数の表現なるものを考えることもできる.リー代数を特徴づける演算はスカラ倍と和と交換子積だから,これらの関係を保存するような行列を対応付けることができればそれが表現である.
交換子積を導入したときに見たように,リー代数の演算構造が定まれば,対応するリー群の単位元まわりの構造が完全に定まる.調べたいリー群の表現が扱いにくい場合でも,対応するリー代数の表現を調べることで見通しが良くなることが多々ある.
リー代数の随伴表現
表現の作り方で重要な例を見ていく.
最初の例はリー代数の随伴表現と呼ばれるものである.これはあるリー代数が与えられたときに交換子積の関係から直接得られるものである.交換子積はリー代数の構造を決定づけるものだったから,これはリー代数の表現としては最も根本的なものといえる.
数学の教科書には以下のような定義が書かれている.
ある $\m{X} \in \mathfrak{g}$ の随伴表現 $\ad \m{X}$ を,任意の $\m{Y} \in \mathfrak{g}$ を $\mathfrak{g}$ の中にうつす線形写像
$$
\begin{align}
\ad \m{X} (\m{Y}) &= \m{X}\m{Y} - \m{Y}\m{X}
\end{align}
$$ として定義する.
この書き方はちょっとわかりにくいのではないかと思う (個人の感想です).特にこの式を,$\ad \m{X}$ という行列を $\m{Y}$ という行列に左からかけると $\m{X}\m{Y} - \m{Y}\m{X}$ になる,などと誤読しないように注意したい.何しろ,$\m{X}, \m{Y}$ と $\ad \m{X}$ は次数が一致するとは限らないのだ.
そうではなくて,この定義は以下のように解釈する必要がある.
つまり,今想定している基底のもとで,$\m{Y}$ の座標表示を $\m{X}\m{Y} - \m{Y}\m{X}$ の座標表示に変換するような線形写像の行列表示を $\ad \m{X}$ と定義する.
普通の数学書の記法ではこの「座標表示」だの「行列表示」だのが明示的に書かれない.本テキストでは,ちょっとしつこく感じることもあるかも知れないが,これを常に明示していくことにする.
「$\m{X}, \m{Y}$ と $\ad \m{X}$ は次数が一致するとは限らない」ことは,具体例を考えるとわかる.一致する例としては $\mathfrak{so}(3)$ が挙げられる.$\mathfrak{so}(3)$ は 3 次元ベクトル空間だから,$\ad \m{X}$ は $3 \times 3$ 行列であり,$\m{X} \in \mathfrak{so}(3)$ の次数と一致する.一致しない例としては $\mathfrak{se}(3)$ がある.$\m{X} \in \mathfrak{se}(3)$ は $4 \times 4$ 行列で表せたが,$\mathfrak{se}(3)$ は 6 次元ベクトル空間なので $\ad \m{X}$ は $6 \times 6$ 行列である.
$\ad \m{X}$ の具体的な成分を見るには以下のように考えればよい.行列 $\ad \m{X}$ の第 1 列は $(\ad \m{X}) (1, 0, \cdots, 0)\trans$ に等しい.リー代数の基底が $\m{L}_1, \m{L}_2, \cdots, \m{L}_n$ だとすると $(1, 0, \cdots, 0)\trans = \m{L}_1^\vee$ なので (なぜならば $\m{L}_1 = 1 \m{L}_1 + 0 \m{L}_2 + \cdots 0 \m{L}_n$),$\ad \m{X}$ の第 1 列は $(\ad \m{X}) \m{L}_1^\vee = (\m{X} \m{L}_1 - \m{L}_1 \m{X})^\vee$ に等しい.同様にして,$\ad \m{X}$ の第 $i$ 列は $(\ad \m{X}) \m{L}_i^\vee = (\m{X} \m{L}_i - \m{L}_i \m{X})^\vee$ に等しい.この流儀で $\ad \m{X}$ を書き下すと,
$$
\begin{align}
\ad \m{X} &= \bmat (\m{X} \m{L}_1 - \m{L}_1 \m{X})^\vee & (\m{X} \m{L}_2 - \m{L}_2 \m{X})^\vee & \cdots & (\m{X} \m{L}_n - \m{L}_n \m{X})^\vee\emat
\end{align}
$$ となる.
この定義によって,$\m{X}$ に対するスカラ倍や和が保存されることに注目しよう.何らかのリー代数が与えられたとき,その $n$ 個の基底 $\m{L}_1, \m{L}_2, \cdots, \m{L}_n$ すべてに対して $\ad \m{L}_1, \ad \m{L}_2, \cdots, \ad \m{L}_n$ を計算しておけば,そのリー代数の任意の元の随伴表現はそれらの線形結合として得ることができる.基底 1 個あたり $n^2$ 個の成分があるので,合計 $n^3$ 個の値が決まればリー代数の構造が定まるといえる.これら $n^3$ 個の定数をリー代数の構造定数と呼ぶ.
構造定数は基底の取り方に依存することに注意しておきたい.だから,2 つのリー代数の構造定数が一見違っていたからといって,それらの構造が異なっているとは直ちに断言できない.構造定数が同じになるような基底が存在するとき,それら 2 つのリー代数は同じ構造を持つといえる.
このように定義された随伴表現が,前節で述べた「リー代数の表現」の一種になっていることを確認しておこう.スカラ倍と和が保存されることは既に見た.残るは,交換子積が保存されること,つまり,交換子積の表現行列が,表現行列の交換子積になっていることの確認である.すなわち
$$
\begin{align}
\ad [\m{X}, \m{Y}] &= [\ad \m{X}, \ad \m{Y}]
\end{align}
$$ であることを示せばよい.ちょっと面倒ではあるが,地道に計算していくだけで示せる.実際,任意の $\m{Z}$ に対して
$$
\begin{align}
(\ad [\m{X}, \m{Y}]) \m{Z}^\vee &= ([\m{X}, \m{Y}] \m{Z} - \m{Z} [\m{X}, \m{Y}])^\vee\\
& = ( (\m{X}\m{Y} - \m{Y}\m{X}) \m{Z} - \m{Z} (\m{X}\m{Y} - \m{Y}\m{X}))^\vee\\
& = (\m{X}\m{Y}\m{Z} - \m{Y}\m{X}\m{Z} - \m{Z}\m{X}\m{Y} + \m{Z}\m{Y}\m{X})^\vee
\end{align}
$$ である一方,
$$
\begin{align}
[\ad \m{X}, \ad \m{Y}] \m{Z}^\vee &= \{(\ad \m{X}) (\ad \m{Y}) - (\ad \m{Y}) (\ad \m{X})\} \m{Z}^\vee\\
&= (\ad \m{X}) (\ad \m{Y}) \m{Z}^\vee - (\ad \m{Y}) (\ad \m{X}) \m{Z}^\vee\\
&= (\ad \m{X})(\m{Y}\m{Z} - \m{Z}\m{Y})^\vee - (\ad \m{Y})(\m{X}\m{Z} - \m{Z}\m{X})^\vee\\
&= \left\{\m{X}(\m{Y}\m{Z} - \m{Z}\m{Y}) - (\m{Y}\m{Z} - \m{Z}\m{Y})\m{X} \right\}^\vee - \left\{ \m{Y}(\m{X}\m{Z} - \m{Z}\m{X}) - (\m{X}\m{Z} - \m{Z}\m{X})\m{Y} \right\}^\vee\\
& = (\m{X}\m{Y}\m{Z} - \m{Y}\m{X}\m{Z} - \m{Z}\m{X}\m{Y} + \m{Z}\m{Y}\m{X})^\vee
\end{align}
$$ であり,確かに両辺は一致する.
$\mathfrak{so}(3)$ の随伴表現
具体例として $\mathfrak{so}(3)$ を見ていく.さっき述べたとおり,基底元の表現を列挙することさえできれば,あらゆる元の表現を求め尽くしたと言ってよい.
$\mathfrak{so}(3)$ の基底 $\m{J}_1, \m{J}_2, \m{J}_3$ のそれぞれについて随伴表現を求めると,
$$
\begin{align}
\ad \m{J}_1 &= \bmat (\m{J}_1 \m{J}_1 - \m{J}_1 \m{J}_1)^\vee & (\m{J}_1 \m{J}_2 - \m{J}_2 \m{J}_1)^\vee & (\m{J}_1 \m{J}_3 - \m{J}_3 \m{J}_1)^\vee\emat\\
&= \bmat \v{0} & \m{J}_3^\vee & - \m{J}_2^\vee \emat\\
&= \bmat
0 & 0 & 0 \\
0 & 0 & -1 \\
0 & 1 & 0 \\
\emat = \m{J}_1\\
\ad \m{J}_2 &= \bmat (\m{J}_2 \m{J}_1 - \m{J}_1 \m{J}_2)^\vee & (\m{J}_2 \m{J}_2 - \m{J}_2 \m{J}_2)^\vee & (\m{J}_2 \m{J}_3 - \m{J}_3 \m{J}_2)^\vee\emat\\
&= \bmat - \m{J}_3^\vee & \v{0} & \m{J}_1^\vee \emat\\
&= \bmat
0 & 0 & 1 \\
0 & 0 & 0 \\
-1 & 0 & 0 \\
\emat = \m{J}_2\\
\ad \m{J}_3 &= \bmat (\m{J}_3 \m{J}_1 - \m{J}_1 \m{J}_3)^\vee & (\m{J}_3 \m{J}_2 - \m{J}_2 \m{J}_3)^\vee & (\m{J}_3 \m{J}_3 - \m{J}_3 \m{J}_3)^\vee\emat\\
&= \bmat \m{J}_2^\vee & -\m{J}_1^\vee & \v{0} \emat\\
&= \bmat
0 & -1 & 0 \\
1 & 0 & 0 \\
0 & 0 & 0 \\
\emat = \m{J}_3\\
\end{align}
$$ となる.途中で現れた $\m{J}_1 \m{J}_2 - \m{J}_2 \m{J}_1 = \m{J}_3$ などは地道に計算すれば確認することができる.
結局わかったことは,$\mathfrak{so}(3)$ の随伴表現とは,これまで使ってきた $3 \times 3$ 行列による表現,つまり自然表現そのものである.
リー群の随伴表現
次の例として,リー群の随伴表現と呼ばれるものを見ていく.紛らわしいのだが,さっき出てきた「リー代数の随伴表現」とは別物である (もちろん密接に関わっているので同じ名前がついているのだが,その関係は後で見る).記号も大文字と小文字の違いだけで区別するので混同しないようにしたい.
こちらも普通の数学の教科書では $\vee$ 記号は書かない.
$G$ の元と $\mathfrak{g}$ の元が入り混じっていてわかりにくいが,右辺の $\m{A}\m{Y}\m{A}\inv$ は,$\m{A} \exp(t\m{Y}) \m{A}\inv$ の $t = 0$ における微分を取ったものだと考えるとよい.$G$ の曲面上の $\m{A}\inv$ の地点での接ベクトルを,$\m{A}$ をかけることで単位元にうつしたものだと捉えることができる.座標変換群の場合の接ベクトルというのは速度とか角速度とかを表していることを思い出すと,ある座標系で表した速度や角速度が別の座標系からはどう見えるか,といったことを考えるのに使うことができる.
ちょっとまだイメージしづらいのではないかと思うが,具体例はもうちょっとお待ち頂くことにして,まず先にこれが「群の表現」になっていることを確認しておく.それには $\Ad (\m{A} \m{B}) = (\Ad \m{A}) (\Ad \m{B})$ を確かめればよい.
任意の $\m{Y} \in \mathfrak{g}$ を取って,左辺を $\m{Y}^\vee$ に作用させると
$$
\begin{align}
(\Ad (\m{A} \m{B})) \m{Y}^\vee &= ( (\m{A}\m{B}) \m{Y} (\m{A}\m{B})\inv)^\vee = (\m{A} \m{B} \m{Y} \m{B}\inv \m{A}\inv)^\vee
\end{align}
$$ であり,一方右辺を作用させると
$$
\begin{align}
(\Ad \m{A}) (\Ad \m{B}) \m{Y}^\vee &= ( (\Ad \m{A} ) (\m{B} \m{Y} \m{B}\inv))^\vee = (\m{A} \m{B} \m{Y} \m{B}\inv \m{A}\inv)^\vee
\end{align}
$$ である.確かに両辺は一致する.
$SO(3)$ の随伴表現
というわけでお待ちかねの具体例である.毎度おなじみ $SO(3)$ への適用例を考えよう.
$\Ad$ の定義が表しているのは,回転行列 $\m{R} \in SO(3)$ の随伴表現 $\Ad \m{R}$ を $\m{Y} \in \mathfrak{so}(3)$ の座標表示 $\v{y} = \m{Y}^\vee$ に左からかけると,$\m{R} \m{Y} \m{R}\inv$ の座標表示が得られる,という関係である.
$\m{Y} = [\v{y}]_\wed$ は瞬時回転を表す行列で,$\v{y}$ はそれを表示する角速度ベクトルだったことを思い出そう.適当な位置ベクトル $\v{p}$ にかけることでその点の速度 $\v{v} = \m{Y} \v{p} = \v{y} \times \v{p}$ が得られるのだった.
ここで座標系を回転させて,$\v{p}$ と $\v{v}$ を新しい座標系で表示した $\v{p}' = \m{R} \v{p}$, $\v{v}' = \m{R} \v{v}$ を考える.さっきの $\v{v} = \m{Y} \v{p}$ に代入して整理すると $\v{v}' = \m{R} \m{Y} \m{R}\inv \v{p}'$ となる.
このように $\m{R} \m{Y} \m{R}\inv$ とは,ある座標系で見た瞬時回転 $\m{Y}$ を,$\m{R}$ だけ回転させた別の座標系から見た瞬時回転の行列表示であり,$(\m{R} \m{Y} \m{R}\inv)^\vee$ はそれを角速度ベクトルとして表示したものである.
つまり $(\Ad \m{R}) \m{Y}^\vee = (\m{R} \m{Y} \m{R}\inv)^\vee$ という式は,ある角速度ベクトル $\m{Y}^\vee$ を,$\m{R}$ だけ回転した別の座標系から見たときの角速度ベクトル $(\m{R} \m{Y} \m{R}\inv)^\vee$ に変換するにはどういう行列をかければよいか,という問への答えとして $\Ad \m{R}$ を定義するものであると言える.
$\Ad \m{R}$ の具体的な形は以下のように求められる.
任意の 3 次元ベクトル $\v{p}$ に左から $\m{R} \m{Y} \m{R}\inv$ をかけたものは
$$
\begin{align}
(\m{R} \m{Y} \m{R}\inv) \v{p} &= \m{R} (\v{y} \times (\m{R}\inv \v{p}))
\end{align}
$$ と展開できるが,ここで一般に 2 つの 3 次元ベクトル $\v{a}$ と $\v{b}$ に対して
$$
\begin{align}
\m{R} (\v{a} \times \v{b}) &= (\m{R} \v{a}) \times (\m{R} \v{b})
\end{align}
$$ が成り立つこと,すなわち,$\v{a}$ と $\v{b}$ のベクトル積を回転させるのも,$\v{a}$ と $\v{b}$ をそれぞれ回転させてからベクトル積を取るのも結果は変わらないことを使うと,さっきの式は引き続き
$$
\begin{align}
(\m{R} \m{Y} \m{R}\inv) \v{p} &= \cdots\\
&= (\m{R} \v{y}) \times \v{p}\\
&= [\m{R} \v{y}]_\wed \v{p}
\end{align}
$$ と展開することができる.つまり $\m{R} \m{Y} \m{R}\inv = [\m{R} \v{y}]_\wed$ であり,この両辺の座標表示は
$$
\begin{align}
(\m{R} \m{Y} \m{R}\inv)^\vee &= \m{R} \v{y} = \m{R} \m{Y}^\vee
\end{align}
$$ となる.この最左辺は $(\Ad \m{R}) \m{Y}^\vee$ の定義だったのだから,最右辺と見比べて $\Ad \m{R} = \m{R}$ が結論される.
結局 $\m{R} \in SO(3)$ の随伴表現も $\m{R}$ そのものだということである.
「なんだよ,$\mathfrak{so}(3)$ の随伴表現も $SO(3)$ の随伴表現も結局そのままじゃねえか.もっと求め甲斐のある例はないのか!」という声が聞こえてきそうだし,そもそも角速度ベクトルが位置ベクトルと同じ座標変換を受けるのは直観的に自明と言えば自明である.もっと実利のある例は,次のエントリまでお待ち頂きたい.
$\Ad$ と $\ad$ の関係
リー代数の随伴表現とリー群の随伴表現を見てきたわけだが,ちらりと書いた通り,この 2 つには密接な関係があるため同じ名前で呼ばれるし,似たような記号で表される.この関係を見ていきたい.
まず,これまでわかっている関係を図式にするとこんな感じになる.
$$
\require{AMScd}
\begin{align}
\begin{CD}
G @>{\Ad}>> H\\
@A{\exp}AA \\
\mathfrak{g} @>{\ad}>> \mathfrak{h}
\end{CD}
\end{align}
$$ ここで $G$ はリー群で $\mathfrak{g}$ はそれに対応するリー代数であり,$H$ と $\mathfrak{h}$ はそれぞれの随伴表現の集合であるとした.
どうもこの図式を見ていると,$\mathfrak{h}$ と $H$ の間に矢印が引けないものだろうかという気になってくる.つまり,任意の $\m{X} \in \mathfrak{g}$ に対して
$$
\begin{align}
\Ad(\exp \m{X}) &= \phi (\ad \m{X})
\end{align}
$$ が成り立つような写像 $\phi : \mathfrak{h} \to H$ が見出だせるのではなかろうか.
これを探るために,実数 $t$ とともに動く $\m{P}(t) = \Ad(\exp t\m{X})$ を考える.任意の $\m{Y} \in \mathfrak{g}$ の座標表示にこれを作用させることを考えると,
$$
\begin{align}
[\m{P}(t) \m{Y}^\vee]_\wedge &= [\Ad(\exp t\m{X}) \m{Y}^\vee]_\wedge\\
&= (\exp t\m{X}) \m{Y} (\exp t\m{X})\inv\\
&= (\exp t\m{X}) \m{Y} \exp (-t\m{X})
\end{align}
$$ という関係が得られる.両辺を $t$ で微分すると,
$$
\begin{align}
\left[ \frac{d}{dt}\m{P}(t) \m{Y}^\vee \right]_\wedge
&= \m{X} (\exp t\m{X}) \m{Y} \exp(-t\m{X}) + (\exp t\m{X}) \m{Y} (-\m{X})(\exp -t\m{X})\\
&= \m{X} (\exp t\m{X}) \m{Y} \exp(-t\m{X}) - (\exp t\m{X}) \m{Y} (\exp -t\m{X}) \m{X} \,\,\,(\text{∵ $\m{X}$ と $\exp(-t\m{X})$ は可換})\\
&= [\m{X}, (\exp t\m{X}) \m{Y} \exp(-t\m{X})]\\
&= [\m{X}, [\m{P}(t) \m{Y}^\vee]_\wedge ]\\
&= [(\ad \m{X}) \m{P}(t) \m{Y}^\vee]_\wedge
\end{align}
$$ が得られる.
$\m{Y}$ は任意に取ったので,これは $\displaystyle \frac{d}{dt}\m{P}(t) = (\ad \m{X}) \m{P}(t)$ を意味する.$\m{P}(t)$ はこの微分方程式の解なので,行列指数関数によって
$$
\begin{align}
\m{P}(t) = \exp(t \ad \m{X}) \m{P}(0)
\end{align}
$$ と表せる.
初期値は $\m{P} = \Ad(\exp 0 \m{X}) = \Ad\m{I}$ であるが,$(\Ad\m{I})\m{Y}^\vee = (\m{I} \m{Y} \m{I}\inv)^\vee = \m{Y}^\vee$ だから $\Ad \m{I} = \m{I}$ である.結局 $\m{P}(t) = \Ad(\exp t\m{X})$ は
$$
\begin{align}
\m{P}(t) = \exp(t \ad \m{X})
\end{align}
$$ を満たすことがわかる.
特に $t = 1$ のときを考えると以下の関係が得られる.すなわち,我々が探していた写像 $\phi$ は指数写像であることが判明した.
この節の最初の図式を完成させると,
$$
\require{AMScd}
\begin{align}
\begin{CD}
G @>{\Ad}>> H\\
@A{\exp}AA @A{\exp}AA\\
\mathfrak{g} @>{\ad}>> \mathfrak{h}
\end{CD}
\end{align}
$$ ということになる.このような図式を可換図式と呼んだりする.この関係は次のエントリで重要な役割を果たすことになる.