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は問題点が多いから,最新の論文がどれくらい進化しているか楽しみ.また続けて関連論文を読んで行きたいところ.