A Tutorial on Spectral Clusteringを読んだのでメモ その1
はじめに
A Tutorial on Spectral Clusteringを読んだのでメモ.
タイトルからわかるようにspectral clusteringを基本の部分から解説した資料.
構成としてはsimilarity graphsgraph laplacians
spectral clustering
アルゴリズムの解析という感じ.とりあえずここではspectral clusteringの手前のグラフ理論的な話まで.
Similarity graphs
データ点が与えられた時,データ点のペア
の類似度を
とする.ここで,データ間の類似度よりも多くの情報を持っていないとすれば,データを表現する良い方法はsimilarity graph
を作ること.各頂点
はデータ点
に対応し,二つのデータ点間の類似度
が正またはある閾値より大きいとすれば,グラフのエッジは
によって重み付けられる.このようにグラフのエッジがデータ間の類似度に基づくものをsimilarity graphという.このsimilarity graphを用いてクラスタリングの問題を考えれば,エッジの重みが大きいデータ同士は同じクラスタに所属し,エッジの重みが小さいデータ同士は異なるクラスタに所属するということが直感的に言える.この考えを定式化するために,まずは基本的なグラフの概念を導入する.
graph notation
まずを無向グラフとして定義する.ただし,二つの頂点
を結ぶ各エッジは非負の重み
を持つ,重み付きのグラフとなっている.グラフの重み付き隣接行列(adjacency matrix)を
と定義し,
ならば
を結ぶエッジが存在しないことを意味する.また,
が無向グラフであることから
が成り立つ.頂点
の度数(degree)を次のように定義する.
度数を対角成分に持つ対角行列を度数行列(degree matrix)を
と定義する.また,頂点の部分集合
が与えられた時,その補集合を
を用いて
として記述する.さらに
を満たすかどうかを示す指示ベクトル(indicator vector)を
で定義し,
が真ならば
,それ以外なら
となる.指示ベクトルは式を見ればわかるように,部分集合に含まれる頂点の個数分だけ成分に1を持つベクトルになっている.
ここで部分集合の大きさを測る以下の二つの方法について考える.
は頂点の数により定義され,
は
に含まれる頂点から伸びる全てのエッジの重みの和によって定義される.
に含まれる二つの頂点がpathを持ち(どこか他のノードを介してでも繋がっている状態),間にある全ての頂点が
に含まれている場合,
はconnectedであるといい,
がconnectedかつ,
と
の頂点同士がpathをもたない(connectedでない)場合,
をconnected componentと呼ぶ.
Different similarity graphs
Similarity graphを構成することのゴールはデータ間の局所的な隣接関係をモデル化することで,その方法にはいくつか代表的な方法がある.
The
-neighborhood graph
これは距離がある閾値より小さいデータのペア全てにエッジを張る方法.この方法は接続されたデータ間の距離のスケールが大体同じ(ほぼ
)になり,重みをつけたところでグラフの持つ情報はほとんど増えないため(ここの理由がよくわからない)重みのないグラフとして構成するのが一般的.
-nearest neighbor graphs
ここのゴールは頂点が
の
近傍に含まれるときに二つの頂点を接続すること.ただし,この定義だと近傍の関係性が非対称であることから有向グラフを構成する場合がある.そこで
近傍によって作られるグラフを無向グラフにする二つの方法を紹介する.一つは単純にエッジの向きを無視する方法,すなわちどちらか一方の頂点がもう一方の頂点の
近傍であればエッジを張る方法で,これは
-nearest neighbor graphと呼ばれる.もう一つは双方向からエッジが張られる場合のみエッジを張る,すなわちどちらの頂点も相手の
近傍に含まれる時のみエッジを張る方法で,これはmutual
-nearest neighbor graphと呼ばれる.どちらの場合でグラフを作った場合でも,endpointの類似性からエッジの重み付けを行う.
The fully connected graph
これは,単純に正の類似度を持つ全てのデータのペアにエッジを張る方法でエッジの重みはになる.グラフは局所的な隣接関係を表現すべきであるため,この構成方法は類似度関数そのものが局所的な隣接関係を捉えているような場合のみ有効に働く.類似度関数の例としてはGaussian similarity function
などがあげられ,この場合
がどれくらい離れた頂点を見るか調節する.これは丁度
-neighborhood graphの
と似た働きをする.
上記3つの構成方法は全てspectral clusteringで一般的に用いられる.どの構成方法を使えばより良い結果が得られるかという理論的な回答は(このtutorialが執筆された時点では)ないらしい.
Graph laplacians and their basic properties
Spectral clusteringにおいて重要となってくるのはgraph Laplacian matricesで,spectral graph theoryとして古くから研究されているよう.graph convolutional networksなどでもお馴染み."graph Laplacian"という呼称はいろんなところで使われていて文献によってgraph Laplacianの定義が違うので他の文献を読むときには注意とのこと.
以下,を無向グラフ,
をグラフの重み行列として扱い,
を満たす.また,ここでは固有ベクトルを使うときは正規化されている仮定は置かず,固有ベクトルは値が小さい順に並んでいるものとする.
The unnormalized graph Laplacian
正規化されていないgraph Laplacian matrixを以下のように,度数行列と重み行列の差として定義する.
ここではspectral clusteringで必要とされる命題を以下にまとめる.
Proposition 1 (properties of
)
証明
の定義より,
1行目は
の関係性と
が対角行列であることから導かれる.また,2行目は
の項を無理やり二つに分けることで因数分解可能な形にし,
を利用して最終的な形を導いた.
が対称行列であることは
が対称行列であることから言える.また全ての
に対して
であることから固有値が0以上,すなわち半正定値であることが言える.
の
番目の対角成分は
で与えられることから,
の関係性より
となる.よって固有値と固有ベクトルの関係性から
が得られ,固有値0に対応する固有ベクトルは
であることがわかる.
自明.
また,以下の命題はspectral clusteringを考える上で重要な命題.
Proposition 2 (Number of connected components and the spectrum of
)
を非負の値で重み付けられた無向グラフとする.
の値0の固有値の数
はグラフのconnected components
の数と等しい.また,値0の固有値が張る固有空間は各connected componentsの指示ベクトル
によって張られる.
証明
の場合について考える.
を値が0の固有値に対応する固有ベクトルとする.すると固有値と固有ベクトルの関係と命題1の1から以下が成り立つ.
は非負であることから全ての項が0の時に成り立つ.つまり,二つの頂点
が結ばれている時(つまり
の時),
が成り立つ必要がある.つまり接続関係にある全ての頂点に対して
は一定である必要がある.グラフがただ一つのconnected componentで構成されている場合,固有値0に対応する固有ベクトルは
のみを持ち,これはconnected componentの指示ベクトルになっていることがわかる.
次にが2以上の時について考える.この時,一般性を失うことなく頂点を,所属するconnected componentの順に並べることができる.すると,各頂点は異なるconnected componentに含まれる頂点とは接続を持たないためadjacency matrix
はブロック対角行列になる.よって
の関係から
も同様にブロック対角行列になる.すなわち
番目のconnected componentに関数graph Laplacian matrix
を対角成分に持つ行列として表現できる.
の場合の議論を考えれば各graph Laplacian matrix
の0固有値に対応する固有ベクトルはその集合の指示ベクトルになるため,
の0固有値に対応する固有ベクトルは各connected componentの指示ベクトルになることが言える.よって0固有値の個数とconnected componentの数は等しいことが言える.
The normalized graph Laplacians
先ほどまでは正規化されていないgraph Laplacianを扱ってきた.今度は正規化されたgraph Laplacianを考える.正規化されたgraph Laplacianには以下の2種類の表現方法がある.
は対称行列になっていて,
はrandom walkと密接な関係がある.以下に
に関する命題を示す.
Proposition 3 (Properties of
and
)
- 全ての
において以下が成り立つ.
2.が固有ベクトル
に対応する
の固有値であるとき,
は固有ベクトル
に対応する
の固有値になる.
3.と
が一般化固有値問題
の解ならば,
は固有ベクトル
に対応する
の固有値になる.
4.0固有値に対応するの固有ベクトルは
.また,0固有値に対応する
の固有ベクトルは
5.は共に半正定値で
個の非負な実数固有値
を持つ.
証明
基本的には命題1の1と同様の方針で,
を代入して解ける.計算式は省略.
3から
となり,
が得られる.また,2より
の固有ベクトルは
に関しては命題1の2と同様1の右辺が正であることから言える.
に関しては2の
との関係性から言える.
また,以下の命題により,正規化されたgraph Laplacianの0固有値の個数はconnected componentの数と関係があることが言える.
Proposition 4 (Number of connected components and spectra of
and 
と
の0固有値の個数
はグラフのconnected componentの数と等しい.
の固有空間は指示ベクトル
によって張られ,
は
によって固有空間が張られる.
証明
命題3の内容を使って命題2と同様の手順により導けるので割愛.
まとめ
Graph Laplacianとかは流行りの?graph convolution等との関係も深く他にもいろんな場面で見る気がするのでそれなりに勉強できてよかった.
最近生成モデルを中心に勉強してたから久しぶりに線形代数に触れられて楽しい.