位相データ解析を紹介する

はじめに...

〜〜Advent Calendar2024 8日目〜〜

こんにちは。データコース学部4年生のDaichiです。大学では主にAI・機械学習の勉強をしています。最近は卒論のテーマである位相データ解析(以下TDA:Topological Data Analysis)について勉強しているので、この手法の概要をできるだけ初学者にもわかりやすいようにまとめてみたいと思います。

Attention!!
この記事では数学的な厳密性には触れません(というか触れられるほど理解でできていない...)
あくまでお気持ちだけを語っていくので悪しからず。

TDAとは?

近年、ビッグデータの活用がますます注目されています。しかし、膨大で複雑な構造を持つデータに対して、従来の手法ではその本質を十分に捉えきれない場合があります。こうした課題に対する新しいアプローチの一つがTDA(Topological Data Analysis)です。
TDAは、トポロジー(Topology)という数学分野で使われる発想や手法を、データ解析に応用する新しい分野です。従来のデータ解析は、統計学や機械学習など、確率論に基づく手法が主流でしたが、TDAではデータの「形」に注目し、その位相的・幾何的な構造を抽出して解析します。言い換えれば、TDAは「データの形から本質を読み解く」ための方法論です。

従来のデータ解析
→ 相関分析、線形回帰、主成分分析、etc

トポロジーってなに?

トポロジーと聞けば数学をかじっている人はおそらくドーナツとマグカップを想像すると思います。余談ですが、トポロジーについて調べている時に以下のような文章が出てきてぶっ刺さりましたね。

小学生「位相って何?」
あなた「穴の開いたドーナツと、1つ取っ手の付いたコップが位相的には同じになるんだよ。」
小学生「いや、位相的に主張できることではなく位相とは何かを訊いているんだけど。あと穴の定義は?」

気を取り直して...
トポロジーとは、「形」を扱う数学の一分野です。ただし、私たちが普段考える形(例えば四角形や円の面積、長さなど)とは少し異なり、トポロジーが注目するのは「つながり方」や「穴の数」などの変わらない性質です。このような性質を位相的不変量と呼びます。

ドーナツとマグカップの例


トポロジーを説明するとき、よく登場する例がドーナツとマグカップです。見た目は全然違いますが、これらは「ゴムのように引っ張ったり縮めたりして変形できる」というルールの下では同じものとして扱われます。なぜなら、どちらも1つの穴を持つからです。

  • ドーナツ:中央に1つの穴があります
  • マグカップ:取っ手部分に1つの穴があります

このように、物体の「穴の数」や「つながり方」は、形が変形しても変わりません。これがトポロジー的に重要なポイントです。

データの「形」をどう見るの?

さて、「トポロジーでは形を見る」と言いましたが、これをデータ解析にどう応用するのでしょうか?ここで考えるのは、単なる物体ではなく、データの形です。例えば、以下のような質問を考えてみてください:

  • データの中にどんな構造があるのか?(つながり方やクラスタ)
  • その構造は、どのくらい本質的な特徴か?

こうした疑問に答えるために、TDAではデータから「形」を構築し、その特徴を抽出します。その具体的な方法の1つが「パーシステントホモロジー」と、それを可視化したパーシステンス図です。

パーシステンスホモロジーの概要

パーシステンスホモロジーはTDAの代表的な分析手法です。データに潜む「形」を定量的に捉え、その特徴を解析することを目的としています。
まず以下のような平面上の点からなる点群のデータを考えてみましょう。

このデータを見たとき、多くの人が次のような感覚を抱くかもしれません。
(a): 塊が2つあるな
(b): 塊が3つあるな
(c): 大きさの異なる輪っかが2つあるな
これをもう少し厳密に言うと、有限個の点からなるデータの背後に連続的な図形が存在するという仮定をおき、その図形の大域的な特徴(例: 塊の数や輪っかの数)を捉えるのがパーシステンスホモロジーの役割です。

点群から形状を推定する方法

私たち人間は、この点群を直感的に見て「形」を想像することができます。しかし、コンピュータがただの点の集まりから塊や輪っかの数を推定するには、どのようなアプローチが必要なのでしょうか?
1つの方法として、各データ点を中心とする適当な半径の円盤を描き、その和集合を考えることが挙げられます。以下の図のように、円盤が重なり合うことで塊や輪っかの構造が見えてきます。

ではこの円盤の半径rはどうやって決めるのでしょう?
大き過ぎたら全ての点が繋がってしまい輪っかを見逃すかもしれません。逆に小さ過ぎたら円盤の同士が触れることなく輪っかや塊が発生しません。
そこで半径rを固定するのではなく、rを小さい値から大きい値まで動かして特徴の変化を追跡することを考えます。以下の図を見てください。

