データサイエンティスト(仮)

元素粒子理論屋。いっぱしのデータ分析屋になるために修行中です。

トポロジカルデータアナリシス:単体の境界

導入

不定期でトポロジカルデータアナリシス(TDA)に関する紹介をします。今回は単体の境界を数学的にどう表現するかを紹介します。

振り返り

前回、図形の穴は「境界」に着目することで特徴づけができそうだということを紹介しました。

tekenuko.hatenablog.com

今回は、境界をざっくり紹介していきます。その際に、これまで表記を曖昧にしてきたものを幾つか定義しておきます。

単体および向き

単体

単体とは、点(0次元)や辺(1次元)、三角形(2次元)、四面体(3次元)といった図形を一般化したものでした。これらは、N次元空間(以下、\mathbb{R}^Nと表記します)にあるk次元三角形と拡張されます。このようなk次元三角形をk単体といいます。今、k単体の頂点をv_0, v_1, \cdots v_kとした場合、k単体は|v_0 \cdots v_k|と表します。本当はいくつか条件がありますが、ここではざっくりした言い方にとどめておきます。

単体の向き

先程の記法は頂点の順序、つまり向きの情報がありませんでした。向きを明示的に表す記法として、ここでは\langle \rangleを採用します。例えば、2単体|v_0v_1v_2|で頂点の順序がv_0 \rightarrow v_1 \rightarrow v_2と決まっている場合、向きを加味した単体は\langle v_0 v_1 v_2 \rangleと書きます。さらに、ルールとして、ある頂点を隣の頂点と入れ替えた場合はマイナスがつく、というものを設定しておきます。例えば、向きがある1単体 \langle v_0 v_1 \rangleだと
\[ \langle v_0 v_1 \rangle = - \langle v_1 v_0 \rangle \]
といった具合です。上記の向きづけは、厳密には置換という数学を使って定式化をするのですが、ここでは立ち入らないことにします。

境界作用素

境界は、ざっくり言うと境界作用素という、k単体に対するある決まった演算として定義されます。もう少し厳密には、k単体のある集まりに対して定義されるものなのですが、ここではこれ以上立ち入らないことにします*1。今、向きづけられたk単体を\langle v_0 \cdots v_k \rangleとします。k単体に対する境界作用素\partial _kとすると、その作用は
\[\partial _k \langle v_0 \cdots v_k \rangle = \sum _{i = 0}^k (-1)^i \langle v_0 \cdots \hat{v}_i \cdots v_k \rangle \]
というように定義されます。ここで、\langle v_0 \cdots \hat{v}_i \cdots v_k \rangle k-1単体で、\hat{v_i}は頂点v_iが除かれていることを意味しています。つまり、境界作用素k単体をk-1単体へ変える働きを持っています。しかも、ただ単に変えるだけではなく、「向き」も考慮しています。それが式中にある(-1)^iに対応しています。

境界作用素を作用させた例

1単体  \langle v_0 v_1  \rangle

\[ \partial _1 \langle v_0 v_1 \rangle = \langle v_1 \rangle - \langle v_0 \rangle\]

0単体でいうと向きづけは入ってくる方向がプラス、出て行く方向がマイナスとなっており、もともと、1単体としてはv_0 \rightarrow v_1という向きがあったことを鑑みると、境界作用素は向きを反映しつつ端っこ(0単体)を抽出していることがわかります。

2単体  \langle v_0 v_1  v_2 \rangle

\[ \partial _2 \langle v_0 v_1 v_2 \rangle = \langle v_1 v_2 \rangle - \langle v_0 v_2 \rangle + \langle v_0 v_1 \rangle = \langle v_0 v_1 \rangle + \langle v_1 v_2 \rangle + \langle v_2 v_0 \rangle\]

わかりやすくするために少し変形をしました。作用させるもとの2単体は、「反時計まわり」的な向きを持っていますが、境界作用素を作用させた結果は、その向きを反映したような端っこ(1単体の集まり)になっていることがわかります。以下に図的に表現したものを載せておきます。

f:id:tekenuko:20161213231451j:plain

境界の境界は無い

最後に、境界作用素の少しおもしろい性質を紹介します。それは、ある単体に境界作用素を2回作用させると必ず0になってしまう、というものです。2単体  \langle v_0 v_1  v_2 \rangleを例に見てみましょう。  \langle v_0 v_1  v_2 \rangle\partial _2を作用させたものにさらに\partial _1を作用させると
\[ \partial _1 \partial _2 \langle v_0 v_1 v_2 \rangle = \partial _1 \left( \langle v_1 v_2 \rangle - \langle v_0 v_2 \rangle + \langle v_0 v_1 \rangle\right) \\ = \langle v_2 \rangle - \langle v_1 \rangle - \langle v_2 \rangle + \langle v_0 \rangle + \langle v_1 \rangle - \langle v_0 \rangle = 0\]
のように、うまく打ち消し合いが起きて0になります。これは一般のk単体でも成り立つ性質です。

境界から穴の議論をさらにするために

今回、ちょっとごまかしつつも境界を表現する境界作用素という道具を紹介しました。ただし、ここから「図形に穴が空いている」ことを議論するためには

  • 今考えている図形の大元に対応する単体的複体を明示的に考える
  • 単体を「基底」とみなすようなベクトル空間的なものを考え、その空間に対してきちんと境界作用素を考える

といったことを詰めていかなければなりません。ネタを小出しにしていっている感が満載ですが、次回以降はこれらに関係する話を紹介して行こうと考えています。

*1:ちゃんと単体的複体を定式化したり、群などの特定の演算が入っている数学的対象を考えなければならなくなるからです。