情報幾何学を嗜む ~微分幾何学的な双対平坦空間の導入~
前回の記事ではBregmanダイバージェンスから導かれる双対空間について述べた。本稿ではこれらの空間に定められる双対接続、及びそこから導かれる双対平坦空間について考えてみる。
基本的には本[1]を参考にしているのだが、この本はどうも双対平坦な空間の導出がざっくりしすぎていて、少々納得感に欠けた。そのため、本稿では双対平坦な空間の導出に関する計算を少しだけ泥臭く書いてみることにする。
なお、本稿では全体的にEinsteinの規約を用いているので注意されたい。
ダイバージェンスから導かれるRiemann計量
前回の記事でダイバージェンスの定義について説明した。その中で、Taylor展開した際の2次の項の係数が正定値対称行列になるという条件があった。この正定値対称という条件はいかにもRiemann計量を想起させる。実際、情報幾何学ではこれをRiemann計量として使うことで、確率分布のパラメータの空間をRiemann多様体と見なすのである。
Bregmanダイバージェンスの場合の例
例として、以下の2変数凸関数から導かれるBregmanダイバージェンスについて、そこから得られるRiemann計量を計算してみよう。
始めにが凸関数であることを確認する。Hesse行列は以下のようになる。
となるため、これは凸関数である。
次に、Riemann計量を求めてみる。と言っても、前回の記事でBregmanダイバージェンスをTaylor展開した際の2次の項は、元になる凸関数のHesse行列に等しいことを述べた。そのため、結局がリーマン計量である。
よく見るとは確かに対称行列になっている。これはが級なので当然である。また、以下の計算により正定値行列であることも分かる。
ただし、である。
Riemann計量を成分毎に書き下すと以下のようになる。
双対接続
次に、多様体の接続について考えてみる。情報幾何学において特に重要な概念として双対接続がある。少々難しい概念なので、順を追って説明していこう。
接続とは
ざっくり言うと、接続とは多様体の異なる点における接空間の間に対応関係を与えるものである。特に、その対応関係にある種の線形性があるものをAffine接続と呼ぶ。Affine接続を説明すると長くなるので、詳細は[2]などを参照のこと。
Levi-Civita接続
Affine接続のうち、さらに以下の2つの性質を満たすものをLevi-Civita接続と呼ぶ。
- (対称な接続)
- (計量との整合性)
Levi-Civita接続はベクトルの平行移動に対して計量を保つため、Riemann計量と強い依存関係がある。実際、Levi-Civita接続の接続係数はRiemann計量から一意に定まる。詳細は[2]などを参照のこと。
ここで、を1つ目の式に代入してみる。ただし、局所座標系をとし、とする。
成分を比較してとなる。
次に、を2つ目の式に代入してみる。
最後の式の右辺でなどの置き換えをすると以下のようになる。
双対接続
Levi-Civita接続における計量との整合性の条件を外し、代わりに2つの接続が以下の条件を満たすとする。
このような接続を双対接続と呼ぶ。
Levi-Civita接続の時と同様にを代入すると以下のようになる。
・・・(1)
ただし、接続係数の右肩に*が付いているものはの接続係数であることを意味する。
Bregmanダイバージェンスから導かれるRiemann空間の双対平坦性
前回の記事で、Bregmanダイバージェンスから導かれる双対空間について述べた。以下では元の空間の座標を、双対空間の座標をで表す。
今、双対接続として、接続の座標における接続係数が全て大域的に0になるようなものを考える。これはつまり、曲率が0の平坦な接続であることを意味する。この時、接続がどうなるかを考えてみよう。
準備
いくつか式を準備しておこう。ここでは座標、座標で表した接続係数をそれぞれなどと表記する。また、Riemann計量についても同様にのように表記する。
片方の接続が平坦な場合の双対接続の式
まず(1)式に接続係数0を代入すると以下の式が成立する。
・・・(2)
ここで、Riemann計量の対称性よりであり、さらに接続の対称性よりとなる。これらを組み合わせると、添字の並び替えに対しての接続係数が不変となることが分かる。特に、以下の式はのちほど利用するため明示的に述べておく。
・・・(3)
Riemann計量の別表現
元の空間に定義された凸関数を、双対空間に定義された凸関数をとすると、座標と座標の変換は以下の式で表されるのだった。
これらの両辺をそれぞれで偏微分すると以下のようになる。
・・・(4)
・・・(5)
以上により、座標、座標におけるRiemann計量を凸関数を用いずに表すことが出来た。
接続係数の座標変換
最後に、接続係数の座標変換について述べる。座標系から座標系への接続係数の変換式は以下のようになる[2]。
この変換式は有名なので調べればすぐに出てくるが、添字を下げた版のの座標変換式に関してはほとんど情報がない。幸いEMANさんのサイト[3]がヒントになったので、それを参考に変換式を導出してみる。
まず、上で示した変換式の両辺にをかけてについて和を取る。和の記号はEinsteinの規約により省略する。
ここで、Riemann計量の座標変換式を利用する。これもEMANの物理学[4]から式を引用する。
これを代入し、さらに左辺を添え字を下げた記号に置き換えると以下のようになる。
・・・(6)
双対平坦性の導出
準備が整ったので本題に入る。少々天下り的だが、をに変換する式を考えてみる。
1つ目の等号は式(6)から、2つ目の等号は式(5)から、3つ目の等号は偏微分の連鎖律から、5つ目の等号は式(2)(4)から、6つ目の等号は式(3)からそれぞれ得られる。
右辺第2項と左辺が一致するため、任意の点において右辺第1項は0でなければならない。右辺第1項に式(4)を適用すると以下のようになる。
今考えている状況においてRiemann計量はgivenであるため、右辺第1項が0になるためにはになる他ない。つまり、双対座標系において接続は平坦となるのである。
以上の議論をまとめてみる。多様体上にBregmanダイバージェンスから定まるRiemann計量が与えられ、更に双対接続が与えられたとする。接続が座標系で平坦となるとき、接続は座標系において平坦となる。このような接続の組が与えられた空間を双対平坦空間と呼ぶ。
蛇足
双対平坦空間の説明として、本稿のように接続係数の座標変換から直接的に平坦性を示す方法を採っている記事が全く見つからなかったため、本稿の計算は完全に私が考えたものである。先人がいないということもあり、正直あまり自信がない。本[1]から結論だけは分かっていたため、やや結論ありきで論理展開してしまっているような気がする。もし不備にお気づきの際はご指摘頂けるとありがたい。
まとめ
本稿ではBregmanダイバージェンスからRiemann計量が得られ、さらにそこから双対平坦な空間が導かれることを述べた。双対平坦性の導出には少々複雑な計算を行ったが、おかげでこれまでのもやもやが少しだけ晴れたような気がする。
情報幾何学関連の記事はまだまだ書きたい事が多いが、なんとか今年中には書き終えたい。
参考
[1]
別冊数理科学 情報幾何学の新展開 2014年 08月号 [雑誌]
- 出版社/メーカー: サイエンス社
- 発売日: 2014/08/22
- メディア: 雑誌
- この商品を含むブログを見る
[3] EMANの物理学・相対性理論・共変微分
[4] EMANの物理学・相対性理論・計量とは何か
情報幾何学を嗜む ~Bregmanダイバージェンスとその双対~
最近、情報幾何学の勉強をしている。情報幾何学は日本の甘利先生という方が切り開いてきた分野で、主には確率分布のパラメータが成す空間をリーマン多様体と捉えることで、確率分布族に対して幾何学的な解釈を与えるものである。
情報幾何学は情報科学の一分野でありながら、微分幾何学の理解を要する難解なものである。はっきり言って、情報系の人間で可微分多様体やらリーマン計量やら接続やらを理解している人は一握りであろう。私も情報系、それも工学部の出身であるから、甘利先生の本を初めて手に取った修士2年のときは、あまりの難しさに一瞬で心が折れたのを覚えている。
しかし時は流れ、私も今ではわずかばかり数学の心が分かるようになってきた。そこで、いよいよこの難攻不落の要塞に攻めいってみようというわけである。
というわけで、本稿から始まるいくつかの記事の中で、情報幾何学における主要なトピックについて私が理解したところを書き連ねてみようと思う。本稿ではその第一歩として、Bregmanダイバージェンスとその双対ダイバージェンスについて考えてみる。
ダイバージェンス
情報幾何学を語る上でダイバージェンスの存在は外せない。ダイバージェンスの定義を[1]から引用する*1*2。
ただし、は有限次元ベクトルである。
ダイバージェンスは距離の公理を満たしていない。すなわち、一般にはとならない。この醜い非対称性が後に華麗な蝶へと変貌を遂げるのであるが、それは双対ダイバージェンスのところで説明する。
Bregmanダイバージェンス
ダイバージェンスの中でも特に重要なものの1つにBregmanダイバージェンスがある。これは滑らかな狭義凸関数*3を用いて以下のように定義される[1]。
まず、点における接超平面の方程式は以下のようになる。
点において、この接超平面と元の関数の差は以下のようになる。
これを凸関数から導かれるからへのBregmanダイバージェンスと呼ぶ。
Bregmanダイバージェンスがダイバージェンスの定義を満たすことは自明ではないため、本来であれば証明すべきである。実際、ノートで計算して確かめることは出来たのだが、それをブログに書き起こす気力と時間がなくなってしまったため、ここでは割愛する。
参考までに計算の指針だけ述べておく。まず、についてにおける多変数のTaylor展開を計算する。0次の項はである。1次の項も計算すると0になる。2次の項は計算するとのHesse行列に等しくなる。は滑らかな凸関数と仮定しているため、これは正定値対称となる。
Legendre変換による双対空間
Bregmanダイバージェンスを定義するために凸関数が登場した。凸関数といえば皆さん何を思い浮かべるだろうか?いろいろあると思うが、凸関数にまつわる重要な概念としてLegendre変換が挙げられる。Legendre変換を行うことで、凸関数が定義された空間の双対空間、及び双対凸関数を得ることができる。
最終的には多変数の場合を考える必要があるが、まずは1変数の場合から考えてみよう。
1変数凸関数のLegendre変換
1変数の滑らかな凸関数を考える。滑らかな凸関数の導関数は異なるに対して必ず異なる値を取る。逆に適当な実数を与えると、それを導関数の値とするような点が一意に決まる。
すなわち、の定義域を、値域をとすると、は全単射となる。のことを双対空間と呼ぶ。
ここで、に以下のような変換を施すことで双対空間に対して新たな関数を定める事ができる。
これをLegendre変換と呼ぶ。
右辺のを最大にするについて考えてみよう。最大値を与えるにおいては、この式をで微分したものが0となる必要がある。すなわち、以下が成立する。
すなわち、の値がとなるようなにおいては最大となる。これはつまり、の元と一対一に対応するの元を選べば良いということを意味する。
詳細は後述するが、実はも凸関数であり、これを双対凸関数と呼ぶ。そのため、に対して再度Legendre変換を施すことができるが、その結果は元の関数と一致する[2]。つまり、Legendre変換の逆変換はLegendre変換そのものである。これより、双対性というのはあくまで相対的な概念に過ぎないことが分かる。
多変数凸関数のLegendre変換
少々くどいかもしれないが、1変数のときと同じ議論を多変数についても行ってみよう。
2つ以上の変数を持つ滑らかな凸関数を考える。滑らかな凸関数の勾配ベクトルは異なるに対して必ず異なるベクトルとなる。逆に適当な実数値ベクトルを与えると、それを勾配ベクトルとするような点が一意に決まる。
この対応関係により、定義域との勾配ベクトルが取り得る値の間に一対一の対応関係が得られる。が成す空間のことを双対空間と呼ぶ。
すなわち、の定義域を、値域をとすると、は全単射となる。のことを双対空間と呼ぶ。
ここで、に以下のような変換を施すことで双対空間に対して新たな関数を定める事ができる。
これをLegendre変換と呼ぶ。
右辺のを最大にするについて考えてみよう。最大値を与えるにおいては、勾配ベクトルが零ベクトルとなる必要がある。すなわち、以下が成立する。
すなわち、の値がとなるようなにおいては最大となる。これはつまり、の元と一対一に対応するの元を選べば良いということを意味する。
証明は大変そうなので諦めるが、1変数の場合と同じくも凸関数であり、これを双対凸関数と呼ぶ。そのため、に対して再度Legendre変換を施すことができるが、その結果が元の関数と一致するというのも1変数の場合と同様である。
双対ダイバージェンス
双対凸関数は凸関数なので、これを用いると双対空間にもBregmanダイバージェンスを定義できる。
これを双対ダイバージェンスと呼ぶ。
元のダイバージェンスとの関係
双対ダイバージェンスと元のダイバージェンスとの間には重要な関係がある。以下でそれを導いてみよう。
について、双対空間において対応する点がそれぞれであるとする。このとき以下の式が成り立つ。
これらを双対ダイバージェンスの式に代入すると以下のようになる。
これにを代入すると以下のようになる。
結局、以下の式が得られた。
ダイバージェンスの定義を説明した際、ダイバージェンスは対称性を満たさないということを述べた。しかし、上式が示す通りBregmanダイバージェンスについては2つの引数を入れ替えたものは双対ダイバージェンスに一致するのである。元の空間だけでは対称性がないように見えるが、双対空間まで広げて考えるとこのように美しい対称性が現れるというのは非常に面白い。
ナブラを使わない表現方法
Bregmanダイバージェンスの定義式にはナブラ () が含まれており少々複雑である。実はこれはちょっとした式変形で回避できる。
これまでの議論が追えていれば簡単なので、以下に式変形だけ示す。
まとめ
本稿では情報幾何学のトピックのうち、Bregmanダイバージェンスとその双対ダイバージェンスに関する事柄について述べた。ダイバージェンスは対称性を持たないが、BregmanダイバージェンスについてはLegendre変換による双対空間まで考えることで美しい対称構造が得られることを確認した。
本稿ではまだ微分幾何学らしい概念は登場しなかった。つまり、ここで述べたことは情報幾何学の中ではまだまだ序の口ということである。次回以降、少しずつ幾何学的な内容に踏み込んでいきたいと思う。
参考
[1]
別冊数理科学 情報幾何学の新展開 2014年 08月号 [雑誌]
- 出版社/メーカー: サイエンス社
- 発売日: 2014/08/22
- メディア: 雑誌
- この商品を含むブログを見る
*1:甘利先生の本[1]ではダイバージェンスの微分可能性などに触れられないままいきなりTaylor展開しているところがもやもやする。あまり細かい数学的議論に重きを置いた本ではないので、これについては滑らかな関数であり、かつ剰余項は収束すると仮定を置いてしまうしかないのだろう。
*2:ダイバージェンスの引数に点を入れたり点の座標を入れたりと記号がぶれているが、本[1]に合わせた結果なので好意的に解釈して頂けるとありがたい。
*3:本[1]ではBregmanダイバージェンスの定義に用いる凸関数の性質について厳密な条件が記載されていない。議論を簡単にするために、ここでは滑らかな狭義凸関数であるとした。
クーポンコレクター問題の確率分布を解き明かす
クーポンコレクター問題というものをご存知だろうか?これは、例えば6種類のおもちゃが出るガシャポン*1があったとして、何回くらい引けば全種類引き当てる事ができるか?というようなことを考える問題である。
この問題に対して、平均や分散がどうなるかということは非常によく語られることである[1]。また、時として不等式による評価について議論している記事を見かけることもある[2]。
しかし、肝心の確率分布については議論される事が非常に少ない。あまりにも記事を見かけないので、私は当初クーポンコレクター問題の確率分布を求めることは不可能なのではないかとさえ思っていた。
それでもめげずに調べ続けた結果、私はついに確率分布について結論を出しているページを見つけた。本稿ではそれを紹介し、喜びを分かち合いたいと思う。
第2種スターリング数
クーポンコレクター問題の確率分布を求めるためには、第2種スターリング数について理解しておく必要がある。少し長いが、定義をWikipediaから引用する[3]。
定義も大切なのだが、第2種スターリング数は以下のように特徴付けられるということが重要である[3]。
クーポンコレクター問題の確率分布
準備が整ったので、確率分布を求めてみよう。以下の議論は全て[4][5]を参考にした。
集めるクーポンの種類を種類とし、初めて全種類のクーポンを取得できるまでの試行回数を表す確率変数をとする。この時、回目の試行で初めて全種類のクーポンを取得できる確率を求める。
回の試行により出現し得るクーポンの出方の総数はである。もし回目の試行で初めて全種類のクーポンが出るパターンの総数が分かれば、それをで割ったものが求める確率である。
回目の試行で初めて全種類のクーポンが出揃うということは、回目の時点で種類のクーポンがすでに出ている必要がある。このパターンの総数を求めるために、回目までの試行に対して1から順に番号を割り振る。そして、これらの番号付けられた試行を個のグループに分ける。同じグループに分けられた試行については同じクーポンが得られたと考える。この分け方のパターンの総数は第2種スターリング数となる。
第2種スターリング数は分けられたグループの間の順序は区別しないが、今はクーポンの種類は区別されるので、を掛ける。さらに、回目までに出る種類のクーポンは種類のうちどれであるかは問わないので、全てのパターンをカウントする必要がある。そのため、を掛ける。結局、回目の時点で種類のクーポンが出現するパターンの総数はとなる。
回目の試行でまだ出ていない最後のクーポンが出るパターンの総数は1なので、回目の試行で初めて全種類のクーポンが出るパターンの総数はとなる。以上の議論により次の式を得る。
計算してみよう
にいくつか具体的な数値を入れてを計算してみよう。手計算ではやっていられないので、pythonを利用する。第2種スターリング数はsympyのstirling関数を用いて計算することが出来るので、それを利用する[6]。数値だけ示しても分かり辛いので、結果をmatplotlibでグラフ化した。Python自体はpydroid3を使って実行した[7]。なお、sympyなどの必要なパッケージはあらかじめpipでインストールしておく必要がある。
計算に用いたソースコードを以下に示す。
from sympy.functions.combinatorial.numbers import stirling import matplotlib.pyplot as plt import math startCouponKind = 2 numCouponKind = 6 numTrial = 30 for k in range(startCouponKind, numCouponKind+1): x = [] y = [] for n in range(1, numTrial+1): stir = stirling(n-1, k-1, kind = 2) prob = math.factorial(k) * stir / (k**n) x.append(n) y.append(prob) plt.plot(x, y, label='k = {}'.format(k)) plt.legend() plt.savefig('/storage/emulated/0/coupon.png')
得られたグラフを以下に示す。
途中でピークを持ち、右側に裾野が広がっている様子が見て取れる。が小さいときに確率が0となる領域があるが、これはクーポンの種類よりも試行回数が少ないときの様子が表れているものである。
また、の増え方に対して、ピークの位置が右に移動していく速度の方がやや速いように見える。実際、全種類コンプリートするまでの試行回数の期待値はなので、これは理論的にも辻褄が合っている[1]。
まとめ
本稿ではクーポンコレクター問題の確率分布を明らかにし、実際に計算を行った結果を示した。クーポンコレクター問題ではパターンを数え上げる事が難しかったが、その難しさを既知の概念である第2種スターリング数に押し込めることで、理論的にスッキリとした結論を得ることができた。
これまで組み合わせ数学には興味がなかったが、本稿を書き上げるうちにその面白さを垣間見る事ができた。またいずれ体系的に勉強しよう。
参考
[1] クーポンコレクター問題 - Wikipedia
[2] コンプガチャの数理 -コンプに必要な期待回数の計算方法について- - doryokujin's blog
[3] スターリング数 - Wikipedia
[4] combinatorics - Probability distribution in the coupon collector's problem - Mathematics Stack Exchange
[5] CDF of probability distribution with replacement - Mathematics Stack Exchange
[6] Combinatorial — SymPy 1.3 documentation
[7] https://play.google.com/store/apps/details%3Fid%3Dru.iiec.pydroid3%26hl%3Dja%26referrer%3Dutm_source%253Dgoogle%2526utm_medium%253Dorganic%2526utm_term%253Dpydroid3%26pcampaignid%3DAPPU_1_5SOHXJe-E4-Pr7wPpLSfwAE
*1:これの呼び方は地方によって差があるような気がするが、自分の流儀で呼ばせて頂く。
いくつかのLie群がLie群であることを定義に戻って確かめる
Lie 群は難しい。この理由の1つは、議論の前提となる領域が広いことにあると思われる。Lie群とは群であり多様体であるような数学的対象である。そのため、定義を理解するだけで群論と多様体の知識が求められる。また、Lie群の教科書で最初に扱われるような基本的なLie群は行列群である。しかも、そのコンパクト性に着目した議論も多い。そのため、線形代数と位相空間の基礎的な事項も理解しておくことが望ましい。
繰り返すが、Lie群は難しい。私はここ最近Lie群を勉強し始めて、この事実を痛感している。こういう時は足元を一歩ずつ踏み固めて行くしかない。その一環として、本稿ではいくつかの基本的なLie群について、それらが本当にLie群になっていることを定義に照らし合わせて確認してみる。
本稿では私の独断で以下の2つのLie群を扱う。
- 一般線形群
- 直交群
準備
多様体上の写像が級であるということ
Lie群の定義の中で級写像という言葉が出てきた。この定義を[2]より引用する。
(1) かつ
(2) とに関するの局所座標表示が級である,
この2つの条件がなりたつことである. ただし, .
上記定義においてとすれば級写像の定義となる。
Lie群であることの確認
以上で準備が整ったので、Lie群であることの確認に移る。本稿では群であることの確認はサボり、それぞれのLie群について以下の3点を確認した。
一般線形群
級多様体であること
上次正方行列全体の集合をと書く。はの部分集合のうち、以下のように表されるものである。
実は、はの開部分集合となる。詳細は[3]の命題1.17に譲り、ここでは概要だけ説明する。まず、は連続写像である。このとき、と書ける。はの開集合なので、連続写像による逆像も開集合となる。
ここで、に属する行列の各成分を座標と見なすと、これはと同一視できる。そのため、
は級多様体となる。その開部分集合も級多様体となるので、は級多様体となる。このような多様体を開部分多様体と呼ぶ[2]。
直交群
級多様体であること
これを示すのは思いのほか難しいため、証明のアウトラインだけ述べることにする。詳細は[4]を参照されたい。
次実対称行列全体の集合をとする。はと同一視できるため、次級多様体である。
この時、以下のような写像を考える。
は級写像である。が直交行列のとき、その逆行列はとなる。そのため、となる。ここで、は単位行列である。
もしがの正則値であれば、先ほど提示した定理によりは次級多様体となる。そのためには、の全ての点における微分が全射になれば良い。具体的に微分計算を行い、それが全射であることを確かめるアプローチになるが、体力の限界なのでこれ以降は[4]にお任せする。
参考
[1] http://www.math.tsukuba.ac.jp/~tasaki/lecture/ln2010/2010t.pdf
[2]
- 作者: 松本幸夫
- 出版社/メーカー: 東京大学出版会
- 発売日: 1988/09/22
- メディア: 単行本
- 購入: 7人 クリック: 36回
- この商品を含むブログ (33件) を見る
[4] http://math.uchicago.edu/~may/REU2014/REUPapers/Rouse.pdf
今こそJordan標準形と向き合う
線形代数を勉強して、Jordan標準形という言葉を耳にしたことがない人はいないだろう。Jordan標準形とは、ざっくり言えば行列の対角化を一般化したようなものである。行列の対角化はいつでもできるとは限らず、報われない行列たちが存在する。一方、Jordan標準形は常に存在することが知られており、まさに行列界の救世主と言える。
私もかつて大学院入試の際にJordan標準形について勉強したことはある。しかし、専攻が情報系というのもあって、当時勉強したのは主にJordan標準形への変形方法だけで、その背後にある数学的な面白さについては理解していなかった。
そこで、本稿ではJordan標準形とは何なのか、その理論的な詳細について考えてみる。
行列は線形写像の映し鏡
始めに、本稿を読み進めるにあたって重要となる考え方について述べておく。
ベクトル空間上の線形写像は行列によって表現することができる。特に、線形変換は線形写像であるから、これも行列によって表現可能である。対角化やJordan標準形を考える上では、この逆を考えることが重要である。すなわち、ある行列に対して、それが何らかの線形変換の表現行列なのだと捉えるのである。
行列というのは線形変換をある基底に対して表現したものに過ぎず、基底の取り方によって姿を変え得る。唯一不変なのはその背後にある線形変換であり、線形変換を通して行列の振る舞いを考えることがJordan標準形の理解へと繋がる。
線形変換を通したベクトル空間の分解
固有空間への分解
次元ベクトル空間に対して、ある線形変換が定められており、個の固有値を持つとする。この時、各固有値について、それに対応する固有空間が存在する。ここでは線形変換の固有値、及び固有空間について述べているのであって、行列については一切触れていないことに注意されたい。
固有空間の基底は固有ベクトルであるから、固有空間に属する任意のベクトルにを作用させると、それらは単に元のベクトルの固有値倍となる。ゆえに、固有空間は不変な部分空間となる。
全ての固有空間の次元の和がに等しい場合、以下の式が成立する。
広義固有空間への分解
さて、いつもこのようになっていれば良いのだが、残念ながらそうはならないケースが存在する。すなわち、全ての固有空間の次元の和がを下回るような場合である。このような場合でも、何とかうまくを直和分解出来ないだろうか?
実は、これは可能である。が固有空間であるという条件を緩和して、不変性と直和分解されるという性質だけを担保することで、を先ほどと全く同じような直和分解の形に持ち込むことができる。
では、具体的にどのような部分空間に分解してやれば良いだろうか?それを考えるために、まずは固有ベクトルについて、以下のような式変形を行う。
これより、固有ベクトルというのはを作用させると零ベクトルになるようなベクトルであると言える。または、簡潔にである。
ここから着想を得て、だけでなく、 (は任意の自然数) を作用させて零ベクトルになるようなベクトルの集合を考えてみる。これが実はの部分空間となっており、さらに不変性と直和分解されるという性質を満たしている。このようにして得られる空間を広義固有空間と呼ぶ。これをと表記すると、やはり簡潔にと書ける。
少し確認してみよう。まず不変性について、以下の式を考える。
を作用させて零ベクトルになったので、が言える。
続いてが各の直和になることについてだが、これは思ったより証明が大変なので、ここではサボって[1]に譲ることにする。
直和分解について一点だけ注意事項を述べておく。ここまで広義固有空間への直和分解について説明したが、実は広義固有空間はさらに直和分解できる場合がある。具体的には、後述するJordan鎖の数だけさらに直和分解可能である。詳細はここでは述べないが、[2]などが参考になるだろう。
広義固有空間の基底
次に、の基底について考えてみよう。の次元をとする。固有ベクトルについて、を満たすベクトルを考える。このようなは存在するかもしれないし、しないかもしれない。もし存在すれば、となるため、が言える。しかも、これはのスカラー倍でもない。そのため、は一次独立である。
帰納的に、となるベクトルを考える。すると、となるためが言える。しかも、は一次独立になる。
基底は最大で個しか取れないので、この操作はどこかで頭打ちとなる。このようにして得られるベクトルの列をJordan鎖という。Jordan鎖は1つ以上存在し、全てのJordan鎖を構成する全ベクトルを寄せ集めると、これはの基底となる。これを広義固有ベクトルと呼ぶ。
広義固有空間の構造を完全に明らかにするためには、Jordan鎖は長さいくつのものが何本存在するのかを知る必要がある。これはの次元を順に計算し、それらがどのように増えていくかを調べれば分かる。が、込み入った話になるので詳細は[3]を参照されたい。
広義固有ベクトルを基底とした場合の表現行列
以上、線形変換の性質についていろいろと述べたが、ここからいよいよJordan標準形の話に入っていく。
いきなり天下り的だが、線形変換について、全ての固有値に対する広義固有ベクトルを全て集め、それらを基底とした場合の表現行列について考えてみよう。同じ広義固有空間から抽出した広義固有ベクトルは隣り合うように並べて、その中でさらに同じJordan鎖に属するベクトルも順に並べて添字をつけたものをとする。ここで、以下のような写像を定義する。
ここで、はの標準基底である。これによっての表現行列が定まる。によって実現される上の線形変換をとすると、以下のような可換図式が得られる。
これを成立させるためには、はどのような行列であれば良いだろうか?これを一般的な状況で説明するのは非常に煩雑なので、ここでは以下のような具体的な設定の元で議論を進める。
まず、上で示した可換図式によりとなる。また、具体的な設定の中で示した式を変形すると以下のようになる。
さらに、これらにを作用させると以下のようになる。
上式にを代入することで、は以下のような変換であることが分かる。
よって、は以下のような行列であることが分かる。
これはJordan標準形そのものである。結局、線形変換の基底として広義固有ベクトルを選んだ場合の表現行列こそが、Jordan標準形の正体なのである。
広義固有ベクトルへの座標変換
最後に、適当な行列をJordan標準形に変形するとはどういうことなのか、その意味を考えてみよう。
Jordan標準形になっていない次正方行列を考える。をあるベクトル空間上の線形変換の表現行列であると考えると、これは基底として広義固有ベクトル以外のものを選んだ場合であると解釈できる。これをJordan標準形に変形する事は、基底を広義固有ベクトルに取り替えることを意味する。
が表現行列となるようなの基底をとし、写像を以下のように定める。
すると、以下の可換図式が得られる。
これより、広義固有ベクトルを基底とした場合の変換は以下のようにして得られる。
は基底の取り替えを表す写像である。この写像の表現行列をとすると、よく見慣れたJordan標準形への変換式が得られる。
ちなみに、を具体的に求めると、これは広義固有ベクトルを列ベクトルとして順に並べた行列になっている。そのようになる理由は説明すると長くなるので、私の体力の都合により割愛する。
まとめ
本稿ではJordan標準形の理論的側面について述べた。結論として、Jordan標準形とは広義固有ベクトルを基底としたときの線形変換の表現行列であることが分かった。また、Jordan標準形への変換とは、基底を広義固有ベクトルに取り替える操作であることが分かった。
本稿ではJordan標準形の応用面について触れることが出来なかった。これについてはまた機会があれば調べてみたい。
参考
[1] ときわ台学/固有値論/一般固有値問題,一般固有空間,ジョルダン標準形
[2]
- 作者: 齋藤正彦
- 出版社/メーカー: 東京大学出版会
- 発売日: 1966/03/31
- メディア: 単行本
- 購入: 4人 クリック: 102回
- この商品を含むブログ (47件) を見る
固有ベクトルの観点から線形変換を掌握する
線形代数において、固有値と固有ベクトルの話題は花形である。これらは理論的に美しいだけでなく、応用上様々な場面に登場し、重宝されている。中でも固有値が力を発揮するのは、やはり行列の対角化を行う時であろう。すなわち、n次正方行列がある条件を満たすと、ある変換行列が存在してが対角行列になるのである。
では、対角化が可能となるための「ある条件」とは一体なんだろう?それは、固有値の (固有方程式の解としての) 重複度と、その固有値に対応する固有空間の次元が全ての固有値に対して等しいことである。これは対角化可能であるための必要十分条件となっている。
そう、固有値というのは実に厄介で、例えば固有方程式を解いた結果、が重解として得られたとしても、に対応する固有空間は必ずしも2次元になるとは限らないのである。
以上の事実から、行列は固有値の数と重複度、および固有ベクトルの次元によって、いくつかの種類に分類出来そうな気がしてくる。そのように分類された行列のクラスは、それぞれ何か特徴的な性質を持つのだろうか?
本稿ではこのぼんやりとした疑問の答えに迫るべく、前半は対角化について調べ、後半は具体例を頼りに固有値・固有空間が反映する行列の性質について調べてみようと思う。
対角化とは何か?
まずは対角化について考えてみよう。対角化と言えばという変換の仕方が特徴的である。これの意味するところを考えることによって、対角化について理解を深めていこう。
線形変換の表現
行列は線形変換と密接な関係にある。すなわち、任意の線形変換は行列によって表現することができる。の意味を理解する上では、Aをある線形変換の表現行列と捉えるのがよい。
まず、線形変換の定義を[1]より引用する。
の次元をnとする。の1つの基底をとすると、の任意の元は以下のように基底の線型結合で表すことができる。
ここで、をの線形変換で写したものはやはりの元となる。よって以下のように同じ基底で表すことができる。
すると、変換前後の係数の間には以下のような関係が成立する。
上の行列が線形変換の表現行列である。両辺のベクトルの右下にeと書いたのは、これが基底によるベクトルであることを示している。表現行列を簡潔にと表した式は以下のようになる。
基底の取り替え
次に、線形変換をの別の基底で表現するとどうなるか考えてみよう。そのような基底をとする。すると、先ほどと同じように変換前後のベクトルは以下のように表される。
基底の取り替えにおいて重要な考え方は、元の基底に対する表現行列をできる限り活かすことである。そのために、ではなく入力として与えるベクトルの方を変換することを考える。これを実現するためには、以下のような行列を利用する。
このような行列を基底の取り替え行列と呼ぶ。これより、は以下のように表現できる。
異世界を旅して帰還する
基底の変換後の式の両辺にをかけると以下のようになる。
が基底を用いた場合のの表現行列となる。
普通はここで話はおしまいである。基底を変換した後の表現行列が求められたのだから、めでたしめでたしというわけだ。しかし、という形の変換は線形代数に限らずいろんな数学の分野でよく見かける形であり、もう一段抽象的なレベルでの意味がある。これを少し掘り下げて考えてみよう。
まず、行列は基底の世界で表現されるベクトルに対して適用可能な行列である。これを別の世界のベクトル、すなわち、基底で表現されるベクトルに適用したいと思ったら、一度の世界からの世界に移動する必要がある。すると、移動後のベクトルにはを適用することができる。最後に、を適用して得られたベクトルを元の世界に戻してやれば、結局の世界のベクトルにを適用出来たことになる。以下に図を示す。
このようにで変換を挟み込むことは、その変換が適用可能な世界へと移動し、変換が終わったら元の世界に戻してやるような効果がある。これが線形変換の表現行列を別の基底で表したベクトルに適用できるからくりである。
対角化は座標変換
ここまで座標変換の話ばかりしてきた訳だが、座標変換と対角化の関係について述べておく。ずばり対角化とは、線形変換の基底を固有ベクトルから成る基底に変換する操作のことである。そして、対角化可能であるとは、基底となるような固有ベクトルの組が存在することを意味している。
逆に、もし固有値の重複度より固有ベクトルの次元が小さいものが存在すると、対象となる線形空間の次元に対して固有ベクトルの本数が足りなくなってしまい、基底を作れなくなる。この場合は対角化不可能となる。
基底の取り替え行列としては、のn個の列固有ベクトルを並べた行列を取れば対角化できる。計算の過程を以下に示す。
固有値・固有ベクトルは何に紐づくものか?
ここで注意点を1つ。世の中ではよく「行列の固有値」とか「行列の固有ベクトル」という言い方をする。これは別に間違っていない。実は、線形変換に対しても固有値・固有ベクトルという概念が存在する。
まず固有値についてだが、行列の固有値はのサンドイッチ変換に対して不変となる。そのため、線形変換の固有値とは「任意の基底に対する表現行列の固有値である」と定義しておけば、それは一意に定まる。
多様体や微分幾何学なんかが代表的であるが、座標系に依存しない量や概念というのは、その数学的対象の本質的な性質を表していると考えられるため、一般にとても重要である。
一方、固有ベクトルは座標系の取り方によって変わる。このように、固有値と固有ベクトルでは不変となる範囲が異なるので注意が必要である。
固有値・固有空間に着目した線形変換の分類
ここまでで固有値・固有ベクトルとかなりお友達になれたはずなので、本題に入ろう。線形変換が固有値の数や重複度、また固有空間の次元とどのような関係にあるのかを調べてみよう。簡単のために、話を上2次の正方行列に絞る。
上2次の正方行列は以下のように分類できる。
以下では分類された各項目の線形変換がどのような振る舞いをするのか、例を用いながら調べてみる。
異なる2つの実固有値を持つ場合
例として以下の行列を考える。
sage: A = matrix(QQ, [[1, -1/4], [-1/2, 5/4]]) sage: for var in A.eigenvectors_right(): ....: print var ....: (3/2, [ # 固有値1つ目 (1, -2) # 固有ベクトル ], 1) # 重複度 (3/4, [ # 固有値2つ目 (1, 1) # 固有ベクトル ], 1) # 重複度
この線形変換を可視化したものを以下に示す。
ここで、黒の矢印は基底、グレーの点線矢印は基底にを作用させて得られるベクトルである。赤の矢印は固有ベクトル、オレンジの点線矢印は固有ベクトルにを作用させて得られるベクトルである。また、水色の矢印は、矢印の根元の位置ベクトルが、によって矢印の先端に写ることを意味している。
これを見ると、Aの作用によって空間が2つの固有ベクトルの方向に伸び縮みしているのが分かる。これより、このタイプの線形変換は固有ベクトル方向の拡大・縮小を表すと考えられる。ただし、伸びるのか縮むのか、またその程度がどれくらいであるかは固有値によって決まる。
1つの実固有値を持ち、固有空間の次元が2の場合
例として以下の行列を考える。
sage: A = matrix(QQ, [[2, 0], [0, 2]]) sage: for var in A.eigenvectors_right(): ....: print var ....: (2, [ # 固有値 (1, 0), # 固有ベクトル1つ目 (0, 1) # 固有ベクトル2つ目 ], 2) # 重複度
この線形変換を可視化したものを以下に示す。
これを見ると、Aの作用によって空間が原点を中心に拡大されているのが分かる。これより、このタイプの線形変換は拡大・縮小を行うものと考えられる。
一点補足だが、このケースの線形変換の表現行列は単位行列の定数倍しかあり得ない。のただ1つの固有値をとすると、を対角化した行列はとなる。対角化のための変換行列をとすると、結局以下のようになる。
1つの実固有値を持ち、固有空間の次元が1の場合
例として以下の行列を考える。
sage: A = matrix(QQ, [[11/6, -1/3], [1/3, 7/6]]) sage: for var in A.eigenvectors_right(): ....: print var ....: (3/2, [ # 固有値 (1, 1) # 固有ベクトル ], 2) # 重複度
この線形変換を可視化したものを以下に示す。
これを見ると、原点を通る固有ベクトルによって引かれる直線より下側では右向きの、上側では左向きの流れがあるように見える。これより、このタイプの線形変換は固有ベクトルと平行な方向に歪みを与える働きがあると考えられる。
実固有値を持たない場合
例として以下の行列を考える。
sage: A = matrix(QQ, [[1, -1/2], [1/2, 1]]) sage: for var in A.eigenvectors_right(): ....: print var ....: (1 - 0.50000000000000000?*I, [(1, 1*I)], 1) # 固有値が虚数 (1 + 0.50000000000000000?*I, [(1, -1*I)], 1)
この線形変換を可視化したものを以下に示す。
これを見ると、螺旋のような渦巻きが現れている。これより、このタイプの線形変換は回転と拡大・縮小の組み合わせになっていると考えられる。