图神经网络(1):图卷积神经网络GCN ICLR 2017

图卷积神经网络GCN ICLR 2017 , 是曾经在美国加州大学UCI教授、现在荷兰阿姆斯特丹大学教授 Max Welling团队的大作(Max是图灵奖获得者Hinton的弟子),第一作者T. N. Kipf已经成为这个领域有名的学者和工程师。

如果你能读懂英文,建议直接看作者最初发布的网站

https://tkipf.github.io/graph-convolutional-networks/

讲到GCN,就必须要讲到ChebNet, GCN可以认为是ChebNet的简化版和魔改版。

ChebNet是2016年NeurIPS上的论文,可以认为是第一代基于深度学习的图神经网络。

引用GCN里的一张图,这张图也是非常经典,看着很花哨,公式写起来很简单。

图神经网络(1):图卷积神经网络GCN ICLR 2017_第1张图片

 

GCN可以认为是第一代,可以商业化的图神经网络。

GCN的公式非常简单。

f(H^{l}, A) = \sigma\left( AH^{l}W^{l}\right) \ = H^{l+1}

其中,\sigma是激活函数,原作者采用ReLU,至于ReLU是什么你都不懂的话,可以需要从头开始学习深度学习和机器学习。后面我计划推出一个深度学习从零开始的教程。这里相当于把输入的原特征矩阵H^{l} 和 W^{l}做了一个相乘之后,再和邻接矩阵A相乘。 W^{l}可以认为是一个简单的线性神经网络。对应PyTorch里的Linear或者TensorFlow里的Dense。

H^{l} 是一个N*F的矩阵,W^{l}是一个F*F'的矩阵,相乘之后得到N*F'。 A是一个N*N的矩阵,和A相乘后得到一个新的N*F'的矩阵,也就是H^{l+1}

具体来说公式是:

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

这里对原来的邻接矩阵做了一个归一化,可以不必看懂这个归一化,除非你懂线性代数。就是这么简单。对于懂线性代数的人来说,非常容易看懂。所以想要看懂深度学习,线性代数是基础。

另外,图神经网络可以多层。下一层H^{l+1}来自于上一层H^{(l)}的计算。当然现在的图神经网络已经比较复杂了,例如加上ResNet残差连接层,加入注意力机制,池化机制等等。

 最后根据最后一层H^{l+1},去做分类,预测节点的类别。

早期的图神经网络GCN、GAT只预测节点的类别。但GIN开始,对GCN和GAT做一个节点特征的池化Pooling,就能得到真个图的特征,并应用在图分类上。

 后续文章再对GAT和GIN,以及最新的图神经网络进行介绍。但从现在最新图神经网络的效果来看,并没有比GCN、GAT具有特别翻天覆地的精读提示,一般也就提示1-3个百分点。所以很多应用的文章直接拿GCN和GAT应用下就能发文章,如何应用GNN发文章,后面博客会写。

你可能感兴趣的:(图神经网络GNN,deep,learning,神经网络,cnn,深度学习)