$$ \def\v{\boldsymbol} \def\m{\boldsymbol} \def\trans{^\mathsf{T}} \def\inv{^{-1}} \def\bmat{\begin{pmatrix}} \def\emat{\end{pmatrix}} \def\diag{\operatorname{diag}} \def\tr{\operatorname{tr}} \def\ad{\operatorname{ad}} \def\Ad{\operatorname{Ad}} \def\E{\operatorname{E}} \def\det#1{| #1 |} \def\her{^\mathsf{H}} \def\wed{\wedge} \def\given{\mid} \def\defeq{\triangleq} \def\Ys{{\cal Y}} \def\argmin{\mathop{\mathrm{argmin}}} \def\argmax{\mathop{\mathrm{argmax}}} \def\blockdiag{\mathop{\mathrm{blockdiag}}} \def\inner#1{\langle #1 \rangle} $$

CV・CG・ロボティクスのためのリー群・リー代数入門: (4) リー群とリー代数の具体例

シリーズ一覧へ

前回のエントリへ


リー群とリー代数の間の関係を一般論として概観してきた.このエントリでは,コンピュータビジョン (CV) やコンピュータグラフィクス (CG),ロボティクス等の分野でよく用いられるものや,その理解に役立つものに限定して,リー群の具体例とそれに付随するリー代数を見ていくことにする.

一覧

まず,このエントリで取り上げるものを表にして列挙しておく.

リー群 付随するリー代数
$n$ 次一般線形群 $GL(n) = \{\, \m{A} \in \mathcal{M}_{n}(\mathbb{R}) \mid \det{\m{A}} \neq 0 \,\}$ $\mathfrak{gl}(n) = \{\, \m{X} \in \mathcal{M}_{n}(\mathbb{R}) \,\}$
$n$ 次特殊線形群 $SL(n) = \{\, \m{A} \in \mathcal{M}_{n}(\mathbb{R}) \mid \det{\m{A}} = 1 \,\}$ $\mathfrak{sl}(n) = \{\, \m{X} \in \mathcal{M}_{n}(\mathbb{R}) \mid \tr \m{X} = 0 \,\}$
$n$ 次直交群 $O(n) = \{\, \m{A} \in \mathcal{M}_{n}(\mathbb{R}) \mid \m{A}\trans \m{A} = \m{I} \,\}$ $\mathfrak{o}(n) = \{\, \m{X} \in \mathcal{M}_{n}(\mathbb{R}) \mid \m{X}\trans = -\m{X} \,\}$
$n$ 次特殊直交群 $SO(n) = \{\, \m{A} \in \mathcal{M}_{n}(\mathbb{R}) \mid \m{A}\trans \m{A} = \m{I}, \det{\m{A}} = 1 \,\}$ $\mathfrak{so}(n) = \mathfrak{o}(n)$
$n$ 次ユニタリ群 $U(n) = \{\, \m{A} \in \mathcal{M}_{n}(\mathbb{C}) \mid \m{A}\her \m{A} = \m{I} \,\}$ $\mathfrak{u}(n) = \{\, \m{X} \in \mathcal{M}_{n}(\mathbb{C}) \mid \m{X}\her = -\m{X} \,\}$
$n$ 次特殊ユニタリ群 $SU(n) = \{\, \m{A} \in \mathcal{M}_{n}(\mathbb{C}) \mid \m{A}\her \m{A} = \m{I}, \det{\m{A}} = 1 \,\}$ $\mathfrak{su}(n) = \{\, \m{X} \in \mathcal{M}_{n}(\mathbb{C}) \mid \m{X}\her = -\m{X}, \tr \m{X} = 0 \,\}$
$n$ 次アフィン群 $\text{Aff}(n) = \left\{\, \bmat \m{A} & \v{t} \\ \v{0}\trans & 1 \emat {\Large\mid} \begin{matrix} \m{A} \in \mathcal{M}_{n}(\mathbb{R}), \v{t} \in \mathbb{R}^n,\\ \det{\m{A}} \neq 0 \end{matrix} \,\right\}$ $\mathfrak{aff}(n) = \left\{\, \bmat \m{X} & \v{v} \\ \v{0}\trans & 0 \emat {\Large\mid} \m{X} \in \mathcal{M}_{n}(\mathbb{R}), \v{v} \in \mathbb{R}^n \,\right\}$
$n$ 次特殊ユークリッド群 $SE(n) = \left\{\, \bmat \m{A} & \v{t} \\ \v{0}\trans & 1 \emat {\Large\mid} \begin{matrix} \m{A} \in \mathcal{M}_{n}(\mathbb{R}), \v{t} \in \mathbb{R}^n,\\ \m{A}\trans \m{A} = \m{I}, \det{\m{A}} = 1 \end{matrix} \,\right\}$ $\mathfrak{se}(n) = \left\{\, \bmat \m{X} & \v{v} \\ \v{0}\trans & 0 \emat {\Large\mid} \begin{matrix} \m{X} \in \mathcal{M}_{n}(\mathbb{R}), \v{v} \in \mathbb{R}^n,\\ \m{X}\trans = -\m{X}, \tr{\m{X}} = 0 \end{matrix} \,\right\}$


