ねこでも分かるパーシステントホモロジー

2019-07-23 2020-04-14 math Topology, Homology, PersistentHomology

データ分析に応用されているパーシステントホモロジーについてざっっくり解説しました.

参考文献

どちらも平岡裕章先生が書かれたものです.

数学に素養のある方なら論文にも目を通すことが可能でしょう. 以下の記事で私が読んだ論文をまとめてあります. 興味のある方はご覧ください.

パーシステントホモロジーに関する文献リスト

ホモロジー

パーシステントホモロジーはホモロジーの一種です. ホモロジーが何なのかは以前記事を書きました.

ねこでも分かるホモロジー

ここでも少しだけホモロジーの意味を確認しておきましょう. 位相空間 \(A\) に対して \(n\) 次ホモロジー群 \(H_n(A)\) というものを考えることができます. 少し仮定を加えることで \(H_n(A)\) はベクトル空間になってくれます(ベクトル空間は群の特別バージョン). すると以下のような解釈をすることができます.

  • \(\dim H_0(A)\)\(A\) の連結成分の数
  • \(\dim H_1(A)\)\(A\) の1次元の穴の数
  • \(\dim H_2(A)\)\(A\) の2次元の穴の数
  • \(\dim H_n(A)\)\(A\)\(n\)次元の穴の数

つまり, ホモロジー群というものは位相空間の大域的な性質を抽出してくれる道具なのです.

パーシステントホモロジー

データを調べる道具の代表例として平均値や分散などが挙げられますが, これらに共通しているのは, データを要約しているという点ですね. となれば位相空間の大域的な情報を要約してくれるホモロジーもデータ分析に使えるのではないかという気がしてきます. ホモロジーをデータ分析に適用するアイデアのひとつであるパーシステントホモロジーの定義を見ていきましょう.

単純にホモロジーを適用してみる

データ点はある位相空間上の点であるとします. 例えば2次元ユークリッド空間 \(\mathbb{R}^2\) 内の散布図を考えているような感じです. データ(=データ点の集合)を \(A\) とし, データ点の個数を \(N\) とします.

まずは単純にデータ点の集合にホモロジーを適用することを考えてみます.

データ点は離散的なので, 1次元以上の穴を持ちません. つまり \(i \geq 1\) に対して \(\dim H_i(A) = 0\) です. また \(\dim H_0(A) = N\) ですね.

これはホモロジーがなんの情報も与えてくれないことを意味します. データの分布がどうなっているのかを知りたいのに, データ点の個数しか教えてくれないのですから.

アイデア

ではどうしたらよいのでしょうか. データが離散点の集合であることが問題なのですから, 各データ点を太らせればいいですね! これがパーシステントホモロジーのアイデアです.

以下のような散布図を具体例にとってこのアイデアを説明していきます.

各点を少しずつ太らしていって, その様子を観察していきます.

少しだけ太らせてみました. とくに穴ができたわけでもなく, 連結成分の個数にも変化はありません. そういえば最近タピオカ屋さんが乱立してますね.

もう少し太らせてみます. すると円同士が重なるところがでてきました. 連結成分の個数が減少したということですね.

さらに太らせると輪っかが出来上がります. これで \(\dim H_1\)\(0\) ではなくなりました.

円が2つできました. ミスタードーナツ感がありますね.

さらに続けると小さい方の輪っかが消えました.

最終的には大きいほうの輪っかも埋まることが想像できますね. それ以降はどれだけ点を太らせていっても, 連結成分や輪っかの個数に変化はありません.

データ点を太らせることで, 離散点の集合からは取り出せなかった情報が取り出せるようになりました.

パーシステント図

各円の半径 \(r\) を時間に見立て, いつ輪っかが発生・消滅したかをプロットしたものをパーシステント図といいます.

一般に \(n\) 次元のデータを考えた場合, \(n-1\) 次元までの輪っかが発生する可能性があります. \(k\) 次元の輪っかの発生と消滅をプロットしたものを, \(k\) 次パースステント図などと呼びます.

今回の場合でいうと, 1次元の輪っかが大小2つできました. それらが発生・消滅したときの \(r\) の値が以下のようであったとします.

1次元の輪っか 発生時の \(r\) 消滅時の \(r\)
2 4
3 7

この場合「1次のパーシステント図」は以下のようになります.

パーシステント図は以下のような特徴を持ちます.

  • もとのデータが高次元に住んでいても, パーシステント図は2次元で表現される.
  • \(n\) 次パーシステント図の点の数は, データ点を太らせていく過程で発生した \(n\) 次元の穴の総数と等しい.
  • 発生時刻よりも消滅時刻のほうが遅いため, すべての点は対角線よりも上側に存在する.

各輪っかの存続時間(消滅時の \(r\) \(-\) 発生時の \(r\))のことをパーシステンスといいます. これはパーシステント図でいうと, 以下のような赤線の長さに対応します.

パーシステント図の使い方

パーシステント図の使いみちのひとつはデータの比較です. つまりパーシステント図が大きく異なるならば, もとのデータは別物だと結論づけられます.

ただしこの使い方ができるのも「似たようなデータからは似たようなパーシステント図が得られる」という安定性があるからです.

例えば上に挙げた散布図で考えてみます. ひとつのデータ点の位置を少しだけずらしたとしても, 2つの輪っかの発生・消滅タイミングは大きくは変化しませんよね. つまりパーシステント図もあまり変化しないということです.

このような安定性があるため, データの比較に利用することができます.

まとめ

めちゃくちゃ簡単にパーシステントホモロジーのこころを解説しました.

数学的にもっとしっかり知りたいという方ははじめに挙げた参考書籍である, タンパク質構造とトポロジーを読んでみてください. 日本語で書かれた(たぶん)唯一の解説書籍です.

具体的な応用例を知りたいという方は, これもはじめに挙げたスライドを読んでみてください.