30
Topological data analysis 大林一平 京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST 2015 3 KMC 春合宿 大林一平   (京大マイコンクラブ (KMC)/京都大学数学教室Topological data analysis 2015 3 KMC 春合宿 1 / 30

Topological data analysis

  • Upload
    -

  • View
    2.515

  • Download
    2

Embed Size (px)

Citation preview

Topological data analysis

大林一平

京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST

2015年 3月 KMC春合宿

大林一平   (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 1 / 30

自己紹介

数学者 (力学系,応用数学)I 4月から東北大のWPI-AIMRに移ります

F WPI(World Premier International Research CenterInitiative)

F Advanced Institute for Materials ResearchI 仙台駅前 (誇張あり)に引越ししました

RubyI Ruby/SDLI Ruby Reference manual

F 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

穴の大きさや数を調べてどうするの?

軽石や活性炭のような多孔質の物体では穴がその機能性に重要

I 消臭剤

I 数や大きさが知りたい

大林一平   (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 5 / 30

完全に秩序的な構造 (結晶)と完全にランダムな構造(液体や気体)の中間的な構造を特徴付ける可能性

I ガラスなど

I 結晶は群論的な構造

I 液体,気体は確率論的な構造 (統計力学など)

大林一平   (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 6 / 30

計算幾何学

データから計算機によって幾何的な情報を取りだす/計算する

ボロノイ図

空間探索/検索I kd-treeI 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つある.

ドーナツの穴,筒I 穴の内側が見える

I 紐を通せる

豆腐の鬆,風船I 穴の内側が見える

I 紐を通せない

実は 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

α-complexpoint 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

穴の死の時刻 (半径)はおよそ穴の大きさを表している

穴の生の時刻はループを構成する点の密度を表し

ている生死の時刻差はそれが穴としてどれくらい意味があるか,を示している.

I (ループを構成する点の密度)≈(穴の大きさ)ならばその穴はあまり穴の体をなしていない

I 生死の時刻差が小さいならば,その穴はノイズ的なもの

と見なしてよい

大林一平   (京大マイコンクラブ (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球)でなくとも色んな設定で計算できる.

点ごとに半径の大きさに重みを付けて考えるI 例えば高分子の原子配置データで原子の種類ごとに重み

を付けるとか

グレイスケールデータで二値化閾値を段階的に変化させたときの穴の生成と消滅の様子を調べる

I この場合は穴の大きさではなく「くっきり度」みたいな

ものを調べている

2つの白黒データの「差」を穴の様子という観点から調べる

I データが何らかの理由で歪んだときの歪み具合を調べる

I 当然 3次元とかでもできるよ

大林一平   (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 26 / 30

色々なアイデア

パーシステンスダイアグラムを特徴量として機械学習する

I 適当なベクトル空間に埋め込む方法がいくつか開発され

ている

I カーネル関数を構成してカーネル法を用いるI 2D, 3Dの両方のデータに使える

F 2D/3D画像などパーシステンスダイアグラムでコンピュータ診断支援

I 血管とか臓器のデータとか

F CTスキャンのような 3次元データを取る方法が色々活用されている

I 適当な特徴量に集約する

分子の変形性と穴の関係

大林一平   (京大マイコンクラブ (KMC)/京都大学数学教室/JST-CREST)Topological data analysis 2015 年 3 月 KMC 春合宿 27 / 30

ソフトウェアについて

パーシステントホモロジーを計算するソフトウェアは

結構たくさんある

radhomhttp://capd.sourceforge.net/capdRedHom/perseushttp://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, diphaI 高速&並列計算に対応した persistent homology計算ライブラリ

平岡裕章: タンパク質構造とトポロジー―パーシステントホモロジー群入門

I 日本語で唯一の本

H.Edelsbrunner, J.Harer: ComputationalTopology, An Introduction. AmericanMathematical Society, 2010T.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