《SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS》论文阅读(二)

GCN的定义

下面内容参考kipf博客,个人认为是告诉你从直觉上,我们怎么得到GCN图上的定义而前面的大幅推导是从理论上一步一步来的,也就是说可以用来佐证我们的直觉

我们的网络输入\(\mathcal{G}=(\mathcal{V},\mathcal{E})\)

  • 即可以用\(N\times D\)的矩阵\(X\)表示,\(N\)为图上结点个数,\(D\)是每个结点的特征维数
  • 同时表示一个图还需要邻接矩阵\(A\)

而一层的输出记作\(Z_{\mathbb{R}^{N \times F}}\),其中\(N\)还是结点个数,\(F\)为每个结点的特征维数

那么非线性神经网络就可以定义成如下形式:

\[H^{l+1}=f(H^{l}, A) \]

其中\(H^{0}=X\), \(H^{L}=Z\), \(L\) 表示网络的层数,那么模型的关键是如何设计\(f(\cdot )\)

一种简单的形式

\[f(H^{l}, A) = \sigma (AH^{l}W^{l}) \]

其中\(W^{l}\)\(l.th\)层的参数矩阵,\(\sigma ()\) 是激活函数。【PS:Despite its simplicity this model is already quite powerful】
仔细观察上式就能发现几个缺陷:

  • 其中\(A\)是邻接矩阵,对角线上为\(0\),导致经过网络中的一层,没有加上自己本结点的信息,所以改造替换成 \(\hat{A} = A+I\)
  • 可是\(\hat {A}H\) 则是自己+相邻结点特征总和,还需平均化,所以改成 \(D^{-1}\hat {A}H\)
  • 我们还可以更进一步,考虑到上篇说的拉普拉斯算子计算中周围结点总和\(-\)中心点*相邻结点个数,即相当于每个相邻点能量\(-\)中心点能量。类比过来,相邻点给我影响是:(相邻点能量/相邻点本身邻居个数),所以有\(D^{-1/2}\hat{A}D^{-1/2}\)

\[f(H^{(l)}, A) = \sigma\left( D^{-\frac{1}{2}}\hat{A}D^{-\frac{1}{2}}H^{(l)}W^{(l)}\right) \, \]

这个形式已经和上篇利用谱理论推导处理的结果很相近了

猜你喜欢

转载自www.cnblogs.com/KongHuZi/p/12684840.html