提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
摘要
在本次的机器学习课程中学习的内容主要是GNN,即图神经网络。其中总的框架分为了两部分,第一,GNN的基础,了解了GNN的概念以及GNN在现实中的实际用途;第二,这部分是重中之重,主要讲述了如何训练出一个性能好的GNN模型,主要的方式用两种,卷积方式以及信号转换方式。
Abstract
The main content learned in this machine learning course is GNN, which is graph neural network. The overall framework is divided into two parts. Firstly, the foundation of GNN, understanding the concept of GNN and its practical applications in reality; Secondly, this section is of utmost importance, mainly discussing how to train a high-performance GNN model using two main methods: convolution and signal conversion.
一、GNN基础
1、什么是GNN
GNN,即Graph Neural Network,是指基于图的神经网络,它是一种特殊的深度学习模型,主要用于处理具有复杂结构的数据,就比如处理数据结构中的红黑树、化学中的复杂化学结构、构成身体之间的蛋白质图像以及地铁线路图等。
2、GNN能处理什么
2.1、分类
GNN能够辨认图像图像进行分类,例如对一种化学物质进行图结构识别,通过对其结构的学习与分析,通过判断该化学物质是否含有某种特定的结构以此来确定该化学物质能否导致导致突变以此进行分类。
2.2、生成
通过让GNN模型不断对相关结构性质的训练、学习,对结构性质有了一定的了解之后,就能够让模型生成所需要的结构物质。例如让GNN模型对化学物质的结构进行学习与训练。让其对化学物质的结构所拥有的性质有了解以后,就可以对模型进行描述物质性质,让其生成特定结构的物质。
2.3、模型推理
对各物体之间性质进行描述,使用GNN模型构成彼此之间的关系网。利用该关系网便能推断相应的结论。例如找凶手,通过对人物属性进行描述,得到人物之间彼此之间的关系,以此推导出人物之间存在的联系,从而推导出凶手。
二 、GNN如何构造模型
1、面临的问题
在图表数据当中,一个节点代表着相关的数据,而这些节点会存在着不一样的特性,这样就导致训练模型的过程会比较困难。这样就引出一个问题,应该如何训练出一个比较性能好的图表神经网络模型。目前的解决方法就是利用一个节点附近相邻的节点来进行相互学习训练,让模型了解彼此之间的关系,这样就能够产生出一个性能比较好的模型。以卷积方式训练作为例子,有两种方式进行训练,第一是利用传统的卷积方式,即利用附近的节点单元进行更新。第二是利用信号系统转化来进行更新。
2、传统卷积方法
在之前的CNN学习当中,通过卷积就能够得出感受野中像素与像素之间的关系,同理我们便可利用这种方法来得出所需要的图中节点与节点之间的关系。如下图所示,通过对输入图进行卷积处理,根据周围相邻的节点来更新,这也称为Aggregation,在得到新的图后再通过Readout处理得到一个数值用来表示整幅图。
2.1、Aggregation详细
对输入图的节点进行量化处理,然后对其进行权值赋值乘积处理。在接着更新的时候根据周围节点的值,进行相加后进行权值赋值乘积更新,得到新的图节点。如下图所示,隐藏层0就是对输入层节点值进行权值赋值乘积处理,然后接着隐藏1便是对赋值图层进行更新,利用周围节点的值相加后,进行权值赋值更新处理。
2.2、Readout详细
对图的节点进行多次卷积的量化处理,然后对每次的卷积的所有节点值进行和运算,接着对所有的和再进行颜值乘积处理后再将这几次进行和处理,便得到最后结果。如下图所示。模型共进行了三次卷积处理,把三次卷积处理的结果进行和运算,然后分别进行权值乘积运算,最后再将其加起来变得到最后结果,以该结果来表示这个图。
2.3、其他卷积方法
DCNN(Diffusion-Convolution Neural Network),每次卷积时候选取距离不同的节点进行卷积处理,比如第一次取距离为1,第二次取距离为2,以此类推。
MoNET(Mixture Model Networks),每次卷积的时候利用类似距离公式处理,比如h3到h0的距离为u(x,y),然后利用每个u与相应的点进行权积处理,最后将所有权积进行和处理得到节点新的值。
GAT(Graph Attention Network),与MoNET的方法类似,只是其u函数变成了f(x,y)函数,通过f(x,y)计算出其energy,再通过权积和进行更新
GIN(Graph Isomorphism Network),如下图所示,v为当前节点,u为附近节点,经过下列变换可得出相应的结果。
3、信号转换
3.1、信号转换的概念与实现方法
图的信号转换的主要思想,就是把节点与节点之间的关联性转化成一种信号,让后反过来通过信号来,直观的反映节点与其他节点之间的联系。它的主要方法就是把输入值与信号转换参数进行乘积再求和得出最后的结果,以该结果来表示这个图。所以最主要的就是如何求出信号转换参数,主要步骤就是,一、求出Graph Laplacian;二、根据Graph Laplacian反过来求出频率以及对应的向量;三、根据频率算出影响参数;四、将评率向量与频率影响参数以及输入值作向量乘积便得到最后的结果。
3.2、求Graph Laplacian
Graph Laplacian,简写为L。根据下图所示,要求出L就是要散出D和A。其中D是一个对角阵,对角阵上的数值表示每个节点与周围节点之间有联系的总数,假如一个节点与周围三个节点有联系,即对应的对角阵上的值为3。A则是节点与节点之间的联系图,假如节点1与节点二上有联系,则对应矩阵的(0,1)的值为1,如果没有联系则为0。最后根据L=D-A,得出L。
3.3、求频率以及对应的向量
根据上图,可以知道知道L=U
Λ
\Lambda
ΛUT,根据求出L的特征值便得到
Λ
\Lambda
Λ矩阵,根据特征值也能顺利地得出对应的特征向量,U矩阵也顺利地算出。如下所所示,便是一个计算
Λ
\Lambda
Λ与U矩阵的例子
3.4、算出频率的影响参数
由上面克制
λ
\lambda
λn是算出来的频率值,也是Graph Laplacian的特征值矩阵的值。频率的影响参数,就是在该频率下对各个节点的信号大小的影响,该值的大小为Graph Laplacian的各个频率向量un与节点的信号向量f作向量乘积。如下图所示,便是在各个频率下的影响参数大小的表示。
总结
本周学习了GNN模型,课程一开始以我曾经的知识开始讲述,觉得GNN会比较地简单,学到后期发现信号转换的知识是真的无比地难,经过多次观看学习视频才能看懂相应的知识点,感觉信号转换的这一概念会对后期的学习有很大的帮助,需要继续学习,不断完善自己!