首先上链接台大李宏毅助教讲解GNN图神经网络
图神经网络---台大李宏毅老师助教---听课笔记
一、为什么要用图神经网络
图神经网络和单纯神经网络一个很大的区别就是,图神经网络有节点和边的这种结构。
具体应用上,图神经网络可以识别具有图片,文字等结构信息。
比如识别一个人物的身份的任务就需要首先识别人,然后识别与之相关的其他人的信息(利用边连接),最后综合这些信息得出判断
二、时域上的图神经网络
1、
更新单个节点时,把邻居节点加起来,然后乘以权重;求总输出时,把每一层的加起来,求平均再乘以各自权重相加。
2、
求单个节点的时候,是每一层(n)都算与只距离相差n的节点的和,注意这里可以包括“返回自身”,同时这里的距离都是相对第一层而言的。
在算总输出时,将每一层相同位置的节点组成矩阵,然后乘以权重。
3、
这种方法与上面两种的区别是增加了节点与邻居之间的权重,这个权重是以上这样定义的。
4、
这中方法也是根据注意力定义了权重。
6、
这里面加入了很多之前学习的属性,比如LSTM和max-pooling等,其中LSTM的加入的意义是,LSTM是 与顺序有关的,但是当很多次没有顺序的顺序加进去以后,就会去掉顺序的意义。
三、频域上的图神经网络
之前时域上之所以不对数据和卷积一样做卷积处理,是因为在图神经网络中,各个节点都不规范,没办法引用规范的卷积核进行卷积操作。
这里我们可以把这一理念在频域中运用。
我们知道,在时域中卷积就等于在频域中相乘,这个奠定了在神经网络可以定义在频域的基础。
因此在频域上图神经网路就是把数据先transform到频域上,用filter处理,然后再转回到空域的过程。
首先是一些必备知识
1、
2、定义adjacency matrix和degree matrix
定义Graph Laplacian,注意这是一个半正定的对称阵,可以对其进行特征分解,其中u是单位正交矩阵。
例:(注,求Graph Lanplacian的过程与每个节点具体的数据没有关系,只与图的结构有关)
3、引出频率
这两张图的意义是,首先我们将拉普拉斯矩阵乘以node组成的“向量”,具体意义是得到节点与周围节点之间差距的大小,拉普拉斯矩阵本身的意义也是如此。
频率有能量的意义的,因此这里取平方,得到第二张图。
4、得到频率
这里解释了频率和波形平滑度之间的关系
这里呢我们将L特征分解得到的特征向量看做是一组信号值,因此第一个公式就代表这个节点周围的差异(能量值)。
因此对应的每个特征值就是频率,而特征向量的具体数值就是对应频率下每个位置的响应值(这里暂时不考虑正交的概念)
5、transform–分析
首先是分析
这里既考虑了正交概念,又考虑了频率的因素。
5、transform–合成
这里合成就是普通的频域到时域的转化
将各个频域的频率乘以各自在频域的响应值,然后加和。
6、transform–filter
这里是对角矩阵的函数(也就是是特征是的函数)指的是,theta是与特征值一一对应的。
7、最终形态
最终就是要学一个拉普拉斯函数
比如
或者
但是这都有一个问题就是,就算复杂度和node的数目成正比,而不是想卷积神经网络那样。
这里表示L的n次放代表与与节点距离为n的节点对他的影响
8、应用—ChebNet
解决两个问题
第一,选用与之相关的K个节点
第二、降低计算复杂度
对于第一个问题,可以这样解决
对于第二个问题,可用切比雪夫多项式解决
切比雪夫多项式是递归定义的多项式函数
切比雪夫不等式可以降低复杂度的原因
这样可以让计算轻松很多。
通过递归乘的方式让计算复杂度变成O(KE)。
9、应用—GCN