Spectral Networks and Deep Locally Connected Networks on Graphsを読んだのでメモ
はじめに
Spectral Networks and Deep Locally Connected Networks on Graphsを読んだのでメモ.前回spectral clusteringの勉強の中でgraph Laplacianについて触れたので,せっかくだから今一度いわゆるgraph convolution関連の論文を読み漁ろうかなと.この論文は2013年の論文で,サーベイ不足でなければ世間で言われているgraph convolutionをちゃんと定式化した最初の論文.
CNNとgraph
Convolutional Neural Networks (CNNs)は基本的にregular grid上のデータ(画像や動画など)を処理する上で優れた性能を発揮している.特に,そのregular gridの構造をうまく使うことでパラメータ数の大きな削減ができていることがポイント.具体的には以下の3つがCNNの重要な点.
- The translation structure (一般的な線形写像の代わりにfilterを使うことによるweight sharing)
- The metric on the grid (入力信号に比べて非常に小さいサイズのフィルタの適用)
- The multi scale dyadic clustering of the grid (strideが2以上のconvolutionやpoolingによるsubsampling)
ただし,CNNはregular gridでない,一般的なgraph構造を持つデータには適用できない.そこでここではCNNの拡張として2つの構造を提案する.最初に2.と3.を一般のgraphに拡張したSpatial Constructionを導入し,次にFourier domainにおける畳み込みを使うSpectal Constructionを導入する.
Spatial Construction
入力データとして重み付きグラフを考える.はサイズの離散集合でグラフの頂点を表現するもの.はの要素が非負の対象行列でいわゆる重み付きの隣接行列.
における局所性
局所性(隣接関係)はグラフにおいて簡単に一般化が可能.例えば,における隣接の定義はある閾値を超えるものとして以下のように記述可能.
この定義によって与えられる隣接関係を使えば,局所的な接続のみを見ることでCNNと同様にパラメータ数を減らすことができる,
グラフ上でのMultiresolution
CNNで使われるpooling等によるsubsampling layerはgridのmultiscale clusteringとして考えることが可能.multiscael clusteringはクラスタに含まれる全ての頂点の持つ特徴量を入力として,クラスタの代表値として一つの特徴量を出力する関数として考えることができる.クラスタリングのためのクラスタはgraph Laplacianの文脈で様々な研究がされているためここではあまり深入りせず,naive agglomerative methodを使ってクラスタを決めるとのこと.このクラスタリングのクラスタ数によってグラフの解像度が決定する.
Deep locally connected networks
グラフにおける局所性と解像度が定義できたので一般化されたネットワークを導入する.まずネットワークによる計算の前にグラフのmultiscale clusteringから始める. ここでは個のスケールを考える.入力としてを定義し,各スケールにおけるグラフのクラスタリング結果をとする.ただし,はを個のクラスタに分けた結果.さらに,における隣接関係は次のように与えられる.
以上を使って,ネットワークの第層を定義する。入力はで定義される実数の信号とし,を第層のフィルタの数とする.ネットワークの第層はで記述される次元の信号をで記述される次元の信号へと変換する.
より一般的に,層目の入力をとすればその出力は次のように記述される.
は隣接関係に従って定義されるスパースな行列.は出力をに従ってクラスタリングするプーリングの操作を表す.
論文の文章を無視して簡単にまとめると,上の式のはそれぞれCNNでいう入力のチャネルと出力のチャネルを表していて,は隣接関係があるとこのみ値を持つ行列,すなわち自体はになる.またからは行列とベクトルの積になっていて,要は隣接関係のあるノードにだけ重みをかけて総和を取る処理になっている.それに加えてでチャネルでの総和を取っているため,CNNと同一の処理(空間方向,チャネル方向に重みをかけて総和)になっていることがわかる.
ここでは隣接関係は次の手順によって得られる.
またクラスタリング結果はここでは coveringで与える. coveringは類似度カーネル (ガウスカーネル等)とグラフの分割結果を使ってとして分割を与える方法で,簡単にいってしまえば以前のspectral clusteringの勉強でやったfully connected graphに閾値を設けてグラフを分割するという感じ.
ここでを各ノードの隣接ノード数の平均とすれば,層における学習パラメータのオーダーはとなる.
ただ,論文にも書いてあるよう,隣接関係はデータごとに違うためweight shareの構造を導入するのは容易ではなく,単純に実装してしまえばを学習パラメータとして持つことになる.一応グラフ全体を低次元空間に埋め込むというのが回避策として書かれているが,この論文で考えているようなデータではそこまで高次元のものはほとんど出てこないからおっけー的なことも主張している.
Spectral Construction
今度はgraph Laplacianの固有値を使った畳み込みの一般化を考える.
重み付きグラフ上での調和解析
ここではgraph Laplacianの呼び方は前回の勉強のメモに合わせて,をunnormalized Laplacian,をnormalized Laplacianとする(論文ではそれぞれcombinatorial Laplacian,graph Laplacianと定義している).ここではシンプルにunnormalized Laplacianを使う.仮に信号を次元のベクトルとすれば,ノードにおける信号の変化の滑らかさ (グラフにおける周波数)は次のように定義できる.
さらに全体としては
となる.上記の定義に従えば最も滑らかなベクトルは常に
となり,続く値
はの固有ベクトルで与えられる.最小化問題の解がの固有ベクトルから得られるのはの関係からわかる.この関係の証明は前の記事参照. 各固有ベクトルに対応する固有値jはgridに定義された信号のフーリエ係数として見ることができ,同様に固有ベクトルはフーリエ基底として考えられる. 直感的なところではグラフにおける周波数のargminがgraph Laplacianの固有ベクトルから与えられることと,固有値と固有ベクトルの関係からの関係が成り立つ,すなわちグラフの構造を表すが固有ベクトル(フーリエ基底)とその固有値による線形結合で与えられることからフーリエ変換としてみなせるというもの?(グラフ信号処理ど素人の自分なりの解釈なので自信はない)
以上を踏まえれば信号の変換はフーリエ基底の結合係数を変化させることと考えられる,すなわち固有ベクトルとdiagonalな行列の積として考えられるためパラメータ数はからとして表現できる.
Extending convolutions
ここまでの関係を使って,ネットワークの定義を行う.をgraph Laplacianの固有ベクトルとする.すると第層における入力に対する変換はsubsamplingを考えなければ次のようにかける.
は対角行列で,は非線形関数を表す.実験的に,graph Laplacianの最初の個の固有ベクトルを使う場合の方がいい場合があるらしい(つまりは高周波成分は無視するということ).仮に個の固有ベクトルを使ったとすれば,学習パラメータのオーダーはになる.ただし,計算コストの面においてはとの積があるため非常に大きくなっていることには注意(加えてgraph Laplacianの固有ベクトルを求める必要もある).
まとめ
この論文が出た時点ではまだまだgraph convolutionは問題点が多いから,最新の論文がどれくらい進化しているか楽しみ.また続けて関連論文を読んで行きたいところ.
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を勉強しなきゃ何も言えないけど.
A Tutorial on Spectral Clusteringを読んだのでメモ その1
はじめに
A Tutorial on Spectral Clusteringを読んだのでメモ. タイトルからわかるようにspectral clusteringを基本の部分から解説した資料. 構成としてはsimilarity graphsgraph laplaciansspectral 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等との関係も深く他にもいろんな場面で見る気がするのでそれなりに勉強できてよかった.
最近生成モデルを中心に勉強してたから久しぶりに線形代数に触れられて楽しい.
Local and Global Optimization Techniques in Graph-based Clusteringを読んだのでメモ
はじめに
Local and Global Optimization Techniques in Graph-based Clusteringを読んだのでメモ.札幌で開催されたMIRU2018で著者の方が発表されていて気になったので読んでみた次第.
graph-based clustering
この論文では以下の目的関数の最小化問題としてのgraph-based clusteringに着目している.
ここで,はn個のデータ点に対するaffinity matrixで,はassignment matrixを表す.assignment matrixは番目のデータがクラスタに属する場合,となるような行列.つまり各データ点がどのクラスタに属するかを表している.はコスト関数ごとに異なる関数.
Graph-based clusteringはk-meansやGMMのようなrepresentative-based clusteringと違い,データ間のつながり(グラフの構造)を利用したクラスタリングが可能という利点がある.
論文ではgraph-based clusteringの3つの重要な要素としてaffinity matrixの構成,目的関数,最適化の方法をあげていて,それぞれの観点から関連研究をまとめている.
Affinity matrix
最も単純なaffinity matrixの作り方は距離に基づく方法で例としては-NNやガウスカーネルを使う方法がある.その他にはデータからの学習によるaffinity matrixの獲得方法もあり,学習ベースでは線形結合の係数行列によってaffinity matrixが表現される.
objective function
従来,macro averageに基づく指標,例えばやなど(ただしは全ての要素が1の縦ベクトル)が用いられていた.ただ,macro averageに基づく目的関数は望まない小さなクラスタを生成してしまうため,クラスタサイズのバランスを取るような目的関数,balanced association(BA)が2017年に提案されている.BAの目的関数は以下で表される.
がクラスたのサイズを調整する係数で大きいほど各クラスタのサイズが等しくなる.論文のTable 1に提案手法の目的関数を含め各目的関数がまとまっている.
optimization methods
最初に与えられたはNP-hardな組合せ最適化の問題であり,大局的な最適解を見つけるのは難しい.normalizing cutやspectral cluseringはspectral緩和を使うことで解いていて,最も広く使われている.これらの類似手法であるmacro-AAでは目的関数は次のような形で表現される.
これはをのように緩和することでの固有ベクトルを利用することで上で解くことが可能.問題としては緩和が必要なことやmacro-average-based cost functionを用いること,の計算コストなどがあげられる.
その他の方法としてはkernel k-meansなどで知られるbound optimization method (BO)などがあり,BOは次のような上界の最小化を行う.
Macro-AAにおいてはであり,normalizing cutにおいてはとして表現される.これはが半正定値行列である場合に厳密なbound functionになる.
Micro-average association
関連研究で議論されていたようにnormalizing cut等に用いられるmacro-average-based cost functionは小さなクラスタを生成してしまう場合がある.ここではこの問題を解決するために,以下のmicro average associtationに基づく目的関数を提案する.
これはとしたもので,によってクラスタの大きさをコントロールできる.つまり,分母が各クラスタに入っているデータ数の総数の乗の総和で定義されているため,コスト関数を最大化するには均一に近い方が望ましいということ.これをここではmicro average association cost (micro-AA)と呼ぶ.
Micro-AAの利点は小さなクラスタの出現を防ぐことで,同様の効果を持つBAと比べて実験的にmicro-AAの方が良いクラスタリング結果を実現したとのこと.ただし,micro-AAはNP-hardであることと,既存手法には適用できない問題がある.
direct local optimization
ここでは目的関数の上昇が保証されている繰り返し最適化手法であるdirect local optimization (DLO)を提案.DLO単体では良いクラスタリング結果を得るためには良い初期値が必要であるが,同時に提案するgreedy incremental algorithm (GIA)を適用することで初期値の影響を受けにくくする事が可能.
まずDLOの説明の前にaffinity matrixを対称行列と仮定する.仮にaffinity matrixが非対称行列だった場合とすれば対称行列になることから一般性は失わない.また,の列ベクトルと行ベクトルをそれぞれ,と定義する.
DLOは座標降下法の一種で,目的関数の値が繰り返しの度に上昇することが保証されている.iteration における解が与えられた時,DLOは行ベクトルごとに最適化していく.
最大化問題は,ある番目のサンプルの所属クラスタを変えた時に最もエネルギー関数が上昇するクラスタをそのサンプルに割り振ることで解かれる.すなわち一回の更新に対しクラスタ数回の計算を行う.これは少なくともサンプルを同じクラスタに割り振れば目的関数の値は等しくなるため,目的関数の値を下げることはない.
サンプルの選び方はrandomized, cyclic, greedyの3つのタイプに分けられる.randomized coordinate descentはサンプルの集合からランダムにサンプルを選び,cyclic coordinate descentは順番にを選ぶ.greedy coordinate descentは目的関数を最も上昇させるサンプルを選ぶ.3つの中でもgreedyなものは最良のサンプルを選択するため計算コストがかさむが,良いサンプルを選択することができるため実践的にはrandomなものよりも計算コストにおいて良いパフォーマンスを示す.そのためこの論文ではgreedyな選択をすることにしたとのこと.
回目の更新の時にサンプルを番目のクラスタに割り振った時の目的関数の値をとする.この目的関数の値を愚直に計算するとコストが高いため,回目の更新時の目的関数の値を利用することで効率良く計算する.繰り返しにおいてサンプルが所属するクラスタをとすれば目的関数は次のように書ける.
ただし,
との計算オーダーはそれぞれになるが,次のように効率的に計算が可能.
結局,上記のような方法で計算をすればそれぞれの計算オーダーはになる.最終的には全てのに関する目的関数の計算オーダーは繰り返し1回目は,その後はとなる.
greedy incremental algorithm
DLOは局所最適化法なため良い解を得るためには良い初期値が必要となる.初期値としてspectral clusteringの結果を使う方法などもあるがspectral clusteringは特定の場合においてはうまく機能しない問題がある.そこでここでは初期値の影響を減らすことのできるgreedy incremental algorithm (GIA)を提案する.
まずの初期値をとし,とする.さらにまだクラスタの割り当てが決まっていないサンプルの集合をとする.DLOと同様の手順を用いて目的関数の値を計算し,目的関数の値を最大にするサンプルとクラスを用いてとを更新する.要は初期の割り振りを与えずにDLOをするという感じ.これにより初期値に依存をしないためDLOのパフォーマンスを改善できるというもの.GIAの計算オーダーはでは繰り返し回数.
提案手法を含む多くのgraph-clustering最適化手法は局所解につかまりやすいという問題があるよう.そこで論文ではGIAを用いる上で大局的な最適解を導きやすくする二つの方法を紹介している.
GIAはaffinity matrixが疎な行列である場合,悪い局所解にトラップされる傾向にあるらしい.そこでgraduated optimization (GO)を適用することでこれを回避する術を紹介している.凸でない関数を解く上でGOはまずはじめに平滑化された関数を解き,更新とともに徐々にをへと変形していく.graph-clusteringの文脈では平滑化されたaffinity matrix を使うことで平滑化された関数を得る.論文中のFigure 3にはを変えた際のaffinity matrixの変化が示されていて,疎な行列がが大きくなるにつれ徐々に密になっていることがわかる.GOのやり方に従えば,最初はを大きな値に設定して最適化を行い,最終的にになるよう徐々にの値を小さくしていくことで局所解にトラップされることを防ぐ.
もう一つの局所解を回避する方法としてclustering ensemble (CE)がある.GIAは局所解にトラップされても,部分的には綺麗なクラスタを形成していることが論文中のFigure 4の結果からわかる.そこで,GIAの個の解からco-association matrix を計算する.簡単に言ってしまえば複数の結果の平均を最終的な結果としようというもの.ただし,クラスタリングの結果を得るためにはという変換が必要になる.そこでaffinity matrixをとして目的関数を解くことでこの変換を達成する.ただし,目的はgraph-based clusteringの大局的最適解を達成することなので,から得られた解を使って元のaffinity matrix 上でDLOを使い最適解を得る.
実験
実験に用いたデータセットの多くで既存手法を大きく上回るクラスタリング精度を達成している.特にCOIL-20ではクラスタリング精度100%となっていて驚き.ただ,clustering ensembleがうまく働かない,すなわちクラスタリング結果にバイアスが乗るようなデータでは若干悪い結果となるようで,実際クラス毎のサンプル数に偏りのあるHopkins 155ではspectral clusteringを6%程下回る結果になっている.
まとめ
Graph-based clusteringに関する知識があまりにもないため若干理解しきれていない部分(目的関数の根本的なところや各手法の嬉しさなど)があるからお盆の間に基本的なところから勉強して理解したい.逆にそんな知識不足の中読んだ論文なのでメモの内容は謝りを多く含むかもしれないので注意。。。
Graph R-CNN for Scene Graph Generationを読んだのでメモ
はじめに
Graph R-CNN for Scene Graph Generationを読んだのでメモ.
手法の概要
まず,を入力画像,をの物体領域と対応したグラフのノード,を物体間の関係性(グラフのエッジ),が物体と関係性を示すラベルとしてそれぞれ定義.ゴールとしてはというモデルを作ること.言葉で言えば画像を入力とした時に物体位置とそれらの関係性を出力するようなモデルを作りたいということ.この論文では以下のようにモデルを3つの要素(物体検出,関係性検出,グラフラベリング)に分解して考える.
要は物体を検出してから物体同士の関係性を結ぶ処理をend-to-endにやったというもの.グラフラベリグは最終的なrefinementと考えていいらしいが,処理的には物体の分類と関係性の分類(人と服に対して"wear"を出力するようなこと)をする.
Object proposals
object proposalsはFaster R-CNNで実装したとのこと.出力として空間的な位置,poolされた特徴ベクトル,クラス推定ラベルの3つ.これらをproposalの数並べたものをとする.
Relation Proposal Network
Object proposalsによって個の物体領域候補が得られた際,の可能なconnectionがある.ただ基本的には多くの物体ペアは実世界の規則性から関係性を持たないことが知られているため,Relation Proposal Net (RePN)なるものを用いてその規則性をモデリングするというのが論文のコントリビューションの一つ.RePNは物体間の関連度合い(relatedness)を効率的に推定できるらしく,関連度の低いエッジを切ることでscene graph候補を減らしていく.
Relatednessの推論にはクラス推定結果の分布を使う.具体的にはが得られたらエッジの方向を含んだ全ての組み合わせについてrelatedness を計算する.は学習によって得られる関数で,ここではを入力とする多層パーセプトロンを考える.ただし,愚直に実装すれば入力のペアの二乗回計算が必要になるため,次のようなカーネル関数を使ってこれを避ける.
はそれぞれ,relationshpにおけるsubjectsとobjectsのための関数で,論文ではそれぞれ2層の多層パーセプトロン(MLP)を使ったとのこと.このように分解すれば,score matrix が行列積で表現できる.注意としてスコアの範囲を0から1にするために最後にsigmoid関数をかますとのこと.スコア行列が得られた後はソートしてtop を選ぶことで物体ペアの候補を選ぶ.ただし,以下で計算されるIoUを使ってNMSを行う.
はそれぞれbounding box間のintersection領域とunion領域を示す.一般的に検出で使われているIoUとの違いは入力が二つの物体ペア(つまり4つのbounding box)であること.以上の操作によって個の物体ペアを表現したグラフを得て,各々のペアのunion boxからvisual representations を取得する,
Attentional GCN
出来上がったグラフの構造からcontextual informationを得るためのモデル,attentional graph convolutional network (aGCN)について.
まずベースとなるGCNについて.グラフの各ノードが特徴量を持つとし,隣接ノードの特徴量をとする.ここでは学習される重みと隣接行列を使って以下のような変換を行う.
は非線形関数を表し,は特徴量を並べた行列.隣接行列はノードが隣接関係にある時でそれ以外は0の値を持つ.ただしここでは対角成分は1としている.つまるところ重み行列に隣接行列をかけることで隣接関係があるところのみ重みが残るというもの.
この論文では上のGCNのを2層MLPを使って次のように求めてしまおうというもの.
は学習パラメータではconcatenationを表す.また,はsoftmaxの値にかかわらず対角成分1,隣接関係が無いノードに対応する要素は0にするそう.要は隣接行列にアテンションの構造を突っ込んだということ.
ここまででの物体との関係性が得られていて,上記のaGCNを使って物体と関係性の表現を更新しようというもの.ただし,その時aGCNが処理するグラフは今までの流れで得られたグラフにスキップコネクション(離れたノード同士を繋げるもの)を導入したグラフになる.これは従来研究で取られていた方法でパフォーマンスが向上するらしい.ここで注意として,現状得られたグラフにはobjectrelationship,relationshipsubject,objectobjectに関する接続がある.さらに言えば,subjectからrelationship方向とrelationshipからsubject方向で接続の意味合いが変わることが考えられる.そこでタイプからタイプへの変換(例えばsubjectsからobjectsへの変換)の重み行列をと定義する.色々ごちゃごちゃした説明が続いたが,この論文における最終的なaGCNの計算は以下のように行われる.objcetに関する特徴量の更新は次のように行われる.
次にrelationshipに関する更新は
として計算される.ただし,ここでの各隣接行列はを除き対角成分は0.
論文中ではobjectとrelationshipのノードの特徴量の初期値はopen choiceだと述べられていて,intermediate feature (多分物体検出で使われるCNNの中間出力のことかと)か検出の時のsoftmax関数を噛ませる前の特徴量が選べるとのこと.
loss function
最初に三つに分けたプロセスそれぞれ教師ありで学習する.はfaster RCNNのRPNで使われたロスと同様のものを使う.はbinary cross entropyを使って各objectペアの関係性のあるなしを学習.最後にはmulti-class cross entropyを使って物体の分類,術語の分類を学習.
まとめ
去年くらいGCNの研究を少ししてたけど,どうしてもノード数が増えてくると演算回数,メモリ共に厳しくなるからその辺誰か解決してくれないかなという気持ち.後,今回はGCNへの入力となるグラフのノード数は物体の数に依存して可変な気がするけどどうやって扱っているのでしょう.
Understanding and Improving Interpolation in Autoencoders via an Adversarial Regularizerを読んだのでメモ
はじめに
Understanding and Improving Interpolation in Autoencoders via an Adversarial Regularizerを読んだのでメモ.
気持ち
Autoencoderはデータの潜在的な表現を学習することができ,その潜在空間上でデータ間の補間を行うと,デコードされた画像も連続的に変化していくことが知られている.ただし,時たま何の意味もなさないデータが生成される場合があるので,そこをより良くしていきたい,つまりhigh-qualityなinterpolationがしたいという思い.
Adversarial Regularizer
今回は多層ニューラルネットを使ったautoencoderを考える.encoderを,decoderをとして,目的関数には二乗誤差を使う.はニューラルネットの学習パラメータ.補間は潜在空間上でとして行う.ただし,.
High-qualityな補間の特徴として,補間の途中の画像もreal dataと見分けが付かないような画像であり,データ間の特徴を滑らかに変化させていくことがあげられる.ただし,後半の定義は難しいので今回はrealistic側を重点的に考える.
本物の画像と見分けが付かないようなということでGANの考えを導入する.するとGANのdiscriminator(論文ではcriticと表現)は次の目的関数を最小化するよう学習する.
はスカラーのハイパーパラメータ.第1項目はデータの混ざり具合を判断する項で,2項目は二つの関数からなる正則化項となっていて,データ空間での補間に対してdiscriminatorが0を出力するようにするもの.別に重要ではないけどあった方がadversarial lerning processが安定するとのこと.正直この正則化の意味はちょっとよくわからなかった.
Autoencoder側の目的関数は正則化項が加わって以下のように表される.
はハイパーパラメータでにかかわらずdiscriminatorの出力を0にしようとするもの.これが最大化の代わりになっている.
まとめると,discriminatorを最小化で学習して,autoencoderを最小化で学習する.
以降論文ではかなり密な実験と考察が続くがその辺は割愛(むしろここからが論文の本番ではあるが).
まとめ
以前,潜在空間の補間をgeodesicsに沿ってやると綺麗になるというのがあったけど,このアプローチなら線形補間で十分になるからなかなか賢いアプローチだなあという感じ.
Sylvester Normalizing Flows for Variational Inferenceを読んだのでメモ
はじめに
Sylvester Normalizing Flows for Variational Inferenceを読んだのでメモ.planer flowの一般化であるSylvester normalizing flowを提案.planer flowは以前勉強した.
Normalizing flow
復習がてらnormalizing flowについて.
確率変数を関数を使ってに変数変換する.その時,の確率密度は次のように計算できる.
上記は変数変換の公式として知られていて調べればいくらでも出てくる.基本的にはもも確率密度の定義から積分が1であるためという関係が成り立つことから導かれる.
次にこの変数変換を変分推定に組み込むことを考える.初期の確率変数をdiagonal Gaussianに従う確率変数とする.この変数をのように回変数変換することを考える.すると確率密度は以下の計算により求めることができる.
は番目の変換のパラメータを表す.上記のを変分事後分布とすると変分推論における下限の式は以下のように表現ができる.
通常の変分推論では変分事後分布は勾配計算のためにサンプリングを用いるため,サンプリングが簡単にできるような単純な分布である必要がある.それに対し,noramlizing flowは単純な分布から複雑な分布へ変換することで複雑な分布を変分事後分布として用いることが可能で,サンプリングも単純な分布から行うことができる.それにより変分推論の近似精度をあげることができるというもの.
先行研究ではこの変数変換の関数を以下のplanar flowと呼ばれる関数族で定義した.
各パラメータはとして定義されれはのような全単射の活性化関数を表す.このplanar flowはである限り逆変換が可能である.
またplanar flowのヤコビアンの行列式は以下の形で計算が可能.
ここではの導関数を表し,このように計算できることで行列式の計算コストがになる(普通は).
Sylvester normalizing flow
名前がかっこいい.ここでは次のようなresidual connectionを持つ隠れユニット数の単層ニューラルネットのような変換を考える.
各変数はで定義されている.この変換のヤコビアンの行列式は以下のSylvester's determinant identityを使うことにより求めることが可能とのこと.
ここでは次元単位行列を表す.上記の関係を用いればの時に行列の行列式を行列の行列式として計算ができるため,計算コストの削減ができる. このSylvester's determinant identityを使えば最初に定義した変換のヤコビアンの行列式は以下のように計算できる.
導出は普通に微分するだけ.嬉しいこととしてはのように計算している点で,さっきも書いたように行列のサイズが落ちるため計算コストが下がる.
注意としてこの変換自体は基本的には逆変換を持たない.逆変換を持つためにはが次のようなQR分解の形で表される必要がある.
ただし,は上三角行列では直交行列となる.この時ヤコビアンの行列式は次の形で表される.
最後はが直交行列であることを利用した.ここでは上三角行列であるため行列式の計算オーダーはとなる.
この変換が逆変換を持つための十分条件は,が上三角行列でが連続な関数である時,がかつが逆行列を持つという条件で与えられる.以下がともに対角行列であるときの証明.
は直交行列であるため,が張る部分空間はとして表すことができ,その直交補空間をで定義する.するととして分解することができる.ただし,.当然,となる.したがって関数は上のみで振る舞うことになる.したがって,上でのの振る舞いのみを考えればよく,に左からをかければ
としてかける.ここでベクトルはが張る部分空間上でのの座標を表す.ここではは対角行列であることを仮定しているため,の各次元は独立であり,という変換としてかける.よって各次元ごとに考えることができ,であることから,であることが言える.導関数が正の1次元の実関数は逆変換を持つためは逆変換を持つ.よっては逆変換を持つことが言え,その変換は
としてかける.論文では当然が三角行列の時の証明も行われているがかくのが面倒なのでここでは割愛.
実践的な面での課題ではパラメータの学習時にどのようにしてを直交行列として保ち続けるかという問題がある.ここではを直交行列として保ち続けるために,Orthogonal Sylvester flows, Householder Sylvester flows, Triangular Sylvester flowsの三つのflowを提案する.
Orthogonal Sylvester flows(O-SNF)
ここではを満たしながら以下の手順を用いることでの直交性を保つ.ただし,行列の2-normはで計算され,はの最大特異値を表す.
ただし実験の時にはを満たすように行ったらしい.はフロベニウスノルム.この手順は微分可能なためbackpropに組み込めるので嬉しいという点も.
Householder Sylvester flows(H-NSF)
ここでは次のHouseholder変換の積によって直交行列を作る.ハウスホルダー変換は超平面上での反射を表していて,とするとに直交する超平面上での反射(つまりハウスホルダー変換)は以下で与えられる.
これは計算コストは低くパラメータもしか持たないため嬉しい.ちなみに直交行列は回のハウスホルダー変換の積で記述できることが知られているらしい.注意としてはハウスホルダー変換を使う場合は,ハウスホルダー変換の結果が正方行列であるためとする必要がある.
Triangular Sylvester flows(T-SNF)
これはを単位行列または置換行列として,flowの変換の過程で単位行列と置換行列が交互に現れるようなflow.つまり,とが上三角と下三角として交互にflowに現れるようにすることと等しい.すなわちT-SNFではは固定.
まとめ
実験的には3つのflowの性能はだいたい同じくらいっぽい.計算コストや実装の観点から言えばO-SNFかなあというところ.
Flow-basedな生成モデルは論文書く目処もついたのでそろそろ次の勉強ネタが欲しいところ.