リーマン計量の正体を暴く

最近、微分幾何学の勉強をしている。これは最終的に情報幾何学を理解するためである。情報幾何学ではFisher情報行列なるものがリーマン計量を定めるのであるが、そもそもリーマン計量がなんだかよく分からない。その他、いろいろと分からないことが多すぎて、情報幾何学は一度挫折してしまった。そこで、本稿では情報幾何学を理解するための足がかりとして、リーマン計量について考えてみることにする。

定義とその解釈

多様体の基礎」[1]からリーマン計量の定義を引用する*1

 C^{\infty}多様体M上の2次の対称テンソル場gが, Mの各点pにおいて正定値であるとき, gをM上のリーマン計量 (Riemannian metric) という.

ここで、gは多様体M上の各点pに対して T^*_p(M) \otimes  T^*_p(M)の元を1つずつ割り当てるような対応、すなわちテンソル場である。

この定義を見ただけでは分かりづらいが、リーマン計量の最も重要な役割は接ベクトル空間 T_p (M)内積を定めることである。各点に割り当てられたテンソルは実は内積を定める写像となっており、点pについて得られた写像 g_pとすると、これは T_p (M) \times T_p (M) \to \mathbb{R}という写像である。このとき、任意のゼロでないベクトル {\bf x}, {\bf y} \in T_p (M)について以下が成立する。

 \displaystyle{
\begin{eqnarray}
g_p({\bf x}, {\bf y}) &=& g_p({\bf y}, {\bf x}) \\
g_p({\bf x}, {\bf x}) &>& 0
\end{eqnarray}
}

1つ目の式はgが対称テンソル場であることを、2つ目の式はgが正定値であることをそれぞれ表している。

変幻自在のリーマン計量

リーマン計量の定義は上で示した通りであるが、私は最初リーマン計量について調べ始めたとき、とても混乱させられた。その理由は、リーマン計量が文献によって様々な形で記述されるからである。例えばWikipedia[2]を見ると以下のような記述がある。

n個の実数値関数 x^1, x^2, \cdots, x^nによって与えられる、多様体M上の局所座標系において、ベクトル場

 \displaystyle{
\left\{\frac {\partial }{\partial x^{1}},\dotsc ,\frac{\partial }{\partial x^{n}}\right\}
}

はMの各点において接ベクトルの基底を与える。この座標系に関して、計量テンソルの成分は、各点pにおいて、

 \displaystyle{
g_{ij}(p):=g_{p}{\Biggl (}\left({\frac {\partial }{\partial x^{i}}}\right)_{p},\left({\frac {\partial }{\partial x^{j}}}\right)_{p}{\Biggr )}
}

同じことだが、計量テンソルは余接束の双対基底 \{dx^1, …, dx^n\}のことばで次のように書くことができる。

 \displaystyle{
g=\sum _{i,j}g_{ij}\mathrm {d} x^{i}\otimes \mathrm {d} x^{j}
}

ここではリーマン計量を計量テンソルというものと関連付けて説明しており、さらに双対基底とも関係があるようなことが書かれている。これが初見だとよく分からなかった。

また、「曲線と曲面の微分幾何」[3]においては、例えば第一基本形式を ds^2 = E dudu + 2F dudv + G dvdvと書いて、 ds^2がリーマン計量だというような言い方がされていたりもする。定義によるとリーマン計量はテンソル場のはずだが、 ds^2は微小距離の2乗というスカラー値を表しているように見える。これらの間の整合性がこれまたよく分からなかった。

このような混沌とした状況の中から、私が感じた疑問を抜粋すると以下のようになる。

  1. リーマン計量と計量テンソルの関係は何か?
  2. リーマン計量と接ベクトル空間の双対基底の関係は何か?
  3. 内積を定める写像テンソル場としてのリーマン計量と微小距離の2乗としてのリーマン計量の間にはどのように整合性が取れるのか?

これら3つの疑問の答えは、互いに少しずつ関連がある。以下で順を追って見ていこう。