表で一気に見せられても目眩がするだけだと思うので少し整理すると,最初の 6 つは「一般 (General)」と「特殊 (Special)」の 2 つずつが組になる 3 組で,順に線形群,直交群,ユニタリ群と呼ばれる基本的なものである.ただし「一般」とわざわざつけるのは $GL(n)$ だけで,一般直交群と一般ユニタリ群はそれぞれ単に直交群,ユニタリ群と呼ぶのが普通である.略号の頭にも $GL(n)$ 以外は General の「G」をつけない.

7 つめ以降にはそれらに並行移動を組み合わせた複合的な変換群を挙げている.(将来的に何か追加するかも知れない)

なお,ここでは例えば $GL(n)$ として実行列のみからなるものを考えたが,複素行列まで考えてもやはり群になり,複素一般線形群 $GL(n, \mathbb{C})$ などと呼ばれる.これとの区別が必要な場合は,実行列の $GL(n)$ は実一般線形群 $GL(n, \mathbb{R})$ と呼ばれる.しかし本テキストで扱う複素行列の群はユニタリ群と特殊ユニタリ群だけであり,複素と実の区別で混乱するおそれはないので $\mathbb{R}$ とか $\mathbb{C}$ とか書くのは省略する.書くの面倒だし.

$GL(n)$

$GL(n)$ は一般線形群 (General Linear Group) の略号である.$n \times n$ の正方行列全体からなる群,と言いたいところなのだが,逆行列がないものが含まれると群の要件を満たさないので,行列式が 0 になるものは除外されている.体積が 0 につぶれないような線形変換を表すと考えればよい.

$GL(n)$ に付随するリー代数 $\mathfrak{gl}(n)$ を見出したい.最初なので丁寧にやってみよう.

単位元での接空間を求めてみる.例えば $GL(2)$ の場合を考えると,行列の 4 要素がそれぞれ勝手に動き回るので自由度は 4 である.$t = 0$ で単位元 $\bmat 1 & 0 \\ 0 & 1 \emat$ を通る曲線を 4 本取ろう.例えば
$$
\begin{align}
\m{A}_1(t) &= \bmat 1 + t & 0 \\ 0 & 1 \emat, \,\,
\m{A}_2(t) = \bmat 1 & t \\ 0 & 1 \emat, \,\,
\m{A}_3(t) = \bmat 1 & 0 \\ t & 1 \emat\, \,\,
\m{A}_4(t) = \bmat 1 & 0 \\ 0 & 1 + t \emat
\end{align}
$$ とする.$t = 0$ での微分,すなわち接ベクトルを求めると,それぞれ
$$
\begin{align}
\m{X}_1 &= \bmat 1 & 0 \\ 0 & 0 \emat, \,\,
\m{X}_2 = \bmat 0 & 1 \\ 0 & 0 \emat, \,\,
\m{X}_3 = \bmat 0 & 0 \\ 1 & 0 \emat, \,\,
\m{X}_4 = \bmat 0 & 0 \\ 0 & 1 \emat
\end{align}
$$ となる.これら 4 本のどれを選んでも他の 3 本の線形結合では書けないので (線形独立),この 4 本を接空間の基底とすることができる.これらを使って $\mathfrak{gl}(2)$ の任意の元は
$$
\begin{align}
x_1 \m{X}_1 + x_2 \m{X}_2 + x_3 \m{X}_3 + x_4 \m{X}_4
&=\bmat x_1 & x_2 \\ x_3 & x_4 \emat
\end{align}
$$ と書ける.つまり $\mathfrak{gl}(2)$ は $2 \times 2$ 行列全体である.

