Topological data analysis2. 自己紹介
数学者 (力学系,応用数学)
4 月から東北大の WPI-AIMR に移ります
WPI(World Premier International Research Center
Initiative)
Advanced Institute for Materials Research
仙台駅前 (誇張あり) に引越ししました
Ruby
Ruby/SDL
Ruby Reference manual
net/*, rexml, openssl など
KMC サーバの保守管理をしていました
大林一平 (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 2 / 30
10. 穴の種類について
3 次元であれば,穴の種類は 2 つある.
ドーナツの穴,筒
穴の内側が見える
紐を通せる
豆腐の鬆,風船
穴の内側が見える
紐を通せない
実は 0 次元の穴を連結成分の個数とすると都合がよい.
大林一平 (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 10 / 30
13. 頂点の数 = 40
辺の数 = 62
ビットマップの画素数 = 21
(面の数) = (辺の数) − (頂点の数) + 1 = 62 − 40 + 1 = 23
(画像の穴の数) = (面の数) - (画素数) = 2
画像の連結性を仮定すれば数を数えるだけで穴の個数
がわかる
大林一平 (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 13 / 30
14. 1次元の穴を定義してみよう
以下の図には,頂点が 6 個,辺が 7 個,面が 1 個あり,
穴は 1 個である.
ここで突然であるが,係数が Z/2Z で基底が頂点/辺/面
であるベクトル空間を C0, C1, C2 と置く.係数が Z/2Z
だと同じものを 2 つ足すと 0 になる.
大林一平 (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 14 / 30
15. 穴とは? →ループではないか.
線形写像 ∂1 : C1 → C0 を,
∂1(辺) = (辺の一方の頂点) + (辺のもう一方の頂点) と
すると,∂1(ループ) = 0 となっている.
つまりループとは ker∂1 で表されるのでは? ループの
個数とは dim ker∂1 では?
大林一平 (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 15 / 30
18. 線形写像 ∂2 : C2 → C1 を,∂2(面) = (面の各辺) で定
義すると,∂2(A) の像がループになっている.
→これが埋まっているループだろう.→つまり埋まっ
ているループの個数は dim im∂2.
大林一平 (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 18 / 30
19. 結局,穴の個数は
dim ker∂1 − dim im∂2
と言える.で,これは行列の rank を計算すればよい.
行列の rank は掃き出し法で計算機で計算できる!
大林一平 (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 19 / 30
23. 穴の生死とパーシステントホモロジー
円の半径を 0 から大きくしていくことを考える.
a hole is born
at radius
接する
a hole is dead at radius
すると,ある r1 で穴が生じ,連続的に変化していって r2
で消える.この穴の種類と数に加えて,各穴の生死の情
報を保持しているのがパーシステンスホモロジーで
ある.
大林一平 (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 23 / 30
24. a hole is born
at radius
接する
a hole is dead at radius
穴の死の時刻 (半径) はおよそ穴の大きさを表して
いる
穴の生の時刻はループを構成する点の密度を表し
ている
生死の時刻差はそれが穴としてどれくらい意味が
あるか,を示している.
(ループを構成する点の密度)≈(穴の大きさ) ならばその
穴はあまり穴の体をなしていない
生死の時刻差が小さいならば,その穴はノイズ的なもの
と見なしてよい
大林一平 (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 24 / 30
25. パーシステンスダイアグラム
各「穴」の誕生時刻を x 軸に,死亡時刻を y 軸にプロッ
トしたもの
-1
-0.5
0
0.5
1
-1
-0.5
0
0.5
1
-1
-0.5
0
0.5
1
"./exmaple/circle.txt"
入力データ
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
"./h1.txt"
ここ
対
角
線
パーシステンスダイアグラム
対角線の側にある点は「ノイズ的」点.そこから離れた
点が 1 つある.これが入力データの中央の穴を表して
いる.
大林一平 (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 25 / 30
26. パーシステントホモロジー関連
実は点集合データ with 円 (or 球) でなくとも色んな設定
で計算できる.
点ごとに半径の大きさに重みを付けて考える
例えば高分子の原子配置データで原子の種類ごとに重み
を付けるとか
グレイスケールデータで二値化閾値を段階的に変
化させたときの穴の生成と消滅の様子を調べる
この場合は穴の大きさではなく「くっきり度」みたいな
ものを調べている
2 つの白黒データの「差」を穴の様子という観点か
ら調べる
データが何らかの理由で歪んだときの歪み具合を調べる
当然 3 次元とかでもできるよ
大林一平 (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 26 / 30
29. 参考文献
Jan Reininghaus, et al.: phat, dipha
高速&並列計算に対応した persistent homology 計算ラ
イブラリ
平岡裕章: タンパク質構造とトポロジー ―パーシ
ステントホモロジー群入門
日本語で唯一の本
H.Edelsbrunner, J.Harer: Computational
Topology, An Introduction. American
Mathematical Society, 2010
T.Kaczynski, K.Mischaikow, M.Mrozek:
Computational Homology, 2004
大林一平 (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 29 / 30