ホモロジーとは何か

xiangzeさんのブログ記事に凄く興味をもって、20代の頃に取り組んで挫折した代数トポロジーについてグーグル先生に教わった。

ホモロジー群の嬉しさ(プログラマ目線)

図形が「同じ」であることを数学的に定義する方法として、合同や相似というのは中学校でならうけど、トポロジー的に見て同じかどうかを数学的に厳密に定義するにはそれなりに追加の知識が必要になる。

でも、そういう「同じ」を数学的に定義する事でコンピュータで「同じ」かどうかの判定をさせることが出来るようになるので価値がある。

例えば、合同かどうかの判定が数学的にできるとどんなアプリケーションソフトウェアが実現できるだろうか。例えば3次元の物体の形が2つ与えられたときにその2つの形が同じかどうかを判定するというプログラムを作りたかったら、2つの図形をそれぞれ決められた手順でポリゴンに分割して、ポリゴンに含まれる各三角形が同形かどうかをしらべればもとの2つの形が同じだったかどうかを判定する事が出来る、とか。合同にもとづいて判定すれば図形が回転していたり鏡像反転してたりしても大丈夫だし、さらにポリゴン化する手続きの一貫性しだいではかなりロバストな形状一致判定プログラムが実現可能になる。

同様に、相似が定義できると、そうした形状の拡大縮小に対応できるようになる。

数学的な定式化は主に代数的な手続き、つまり図形を実際に描いてみることなく記号的な演算でそれを代行することによって、図形を描けないような高次元のものとか、関数や集合のように1点ずつプロットできないようなものとかを分析対象とすることが出来るようになる。

ホモロジー群は図形に空いた穴の数や空間の数、図形が何個に切り離されているかという性質を代数的な手続きによって定式化する方法。

もしそれが出来ると、直接図示できないような高次元のデータとか関数そのものとかを対象として、穴の数や空間の数やいくつに分割されているかといった性質を調べる事ができるようになる。xiangzeさんが紹介しているパーシステントホモロジーという手法はコンピュータ上で計算し易いようなホモロジーを定義する方法のようだ。

ホモロジー群の概要

群論を使うけど、群論の基礎的なところは本当に簡単なので箇条書きしておく。

  • 群というのは集合の一種。要素同士の掛け算ができる。正確な定義は群論ググること。
  • 掛け算の左右をひっくり返しても結果が変わらないような群をアーベル群と呼ぶ
  • 2つの群の間で掛け算の性質を変えないような対応付けを準同型と呼ぶ

準同型っていうのは例えば男女の恋愛市場を考えてみるとして、A君とB君がそれぞれCちゃんとDちゃんを好きだとしたらA君とB君を掛け算したようなX君がもしいたら、X君が好きな女性はCちゃんととDちゃんを掛け算したようなYちゃんになっているような、そういう特別な「好き」という対応関係。

つづいて群の核、群の像、正規部分群、商群

  • 女性の側にマドンナが一人いるとする
  • マドンナはすごい。マドンナはどんな女性Zと掛け算してもZにしかならない。
  • つまりマドンナは超絶美女なので掛け算相手にいくらでもあわせられるのだ。
  • そのマドンナのことを好きな男性たちのことを男性全体を群としたときの準同型の核と呼ぶ
  • いっぽうで、女性の中には全くモテない女性というのもいる
  • 少なくとも一人以上の男性に好かれている女性の全体を男性全体を群としたときの準同型の像と呼ぶ
  • 直感で予想されるとおり、核は男性全体の群の部分群だし、像は女性全体の群の部分群になる
  • さて、マドンナというのは何も3次元だけとは限らない
  • 2次元の女性全体の群について同様にマドンナというのがいる
  • 2次元のマドンナの事を好きな男性も核と呼ぶ
  • それは先ほど挙げた核とはまた違った男性陣だろう
  • さて生身の女性、2次元と2つ例を挙げたが、他にも色んな「好きの対象となる群」はありえる
  • そういう対象となる群にはかならずマドンナ的存在がある。例えば好きな動物ならパンダとか
  • そういうなにかしらマドンナ的存在を好いている男性グループのことを正規部分群とよぶ
  • 不思議な事に正規部分群のメンバーは実は男性の中でもリーダー的存在だという性質がある
  • つまり、正規部分群のメンバーはコミュニティの代表者だということが証明できる
  • 例えば2次元好きという準同型ではマドンナ好きの男性はそれぞれコミュニティを持っている
  • ちなみにコミュニティ同士での掛け算というのが定義できて、商群と呼ぶ
  • なぜかアーベル群の部分群は必ず正規部分群になるという性質がある