$n$ 次の場合も同様に考えて, $\mathfrak{gl}(n)$ は $n \times n$ 行列全体であることがわかる.

念のためこれが指数写像でちゃんと $GL(n)$ の中にうつることも確認しておくと,任意の $n \times n$ 行列 $\m{X}$ について $|\exp \m{X}| = \exp (\tr \m{X})$ で,右辺はスカラの指数関数だから 0 にはならない.よって $|\exp \m{X}| \neq 0$ なので,確かに $\exp \m{X}$ は $GL(n)$ に属している.

$SL(n)$

「なんとか群」に「行列式が 1 であること」という条件を追加したものを「特殊なんとか群」と呼ぶ慣習になっており,略号は S から始まる.

前回のエントリで $SO(3)$ について考えたときの議論を繰り返すことになるが,公式 $|\exp \m{X}| = \exp(\tr \m{X})$ より,$\exp \m{X}$ の行列式が 1 であることは $\m{X}$ のトレースが 0 であることと同値である.つまり「特殊なんとか群」のリー代数は,「なんとか群」のリー代数にさらに条件「トレースが 0 である」を加えたものになる.

というわけで,$SL(n)$ は特殊線形群 (Special Linear Group) を意味し,そのリー代数 $\mathfrak{sl}(n)$ はトレースが 0 である行列の全体ということになる.

線形変換において行列式は体積変化率を表すのだったから,$SL(n)$ は体積を変えないような線形変換の全体である.ちょっとひねりの効いた使い方として,CV や CG 分野では射影変換 (ホモグラフィ変換) を表すのに用いられる場合がある.その辺の話は,気が向いたら独立エントリとして書くかも知れない.

$O(n)$ と $SO(n)$

$n$ 次の直交行列からなる群が直交群 (Orthogonal Group) $O(n)$ であり,そのうち行列式が 1 であるものが特殊直交群 (Special Orthogonal Group) $SO(n)$ である.

$O(n)$ は $n$ 次元空間における「回転」だけでなく,モノが裏返しになるような変換 (すなわち,行列式 = 体積拡大率 = $-1$ であるような場合) を含む.$SO(n)$ は行列式を 1 に限定したものなので,回転のみの群になる.

前回のエントリで $\mathfrak{so}(3)$ を導いたときの議論をもう一度読み返してみると,実は 3 次元であることは全く使っていない.したがって $n$ によらず,$\mathfrak{o}(n)$ は $n$ 次の歪対称行列の全体であり,歪対称行列のトレースは常に 0 だから,結局 $\mathfrak{so}(n)$ も $n$ 次の歪対称行列の全体である.

$O(n)$ と $SO(n)$ という異なるリー群に $\mathfrak{o}(n) = \mathfrak{so}(n)$ という全く同じリー代数が付随するというのは受け入れがたい気持ちになるかも知れない.何だよ,リー群とリー代数は対応しているんじゃなかったのかよ,と.

これは別に矛盾ではない.再確認すると,リー代数というのは,それが付随するリー群の中に指数写像によってうつるものであるが,値域がリー群の全域をカバーするとは誰も言っていない.確実に言えるのは,少なくともリー群の単位元近傍はカバーされるということだけである.また,指数写像自体が連続なものであるから,単位元を含む連結な領域以外はカバーしようがない.

$O(n)$ には裏返しになる変換もならない変換も含まれているのだが,両者の間を連続的にうつり変わることはできない.つまり $O(n)$ は連結ではない.そのうち単位元を含む連結成分は「裏返しにならない」直交変換の全体であって,すなわち $SO(n)$ のことである.結局,$O(n)$ の単位元における接空間と $SO(n)$ の単位元における接空間は全く同じものになるのは当然のことである.

$U(n)$ と $SU(n)$

$n$ 次のユニタリ行列からなる群がユニタリ群 (Unitary Group) $U(n)$ である.