左の点群に注目してください。rを徐々に増やしていくと左の輪っかはr = 0.2で生まれてr = 0.4で潰れていることがわかります。このようにパーシステンスホモロジーは、穴が生まれてから消えるまでの過程の追跡を定式化したものです。

パーシステント図

パーシステントホモロジーで得られた構造の発生と消滅の情報を、視覚的に表現したものがパーシステンス図(Persistence Diagram)です。
パーシステント図の読み方
以下のパーシステンス図を例に説明します。この図は一様分布に従う乱数によって生成された2次元上の点100個に対するパーシステンス図です。(np.random.seed(42))

100個の点の散布図

パーシステンス図の意味

パーシステンス図では、穴の生存期間を点の座標としてプロットします。

  • 横軸(Birth): 穴が出現した時点の半径r
  • 縦軸(Death): 穴が消滅した時点の半径r
  • 対角線(Birth = Death): 穴がすぐに消滅した特徴を示し、主にノイズに対応します
    • 生存期間が極端に短いため、データの本質的な構造ではなく、ノイズや誤差による偶然的な特徴とみなされます
      例えば、先ほどの例では以下のようにプロットされます:
      ( r = 0.2 ) で出現し、( r = 0.4 ) で消滅する
      → 座標 ((0.2, 0.4)) に点がプロット

H_0とH_1の違い
このパーシステンス図には異なる色の点が描かれています。それぞれの色は、データ内の異なる次元の構造を表しています。
H_1は輪のような閉じた構造を表します。こっちは直感的にイメージしやすいと思います。
H_0 は連結成分、つまり塊を表します。これはデータ内の点がどのように集合して塊を形成するかを追跡するものです。半径 r = 0 の状態では、すべての点がそれぞれ独立した成分(クラスタ)として存在しています。しかし、半径 r を徐々に増加させると、点の周囲に広がる円盤が接触し始め、点同士が結合して連結成分が次第に大きく統合されていきます。
H_0 の「誕生」は、新しい連結成分が現れるタイミングに対応します。例えば、孤立した点が見つかると、その点が独立した成分として「誕生」します。一方で、H_0 の「死亡」は、成分が他の成分と統合されて独立性を失ったタイミングに対応します。
上のパーシステンス図では、H_0 の点は Birth = 0 の位置にしかプロットされていません。これは、すべての成分が最初は独立した状態で存在しており、データ内の点そのものに対応しているためです。

穴は辺で囲まれています。辺は直線なので一次元です。
このため、H_1 は「一次元のもので囲まれた空洞」として解釈できそう。
つまり、H_n とは「n次元の単体(例えば点、線分、面、立体など)で囲まれた空洞」ということができそう。

実用例 | ガラスの構造分析

TDAを用いた分析の例としてガラスの構造分析について紹介します。私たちが生きている上でおそらくガラスにお世話になっていない人はいないでしょう。でも実はその内部構造って未だ解明されていないっぽいんですね。

Vol.04 高分子のガラス転移点(Tg)(ゆっくり解説動画有)」から引用

結晶みたいにきれいに並んでいるわけではなく、原子が無秩序にごちゃごちゃしているらしいです。専門的には「無秩序な配列」と言いいます。いろんな研究者の方がこの無秩序の中から規則性を見つけようとしていました。しかし、従来の方法では、その構造をうまく解析することができません。特に「中距離構造」という複数の原子が絡むような大きなスケールで特徴を掴むのが難しいです。
そこでTDAが登場します。この手法を酸化物ガラス(SiO₂)や金属ガラス(CuZr)に適用した結果、液体とガラス状態の内部構造の違いを数学的に特徴づけることに成功しました。

図X SiO2の原子配置(左)とそのパーシステントホモロジー(右)

ガラスは液体と異なり3つの曲線C_P, C_T, C_OとB_Oのような帯状領域を持っています。
このように、TDAを活用することで、ガラスのような無秩序な構造の中にも潜在する規則性や階層的な構造を数学的に解析することが可能となりました。今回はガラスを例に出しましたが画像データやネットワークデータ、時系列データなど、さまざまな分野への応用が期待されています。

終わり

最後まで読んでくれてありがとうございます。TDAの気持ちを少しは理解していただけたでしょうか?この記事をきっかけに入門したいと思ってくれたら嬉しいです。
明日はフロントのRikuくんです。お楽しみに。

参考資料

https://qiita.com/gen10nal/items/ad3e44fe8086b3ccdbde

https://www.saiensu.co.jp/search/?isbn=978-4-7819-1580-7&y=2023

https://www.jst.go.jp/pr/announce/20160614/index.html