A Tutorial on Spectral Clusteringを読んだのでメモ その2
はじめに
A Tutorial on Spectral Clusteringを読んだのでメモその2. 準備ができたのでいよいよspectral clusteringについて
Spectral Clustering Algorithms
ここでは個のデータ点が与えられ,類似度関数が対象(入力を入れ替えても出力が変わらない)かつ非負の値を返す関数として定義する.また類似度行列をとして定義する.
Spectral clusteringはunnormalized Laplacianを使うかnormalized Laplacianを使うかで,unnormalized spectral clusteringとnormalized spectral clusteringに分けられる.
Unnormalized spectral clustering
入力として,類似度行列,クラスタ数が与えられる.
- その1の記事で紹介した方法のどれか(-nearest neighborなど)を用いてグラフを構成し,重み付き隣接行列を得る.
- そこからunnormalized Laplacian を計算し,Laplacianの固有ベクトルを順に個取り出した集合を得る
- を個の固有ベクトルを列にもつ行列とし,をの番目の行とする.
- k-meansのアルゴリズムを用いて点を個のクラスタにクラスタリングしていく.
Normalized spectral clustering according to Phi and Malik (2000)
入力として,類似度行列,クラスタ数が与えられる.
- その1の記事で紹介した方法のどれかを用いてグラフを構成し,重み付き隣接行列を得る.
- そこからunnormalized Laplacian を計算し,Laplacianの一般化固有値問題から得られる一般化固有ベクトルを順に個取り出した集合を得る.
- を個の固有ベクトルを列にもつ行列とし,をの番目の行とする.
- k-meansのアルゴリズムを用いて点を個のクラスタにクラスタリングする.
このアルゴリズムは一般化固有値問題の解を用いていて,命題3からわかるように,得られる固有ベクトルはの固有ベクトルと等しい.よってアルゴリズム上はunnormalized Laplacianを使っているが,理論的にはnormalized Laplacianであるを使っている.
Normalized spectral clustering according to Ng, Jordan, and Weiss (2002)
入力として,類似度行列,クラスタ数が与えられる.
- その1の記事で紹介した方法のどれかを用いてグラフを構成し,重み付き隣接行列を得る.
- そこからnormalized Laplacian を計算し,Laplacianの固有ベクトルを順に個取り出した集合を得る.
- 固有ベクトルを列ベクトルとする行列を作る.
- 各行のノルムをのように1になるように正規化することで行列を作る.
- の番目の行をとする.k-meansを用いてを個のクラスタにクラスタリングする.
3つのアルゴリズムは異なるgraph Laplaciansを使うだけでおおよその手順は等しい.どのアルゴリズムも肝となるのはデータ点の表現をに変える事にある.
資料ではtoyデータに対して-nnを使ってグラフを作った際とfully connectedによりグラフを作った際,さらにんそれぞれのグラフ構成法においてnormalized spectral clusteringをした場合とunnormalized spectral clusteringをした場合の全4パターンで固有値と固有ベクトルを可視化して考察を行っている.ここでは詳細は割愛.
Graph cut point of view
ここではgraphを分割するという観点からspectral clusteringを見る.隣接行列を持つsimilarity graphが与えられた時,最も単純かつ直接的なグラフ分割方法はmincut問題を解く事.つまり重みの小さい(=類似度の低い)エッジを切る事でクラスタを形成しようというもの.これを定義するために再度,の補集合を与える.個の部分集合が与えられた時,mincutは以下を最小化する分割を探す.
上記のmincutはにおいては特別簡単に計算が可能ということが知られているが,多くの場合は良い分割を導く事は難しく,また一般的にはmincutの解は単純にグラフから一つの頂点を分割する事であり,クラスタリングの目的に合わない.これを避ける一つの方法として集合は十分大きいという条件を陽に加えることがあげられる.各集合が十分大きいという条件を付け加えた目的関数として有名なものはRatioCut (Hagen and Kahng, 1992)とnormalized cut(Ncut) (Shi and Malik, 2000)の二つがある.それぞれの目的関数は以下.
これら二つの目的関数はクラスタが十分に小さくない場合,小さな値をとる.特に関数の最小値は全てのが等しい時に達成する.また,関数も同様に全てのが等しい時に最小になる.すなわち両方の目的関数が達成しようとしているのはクラスタ間の大きさのバランスを取る事で,それぞれクラスタの大きさを頂点の数で測るか,エッジの重みで測るかの違いしかない.ただし,基本的にmincut問題を解く単純な方法はNP hardであることが言われている.Spectral clusteringはNP hardな問題を緩和した解き方で,ここでは緩和Ncutがnormalized spectral clusteringを,緩和RatioCutがunnormalized spetal clusteringを導くことを見る.
Approximating RatioCut for
手始めに緩和が最も理解しやすいの場合のRatioCutを見る.目標は以下の最小化問題を解くこと.
まず,この式をより扱いやすい形に変形する.部分集合が与えられた時,ベクトルを以下のように定義する.
Unnormalized graph Laplacianを使えば,RatioCutの目的関数は以下のように導ける.
2行目はの定義に従って場合分けをし,2乗の項を展開すれば3行目が得られる.また,の関係を使えば最後の式が導ける.また,に関して以下が成り立つ事に注意.
以上のことを用いればRatioCutを使った最小化問題は以下のように記述できる.
これはが離散値を取ることから離散最適になっていて,変わらずNP hardになっている.そこでの元の定義を忘れてとすることで緩和することを考える.すなわち
と緩和する.この最適化問題はRayleigh-Ritz theoremよりの2番目に小さい固有値に対応する固有ベクトルによって解が与えられる.ただし,グラフの分割結果を得るためには実数値解となっているを離散値である指示ベクトルに変える必要がある.単純な方法としては以下のような指示関数によって得られる.
以上がの場合のunnormalized spectral clusteringのアルゴリズムになっている.
Approximating RatioCut for arbitrary
次に一般的なの場合のRatioCutの最小化問題の緩和法を考える.グラフに関して個の集合が与えられた時,集合の指示ベクトルを以下のように定義する.
ここで個の指示ベクトルを列ベクトルとして持つ行列をとして定義すれば,各指示ベクトルは直交していることからは直交行列()になる.前節と同様に計算を行えば(をに変えて計算すれば)以下の関係が導かれる.
とある一つのクラスタに関する式になっているのはが直交行列,すなわち異なる行同士の積は0になるため.すなわちクラスタごとに独立に計算が可能で,上の式を行列を用いて次のように表現する事にする.
すると最終的な目的関数は以下のように表現できる.
ただし,は行列のトレースを表す.以上の関係を用いて最小化問題を書き表わせば,
となる.先ほどと同様,やはりこれは離散最適でNP hardなので行列を任意の実数値に緩和する.すなわち最適化問題は以下のようになる.
これは一般的なトレースの最小化問題になっていて,やはり先ほどと同様Rayleight-Ritz theoremからの個の固有ベクトルから構成された行列をとして選ぶことで解が得られる.これはがunnormalized spectral clusteringで使われていた行列と等しいことを表す.最終的な解を得るためにはやはり実数値として得られた解を離散値として求め直す必要がある.これはの各行をデータ点としてk-meansをすることで実現される.
Approximating Ncut
同様に今度はNcutについて最小化問題の緩和を考える.まずはの場合について.Ncutではクラスタの指示ベクトルを以下のように定義する.
単純にRatioCutのがに変わっただけ.なので満たす性質や計算結果もほぼ変わらず, and が得られる.するとNcutの最小化問題は以下のようにかける.
やはり,RatioCutと同様にを任意の実数値に緩和する.
さらに,を導入すれば
と書き換えることができ,であり,の最小固有値に対応する固有ベクトルがであることを思い出せば,Rayleight-Ritz theoremから解はの2番目の固有ベクトルで与えられる.
続いての場合を考える.クラスタの指示ベクトルを以下のように定義する.
やはりRatioCutのがに変わっただけなのでRatioCutと同様の導出から,が導かれる.するとNcutの最小化問題は以下のようにかける.
ここでを導入し,Tが任意の実数を要素に持つように緩和すれば,最小化問題は以下のように緩和できる.
この式も一般的なトレースの最小化問題でその解はの個の固有ベクトルによって構成される行列によって与えられる.この最小化問題はnormalized spectral clusteringになっていることが証明されている.
Comments on the relaxation approach
今まで色々と導出してきた緩和された最適化問題は元の最適化問題と比べて解の良さは保証されていない.それどころか,仮にを真のRatioCutの最小化の解として,を緩和された問題の解とすれば,は任意に大きくなるらしい.これについてはGuattery and Miller (1998)で言及されているようで,論文中で著者らはcockroach graphsなるグラフを取り上げて考えている.cockroach graphsは梯子状に個のデータが分布していて,RatioCutによって二つのクラスタに分割されることが望ましいような形になっている.しかも分割されたグラフは,となるように設計されている.にも関わらず,著者らはunnormalized graph Laplacianを使ったunnormalized spectral clusteringは常にとなることを証明したらしいこれが意味するところは,理想的なカットに対し,RatioCutは倍悪い結果を導くことを意味している.一般的にbalanced graph cutsを近似する効果的なアルゴリズムは存在しないということが知られていて,しかも近似問題自身がNP hardらしい.ただ,現状いろんな近似方法が提案されていて実験的には良い結果を導いている上,基本的な線形代数の問題として解けることから現状いろんなところで使われてるとのこと.
まとめ
ようやく具体的なアルゴリズムが見えて,なんとなく前に読んだLocal and Global Optimization Techniques in Graph-based Clusteringの気持ちが少しだけわかってきた気がする.
にしても線形代数をゴリゴリやって解析的な解が見えるアルゴリズムはやっぱりいいなあという気持ち.とりあえず普通にスルーしたRayleigh-Ritz theoremを勉強しなきゃ何も言えないけど.