続いて単体と複体

  • 点、線分、三角形、三角すい、...と各次元におけるプリミティブな図形を単体と呼ぶ
  • プリミティブな図形である単体をうまくつないだものを単体複体と呼ぶ
  • 単体複体を使うと、任意の図形をプリミティブな図形の組み合わせで写し取れる
  • いってみればPhotoshopみたいなラスタじゃなくてイラレみたいなベクタで考える
  • 形が一つあっても、ベクタの取り方は無限にありうる
  • そこで、上で説明した商群の概念を応用する。ベクタのコミュニティを考えよう。
  • それができれば形の違いはベクタのコミュニティの違いで表現できるはずだ
  • 穴がどうなっているかの判断プログラムは、ベクタの境界を取り出すという操作を考えるとうまくいく。
  • 例えば、円(円周じゃなくて中身が詰まったもの)について考えてみよう
  • 円の境界は円周だ。円周の境界は、、なにもないの空だ。
  • これを逆手に取って、「境界があるならば中身がある」「境界がないなら穴がある」と定義する
  • そう定義するとうまくいく事が確かめられる
  • さて、ベクタと言ってるのは単体複体のことであった。
  • 単体複体はアーベル群で表す事ができる。ちょっと試せばそれはわかる。
  • 境界を取り出す操作はそのアーベル群の準同型として定義できる
  • ただし準同型であれば何でもいいというわけではなくて、上の「境界を取り出す」性質が必要だ
  • それは、任意のベクタに「境界の境界」という風に境界を取り出す操作を2回連続でやったら何も残らないという性質だ
  • しかしそんな適当な性質でいいのだろうか。
  • つまり「二回連続で適用したら何も残らない」ような準同型を境界と呼んじゃっていいのだろうか。
  • しかしそういう風に定義しておくと数学的に色々うまくらしいので、我慢して受け入れよう。
  • ちょっと上で述べた恋愛準同型で考えてみよう
  • 男性を俳優とそれ以外に分けて考えてみる
  • 女性の方は女性全体じゃなくて女優全体で考えてみる
  • つまり「俳優以外の男性全体」-好き->「女優全体」-好き->「俳優全体」を考える
  • このとき、好きという準同型が「境界を取り出す操作」になるとはいかなることなのだろうか
  • 境界の定義とは、境界の境界が空っぽということであった。
  • それは「少なくとも一人以上のファンを持つ女優」は実はみんな「たったの一人の俳優」ファンだったということだ
  • つまり、境界というのは「像が核に含まれる」という性質を持つ
  • 核のメンバーはリーダー的存在なのであった。
  • つまりたった一人の俳優のファンになっている女優は実は女優内の各派閥の長なのだ。
  • 像が核だということなので、世の男性たちは派閥のトップたちのさらにその一部に好みが集中しているということになる
  • つまり女優内の派閥のトップであってもファンが一人もいない女優もいっぱいいるということだ
  • さて、ここで考えたいのはもともと単体複体だからアーベル群なのであった。
  • アーベル群の部分群は正規部分群になるのだった。
  • つまり、派閥のトップをつとめる女優たちの中で、ファンを一人以上持つ女優はリーダーオブリーダーなのだ。
  • なので、そのリーダーオブリーダを穴の代表とすればそれを調べる事によって穴がどうなっているかを詳しく分類できるのだ
  • つまり、なんの図形もなしに一般的に「境界を取ると何も残らないようなベクタ」はいっぱいあるけど、
  • 「なんらかの図形の境界になるようなベクタ」はそいつらの正規部分群になるので、
  • それで商群を取ってやれば穴の数が同じものを同一視できるってことが数学的に言える
  • そういう商群をホモロジー群と呼ぶ

まぁ、ちょっとあれですけど、そういう事だと思います。