リーマン計量の局所座標系における表現

疑問の答えを解き明かす鍵は、リーマン計量を局所座標系を用いて表現することにある。これを理解するために、リーマン計量を用いて2つの接ベクトル {\bf x}, {\bf y}内積を計算することを考えてみよう。これを具体的に計算するためには、2つのベクトルを何らかの局所座標系で表してみるのが良いだろう。局所座標系が決まれば、接ベクトル空間の基底が決まる。今は接ベクトル空間が2次元だと仮定して、基底を \left\{\left(\frac {\partial }{\partial x^{1}}\right)_p, \left(\frac{\partial }{\partial x^{2}}\right)_p\right\}とする。このとき、2つの接ベクトルを {\bf x} = a^{1} \left(\frac {\partial }{\partial x^{1}}\right)_p + a^{2} \left(\frac {\partial }{\partial x^{2}}\right)_p,  {\bf y} = b^{1} \left(\frac {\partial }{\partial x^{1}}\right)_p + b^{2} \left(\frac {\partial }{\partial x^{2}}\right)_pと表すことができる。すると、これらの内積は以下のよう定められる。

 \displaystyle{
g_p({\bf x} ,  {\bf y}) = \sum_{i=1}^{2} \sum_{j=1}^{2} a^{i} b^{j} g_p \left( \left(\frac {\partial }{\partial x^{i}}\right)_p , \left(\frac {\partial }{\partial x^{j}}\right)_p \right)
}

局所座標系が正規直交系とは限らないため、各基底ベクトルの長さが1とは限らないし、2つの異なる基底ベクトルの内積が0になるとも限らないという点に注意が必要である。

このままではなんだかごちゃごちゃしているので、以下のような置き換えを行う。

 \displaystyle{
g_{ij}(p)=g_{p}{\Biggl (}\left({\frac {\partial }{\partial x^{i}}}\right)_{p},\left({\frac {\partial }{\partial x^{j}}}\right)_{p}{\Biggr )}
}

そして、(i, j)成分が g_{ij}であるような行列Gを考える。すると、内積は以下のように計算できることが分かる。

 \displaystyle{
g_p ({\bf x},  {\bf y}) = 
\begin{pmatrix}
a^{1} & a^{2}
\end{pmatrix}
G
\begin{pmatrix}
b^{1} \\
b^{2}
\end{pmatrix}
}

このように、リーマン計量は局所座標系に対して具体的に行列として表現することができる。行列は2階のテンソルであるため、これを計量テンソルと呼ぶ。計量テンソルはリーマン計量の性質を反映し、必ず正定値対称行列となる。

双対空間との関係

さて、Wikipedia[2]には以下のような式があった。

 \displaystyle{
g=\sum _{i,j}g_{ij}\mathrm {d} x^{i}\otimes \mathrm {d} x^{j}
}

この式の意味するところを考えてみよう。そのためには、一次微分形式が何者であったかを思い出さなければならない。詳細は本[1]等を見て頂くとして、簡単に言うと、一次微分形式とは、多様体Mの各点pに余接ベクトル空間の元を割りつけていくような対応、すなわち余接ベクトルによるベクトル場である。言い換えると、一次微分形式は M \to T^{*}_p (M)という写像である。

局所座標系 x^1, x^2, \cdots, x^nにおいて定義される dx^i (i=1, 2, \cdots, n)という一次微分形式に対して、点pを決めると余接ベクトル空間の元、すなわち1次形式が1つ得られる。こうして得られた1次形式を (dx^i)_pと表し、これに対して接ベクトル空間の基底を入力として与えたとき、その値は以下のように計算される。

 \displaystyle{
\begin{eqnarray}
(dx^i)_p \left(\left(\frac{\partial}{\partial x_j}\right)_p \right) &=& \frac{\partial x_i}{\partial x_j}(p) \\
&=&
\begin{cases}
  0\ (i \ne j) \\
  1\ (i = j)
\end{cases}
\end{eqnarray}
}