線形代数のおさらいになるが,ユニタリ行列というのは直交行列の複素版のことだと思っておけばよい.具体的には
$$
\begin{align}
\m{U}\her \, \m{U} &= \m{I}
\end{align}
$$ を満たすような複素行列 $\m{U}$ のことである.ここで $\m{U}\her$ は $\m{U}$ の各要素の複素共役を取ってさらに転置したものを表し,$\m{U}$ のエルミート転置とかエルミート共役などと呼ばれる (転置行列の複素版である).

$O(n)$ のリー代数 $\mathfrak{o}(n)$ を調べたときと同じ手順で,転置をエルミート転置にそっくり置き換えると,$\mathfrak{u}(n)$ は $\m{X}\her = -\m{X}$ を満たす $\m{X}$ の全体だとわかる.このような $\m{X}$ は歪エルミート行列と呼ばれる (歪対称行列の複素版である)

(ちなみに念のため,$\m{X}\her = \m{X}$ となるもの,つまり対称行列の複素版はエルミート行列と呼ばれるのであった.エルミートの名を冠する異なる用語が多数あるので混乱しないようにしたい)

$U(n)$ を行列式が 1 のものに限定したのが特殊ユニタリ群 (Special Unitary Group) $SU(n)$ である.対応する $\mathfrak{su}(n)$ は,これまでと同様にトレースが 0 という条件を加えれば得られる.

「複素行列による変換なんて俺は使わないから要らないよ」という声が聞こえてきそうだが,意外とそうでもなくて,例えば 3 次元回転を表す四元数 (クォータニオン) は $SU(2)$ と密接に関連している.そのあたりは後のエントリで詳しく見ることにする.

$\text{Aff}(n)$

これまでの例はすべて線形変換であり,ベクトルに作用させることで $\v{0}$ は常に $\v{0}$ にうつる.よって並進を含むような座標変換は表せない.

線形変換 $\m{A}$ とベクトル $\v{t}$ による並進を組み合わせたいときは
$$
\begin{align}
\v{x}' &= \m{A} \v{x} + \v{t}
\end{align}
$$ といった書き方をすることができる.$\m{A}$ が可逆ならばこれも群になり,アフィン群 (Affine group) $\text{Aff}(n)$ と呼ばれる.

ただしこのように行列乗算と加算を別々に書いていると扱いが煩雑になる.これを行列の乗算一発で書けるようにするトリックが,この分野ではおなじみの
$$
\begin{align}
\bmat \v{x}' \\ 1 \emat &=
\bmat \m{A} & \v{t} \\ \v{0}\trans & 1 \emat
\bmat \v{x} \\ 1 \emat
\end{align}
$$ という書き方である.同次座標 (斉次座標) 表示などと呼ばれる.

リー代数を求めるのは,$GL(n)$ のときと同様に接空間を特定するのがやりやすいだろう.単位元になるのは $\m{A} = \m{I}$ で $\v{t} = \v{0}$ のときである.$\m{A}$ の部分と $\m{t}$ の部分がそれぞれ勝手に動けるので,$\m{A}$ の部分で $GL(n)$ と同様に $n \times n$ 本の曲線を,$\v{t}$ の部分も各要素だけが変化するような $n$ 本の曲線を考え,それらの接ベクトルを取ればよい.

結局 $\mathfrak{aff}(n)$ は,$n \times n$ 行列 $\m{X}$ と $n$ 次元ベクトル $\v{v}$ を使って $\bmat \m{X} & \v{v} \\ \v{0}\trans & 0 \emat$ と表せる行列の全体である.

$SE(n)$

$\text{Aff}(n)$ のうち $\m{A}$ の部分を直交行列に限定したものがユークリッドであり,さらに回転行列に限定したものが特殊ユークリッド (Special Euclidean Group) $SE(n)$ である.$n$ 次元空間における剛体変換を表すのに用いられる.

「特殊」というからには行列式が 1 になっているはずである.実際,この $(n+1) \times (n+1)$ 行列の行列式を一番下の行で展開すると回転行列部分の行列式に一致し,回転行列の行列式は 1 であることから確認できる.

$\mathfrak{se}(n)$ も,$\mathfrak{aff}(n)$ の左上 $n \times n$ 部分に,歪対称であることとトレースが 0 であることを課すことで得られる.


次回のエントリへ