• 图神经网络(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里的一张图,这张图也是非常经典,看着很花哨,公式写起来很简单。

     

    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发文章,后面博客会写。

  • 相关阅读:
    volatile的用途和说明
    测试自动化:TPT API
    QML类型:Loader
    面试~jvm(JVM内存结构、类加载、双亲委派机制、对象分配,了解垃圾回收)
    XAF 属性编辑器(PropertyEditor)- 原理篇
    MySQL高阶语句
    JAVASE语法零基础——抽象类和接口
    html5 初步了解
    工作三年,有什么成长?
    Triple协议 和dubbo协议
  • 原文地址:https://blog.csdn.net/dongfangxiaozi_/article/details/126162979