Topological data analysis
大林一平
京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST
2015 年 3 月 KMC 春合宿
大林一平   (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 1 / 30
自己紹介
数学者 (力学系,応用数学)
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
趣味など
数学
プログラミング
roguelike
シューティング
ゲーム音楽
非電源ゲーム
大林一平   (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 3 / 30
概要
ホモロジーとは図形の穴を分類し,その数を数え
ることである.
パーシステントホモロジーを使うと,穴の大きさ
なんかもある程度わかる
これらは計算機で計算可能である
計算してみよう
大林一平   (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 4 / 30
穴の大きさや数を調べてどうするの?
軽石や活性炭のような多孔質の物体では穴がその
機能性に重要
消臭剤
数や大きさが知りたい
大林一平   (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 5 / 30
完全に秩序的な構造(結晶)と完全にランダムな構造
(液体や気体) の中間的な構造を特徴付ける可能性
ガラスなど
結晶は群論的な構造
液体,気体は確率論的な構造 (統計力学など)
大林一平   (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 6 / 30
計算幾何学
データから計算機によって幾何的な情報を取りだす/計
算する
ボロノイ図
空間探索/検索
kd-tree
oct-tree
三角形分割
大林一平   (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 7 / 30
トポロジーとは?
幾何学の一分野で,空間,図形の「つながり具合を調べ
る」のが問題
例えば図形に穴が空いているかどうかといった問
題を考える
結び目 (knot) や組紐 (braid)
平面グラフ
この講座では,最も応用範囲の広い「ホモロジー」につ
いて考える
大林一平   (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 8 / 30
ホモロジー
図形の「穴」を分類して,その数を数える
穴の種類とは?
どうやって数えるの
大林一平   (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 9 / 30
穴の種類について
3 次元であれば,穴の種類は 2 つある.
ドーナツの穴,筒
穴の内側が見える
紐を通せる
豆腐の鬆,風船
穴の内側が見える
紐を通せない
実は 0 次元の穴を連結成分の個数とすると都合がよい.
大林一平   (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 10 / 30
浮き輪の穴は何個?
穴の内側は見れない
でも紐は通せる
実は 2 種類の穴の「両方」では?
大林一平   (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 11 / 30
平面グラフのオイラーの定理
平面グラフの辺,頂点,面,の数の間には以下の関係が
ある.
(面の数) − (辺の数) + (頂点の数) = 1
これはグラフが連結の場合.
この定理を使ってビットマップ画像の穴の数を数えて
みよう.
大林一平   (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 12 / 30
頂点の数 = 40
辺の数 = 62
ビットマップの画素数 = 21
(面の数) = (辺の数) − (頂点の数) + 1 = 62 − 40 + 1 = 23
(画像の穴の数) = (面の数) - (画素数) = 2
画像の連結性を仮定すれば数を数えるだけで穴の個数
がわかる
大林一平   (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 13 / 30
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
穴とは? →ループではないか.
線形写像 ∂1 : C1 → C0 を,
∂1(辺) = (辺の一方の頂点) + (辺のもう一方の頂点) と
すると,∂1(ループ) = 0 となっている.
つまりループとは ker∂1 で表されるのでは? ループの
個数とは dim ker∂1 では?
大林一平   (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 15 / 30
緑のループは 2 つの赤のループの和ということに注意す
ると dim ker∂1 = 2
大林一平   (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 16 / 30
この図形ではループの一方は埋まっているため穴では
ない.
→埋まっているループとそうでないループを区別する
必要がある.
大林一平   (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 17 / 30
線形写像 ∂2 : C2 → C1 を,∂2(面) = (面の各辺) で定
義すると,∂2(A) の像がループになっている.
→これが埋まっているループだろう.→つまり埋まっ
ているループの個数は dim im∂2.
大林一平   (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 18 / 30
結局,穴の個数は
dim ker∂1 − dim im∂2
と言える.で,これは行列の rank を計算すればよい.
行列の rank は掃き出し法で計算機で計算できる!
大林一平   (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 19 / 30
2次元の穴の場合
この場合は 3 次元データを考える必要がある.頂点,
辺,面に加えてキューブを考える.そして,
∂3(キューブ) = キューブの各面
∂2(面) = (面の各辺)
とすると,先程と同様にして
dim ker∂2 − dim im∂3
が 2 次元の穴の個数.
大林一平   (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 20 / 30
色々なcomplex
長方形以外でも同じ計算法で様々な場合に計算でき
ます.
Vietris-Rips complex
(n-単体はPairwise で近い
n+1個の頂点からなる)
Simplicial complex
(三角形分割)
Alpha complex
(ボロノイ図から定義される)
実習には alpha complex を使います.
大林一平   (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 21 / 30
α-complex
point clound data(空間上の点の集合,左図) に円 (すべ
て同じ半径) を貼り付けて穴を見付ける
大林一平   (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 22 / 30
穴の生死とパーシステントホモロジー
円の半径を 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
a hole is born
at radius
接する
a hole is dead at radius
穴の死の時刻 (半径) はおよそ穴の大きさを表して
いる
穴の生の時刻はループを構成する点の密度を表し
ている
生死の時刻差はそれが穴としてどれくらい意味が
あるか,を示している.
(ループを構成する点の密度)≈(穴の大きさ) ならばその
穴はあまり穴の体をなしていない
生死の時刻差が小さいならば,その穴はノイズ的なもの
と見なしてよい
大林一平   (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 24 / 30
パーシステンスダイアグラム
各「穴」の誕生時刻を 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
パーシステントホモロジー関連
実は点集合データ with 円 (or 球) でなくとも色んな設定
で計算できる.
点ごとに半径の大きさに重みを付けて考える
例えば高分子の原子配置データで原子の種類ごとに重み
を付けるとか
グレイスケールデータで二値化閾値を段階的に変
化させたときの穴の生成と消滅の様子を調べる
この場合は穴の大きさではなく「くっきり度」みたいな
ものを調べている
2 つの白黒データの「差」を穴の様子という観点か
ら調べる
データが何らかの理由で歪んだときの歪み具合を調べる
当然 3 次元とかでもできるよ
大林一平   (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 26 / 30
色々なアイデア
パーシステンスダイアグラムを特徴量として機械
学習する
適当なベクトル空間に埋め込む方法がいくつか開発され
ている
カーネル関数を構成してカーネル法を用いる
2D, 3D の両方のデータに使える
2D/3D 画像など
パーシステンスダイアグラムでコンピュータ診断
支援
血管とか臓器のデータとか
CT スキャンのような 3 次元データを取る方法が色々活用さ
れている
適当な特徴量に集約する
分子の変形性と穴の関係
大林一平   (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 27 / 30
ソフトウェアについて
パーシステントホモロジーを計算するソフトウェアは
結構たくさんある
radhom
http://capd.sourceforge.net/capdRedHom/
perseus
http://www.sas.upenn.edu/~vnanda/perseus/
phat http://code.google.com/p/phat/
dipha https://code.google.com/p/dipha/
α-complex はドロネー三角形分割で計算できるので,
適当な計算幾何のソフトウェアを使う (CGAL など)
大林一平   (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 28 / 30
参考文献
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
まとめ
ホモロジーとは図形の穴を分類し,その数を数え
ることである.
パーシステントホモロジーを使うと,穴の大きさ
なんかもある程度わかる
これらは計算機で計算可能である
パーシステントホモロジーは幾何データの重要な
特徴量になりうる
夢は広がる
大林一平   (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 30 / 30

Topological data analysis