続いて、1次形式のテンソル (dx_i)_p \otimes (dx_j)_pに対して接ベクトル空間の基底の組を入力として与えた時、その値は以下のように計算される。

 \displaystyle{
\begin{eqnarray}
((dx^i)_p \otimes (dx^j)_p) \left(\left(\frac{\partial}{\partial x_k}\right)_p, \left(\frac{\partial}{\partial x_l}\right)_p \right)
&=& (dx^i)_p \left(\left(\frac{\partial}{\partial x_k}\right)_p \right) \cdot (dx^j)_p \left(\left(\frac{\partial}{\partial x_l}\right)_p \right) \\
&=& \frac{\partial x_i}{\partial x_k}(p) \cdot \frac{\partial x_j}{\partial x_l}(p) \\
&=&
\begin{cases}
  0\ \left((i, j) \ne (k, l)\right) \\
  1\ \left((i, j) = (k, l)\right)
\end{cases}
\end{eqnarray}
}

ここまで来ればもう分かったも同然だ。最初に掲げた式 g=\sum _{i,j}g_{ij}\mathrm {d} x^{i}\otimes \mathrm {d} x^{j}の意味を考えてみよう。これは、2つの接ベクトルの直積を入力に取り、スカラーを出力する写像を、多様体の各点に割り当てるような対応を与えるテンソル場である。これを使って、点pにおいて \left(\frac{\partial}{\partial x_k}\right)_p \left(\frac{\partial}{\partial x_l}\right)_p内積を計算してみよう。
 \displaystyle{
\begin{eqnarray}
\sum _{i,j}g_{ij}(p) (dx^{i})_p \otimes (dx^{j})_p \left(\left(\frac{\partial}{\partial x_k}\right)_p, \left(\frac{\partial}{\partial x_l}\right)_p \right)
&=& \sum_{i,j} g_{ij}(p) \frac{\partial x_i}{\partial x_k}(p) \cdot \frac{\partial x_j}{\partial x_l}(p) \\
&=& g_{kl}(p)
\end{eqnarray}
}

この計算結果は先程のリーマン計量の局所座標表示の話と見事に整合性が取れているのが分かるだろう。

微小距離の2乗?いいえ、2次微分形式です

最後に、リーマン計量を微小距離の2乗っぽく表すことと、リーマン計量の定義との整合性について考えてみよう。といっても、ここまでの議論でほぼ明らかであろう。先ほど言及した ds^2 = E dudu + 2F dudv + G dvdvを例に考えると、これはただのスカラーではなく、 dudu dudvなどを1次微分形式のテンソル積、すなわち2次微分形式と考えれば辻褄が合うのである。しかも、対称なテンソル積である。

確かに、これらの式の導出の仮定では微小距離を求めるような形で計算を行うのだが、最終的に得られたリーマン計量はあくまで内積を定める写像テンソル場なのである。

ただし、定義さえ見失わなければ、リーマン計量を微小距離の2乗だと思って議論を進めるのは直感的な理解の形成に役立つことである。

プログラミングの感覚で言うと、普段はテンソル場という実装は気にせず、微小距離の2乗というインターフェイスを用いて考えれば良い。もし深い議論が必要になったら、その時に実装も覗いてみれば良いのである。

まとめ

以上、リーマン計量に関する混沌とした状況を私なりに整理してみた。多様体においては、局所座標系への依存を嫌って抽象的な定義がなされたり、かと思えば具体的な計算のために局所座標系に頼ったりするので、そこが混乱を生む原因のようだ。気をつけよう。

参考

[1]

多様体の基礎 (基礎数学5)

多様体の基礎 (基礎数学5)

[2] リーマン多様体 - Wikipedia
[3]
曲線と曲面の微分幾何

曲線と曲面の微分幾何

*1:原著ではリーマン計量を表す記号を \omegaとしているが、勝手ながら私の好みでgに変えさせて頂いた。