Closed5

【論文読解めも】Semi-supervised Learning with Graph Learning-Convolutional Networks

ピン留めされたアイテム
takoroytakoroy

半教師ありで、グラフ構造を表す隣接行列のようなノード間の接続表現を獲得する手法Graph Learningを提案している。

グラフを用いた深層学習手法を行う際に、ノードとそれについての特徴量が与えられていることは多いが、エッジに相当する情報は必ずしも与えられていないことも多い。Graph Learningでは、ノード間のエッジが明示的に与えらえていないデータでも、後続するレイヤーと協働して、グラフ構造をソフトに推定できる。

半教師あり、ということで、実際の隣接行列が得られているデータと得られていないデータを組み合わせて訓練することができる。

  • Jiang, Bo, et al. "Semi-supervised learning with graph learning-convolutional networks." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2019.
  • 日本語のわかりやすい資料

https://openaccess.thecvf.com/content_CVPR_2019/papers/Jiang_Semi-Supervised_Learning_With_Graph_Learning-Convolutional_Networks_CVPR_2019_paper.pdf

takoroytakoroy

Graph Convolution Network

通常のGCNについて簡単な復習。GCNは、以下のような操作を行うK+1層のネットワーク構造である。

X^{(k+1)}=\sigma\left(D^{-1 / 2} A D^{-1 / 2} X^{(k)} W^{(k)}\right)
  • 各層はX^(k)を入力とし、X^(k+1)を出力とする。最初の入力X=X^(0)は、n個のノードにそれぞれ与えられたp次元の特徴量をまとめた、\mathbb{R}^{n \times p}のサイズである。
  • 各層には訓練対象のパラメータW^(k) \in \mathbb{R}^{h_k \times h_{k+1}}が設定されている。最初の層の入力次元はh_0 = pである。
  • Aはグラフのノード間の類似度や隣接関係を表す行列で、n個のノードに対して、A \in \mathbb{R}^{n \times n}のサイズとなる。グラフ理論の文脈では隣接行列という。
  • Dは、各ノードがどれだけ自身を含むほかのノードとどれだけ強い関係dを持っているかをまとめた対角行列で、D = \mathrm{diag}(d_1, d_2 \cdots d_n)と表される。また、d_i = \sum_{j=1}^n A_{ij}である。グラフ理論の文脈では、次数行列という。
  • \sigmaは活性化関数で、分類モデルなどでは、最後のレイヤー以外はReLU、最後のレイヤーでsoftmaxが使われる。

https://arxiv.org/abs/1609.02907

takoroytakoroy

Graph learning architecture

グラフの隣接行列に相当する行列Sを推定するのが、本手法の目的。Sは、\sum_jS_{ij} = 1, S_{ij}>=0を満たすとする。

基本的な考え方は、2つのノードの特徴量の差異をもとにこれらのノードをどのくらい強く接続しているとみなすかを決めよう、というもので、以下のような数式で表される。

S_{i j}=g\left(x_{i}, x_{j}\right)=\frac{\exp \left(\operatorname{ReLU}\left(a^{T}\left|x_{i}-x_{j}\right|\right)\right)}{\sum_{j=1}^{n} \exp \left(\operatorname{ReLU}\left(a^{T}\left|x_{i}-x_{j}\right|\right)\right)}

ここで、x_i,x_j \in \mathbb{R}^{p}であり、a \in \mathbb{R}^{p \times 1}である。現実には、pがそれなりに大きいと、計算量が大きくなってしまうので、訓練対象のパラメータP\in\mathbb{R}^{p \times d}を用いた\tilde{x}_i = x_i Pによって次元数を小さくしたうえで、Sを計算する。

S_{i j}=g\left(\tilde{x}_{i}, \tilde{x}_{j}\right)=\frac{\exp \left(\operatorname{ReLU}\left(a^{T}\left|\tilde{x}_{i}-\tilde{x}_{j}\right|\right)\right)}{\sum_{j=1}^{n} \exp \left(\operatorname{ReLU}\left(a^{T}\left|\tilde{x}_{i}-\tilde{x}_{j}\right|\right)\right)}

ターゲットとなる隣接行列Aが与えられていない場合は、損失関数は以下のように計算できる。この損失に加えて、後続レイヤーでの推論結果に対する損失も組み合わされる。

\mathcal{L}_{\mathrm{GL}}=\sum_{i, j=1}^{n}\left\|\tilde{x}_{i}-\tilde{x}_{j}\right\|_{2}^{2} S_{i j}+\gamma\|S\|_{F}^{2}

また、ターゲットとなる隣接行列Aが与えられる場合は、損失関数は以下のように計算できる。これによって、直接SAに近づくような訓練が行われる。

\mathcal{L}_{\mathrm{GL}}=\sum_{i, j=1}^{n}\left\|\tilde{x}_{i}-\tilde{x}_{j}\right\|_{2}^{2} S_{i j}+\gamma\|S\|_{F}^{2}+\beta\|S-A\|_{F}^{2}
takoroytakoroy

GLCN architecture

Graph learningによって推定されるSによって、GCNで用いられるAを置き換えると、以下のようになる。D_sは、Sに関する次数行列である。

X^{(k+1)}=\sigma\left(D_{s}^{-1 / 2} S D_{s}^{-1 / 2} X^{(k)} W^{(k)}\right)
このスクラップは2021/02/06にクローズされました