论文题目

《图学习卷积神经网络的半监督学习》

1.引言

在本文中,我们针对半监督学习问题提出了一种新颖的图学习卷积网络(GLCN)。 GLCN的主要思想是通过在统一的网络体系结构中同时集成图学习和图卷积来学习一种最能为半监督学习服务的模型。

主要贡献:

1.在GLCN中,既定的标签和估计的标签都被合并,因此可以提供有用的“弱”监督信息来细化(或学习)图的构造,并有助于在CNN中进行图卷积操作以进行未知的标签估计。

2.GLCN可以通过单一优化方式进行训练,因此可以轻松实现。

实验结果,证明GLCN优于最新图卷积网络有的半监督学习任务。

2.相关工作

请用pytorch实现半监督 gan 网络 半监督卷积神经网络_数据


有输入数据X,一共有n个节点,X是一个n*p维的数据集,p可以理解为p维特征

请用pytorch实现半监督 gan 网络 半监督卷积神经网络_卷积_02


X代表数据相当于节点。A代表节点之间的关系,相当于边。

图卷积网络包含一个输入层,若干个隐藏层,和最后的一个感知层。

给定输入X和图A,GCN 在隐藏层中进行以下分层传播:

请用pytorch实现半监督 gan 网络 半监督卷积神经网络_卷积_03


以上是一个经典谱域的卷积公式。

A代表领接矩阵,X代表特征矩阵,W代表权重矩阵,度矩阵,是对A进行标准化操作。o是激励函数。GCN 定义最终的感知层

请用pytorch实现半监督 gan 网络 半监督卷积神经网络_数据_04


在最后的一层经过softmax函数,归一化为0~1之间的数,以便更好地做出预测。

Z代表预测标签

请用pytorch实现半监督 gan 网络 半监督卷积神经网络_深度学习_05


其损失函数是一个交叉滴损失

请用pytorch实现半监督 gan 网络 半监督卷积神经网络_神经网络_06


将每一个标签Zij和真实标签Yij进行比较,求出损失进行最优化。3.图学习卷积神经网络

作者提出了一种新颖的图学习卷积网络(GLCN),它在统一的网络架构中同时集成了图学习和图卷积,因此可以学习用于GCN学习的自适应(或最佳)图。如图所示,GLCN包含一个图学习层,几个卷积层和一个最终感知器层。在下面的,详细解释它们。

请用pytorch实现半监督 gan 网络 半监督卷积神经网络_数据_07


如图所示:前面是一个图学习层,后面紧接着是一个图卷积层,最后再通过感知层,得出预测结果。

3.1图学习的结构

给定一个输入:

请用pytorch实现半监督 gan 网络 半监督卷积神经网络_深度学习_08


设定一个非负函数:

请用pytorch实现半监督 gan 网络 半监督卷积神经网络_神经网络_09


其代表Xi和Xj之间关系的强度

我们实现g(xi,xj)通过单层神经网络,由权重向量a 参数化

最终图学习的公式如下:

请用pytorch实现半监督 gan 网络 半监督卷积神经网络_数据_10


因为a是一个p维向量,x也是一个p维向量,所以相乘就是一个数值,外面是一个激活函数,和数据的标准化。

经过上述标准化操作之后,每一行的数据S的值都有:

请用pytorch实现半监督 gan 网络 半监督卷积神经网络_数据_11


然后通过损失函数调整a的值:

请用pytorch实现半监督 gan 网络 半监督卷积神经网络_机器学习_12


前面的一部分的意思就是,Xi-Xj的值越大,那么我们就期望Sij的值越小。也就是整个损失函数的调整方向嘛,如果Xi-Xj的值越大,那么我们就调整Sij的值越小,已达到整个损失值最小的母的。反之,如果Xi-Xj的值越小,那证明当前的Sij正常不用管。第二部分,是为了控制矩阵S的稀疏性。在另外一篇论文之中有讨论。y是超参数,S的F范数,其中S里面的值被统一设定为:

请用pytorch实现半监督 gan 网络 半监督卷积神经网络_神经网络_13


就是说在Sij中,如果有关系,就为n分之一,如果无关则为0.

补充:对于一些问题如果初始化数据有已经可以用的矩阵(图)A的时候也可以直接带入以上公式使用:

请用pytorch实现半监督 gan 网络 半监督卷积神经网络_数据_14


损失函数:

请用pytorch实现半监督 gan 网络 半监督卷积神经网络_数据_15


然后,还有一个问题就是,当我们输入数据的维度很大的时候,就是输入数据的特征维度很多,那么在训练的时候我们的效果就不会是很好。所以为了解决这个问题,我们建议在低维子空间中进行图学习。 通过降维到低嵌入空间。降维通过一个投影矩阵P,P的维度小于原维度。

所以最终的图学习公式如下:

请用pytorch实现半监督 gan 网络 半监督卷积神经网络_神经网络_16


A代表初始数据可用的矩阵(图),如果初始数据没有,那么就设置为1.

然后损失函数就为:

请用pytorch实现半监督 gan 网络 半监督卷积神经网络_深度学习_17


所提出的图学习网络的整体架构如图所示。

请用pytorch实现半监督 gan 网络 半监督卷积神经网络_数据_18


如图首先对输入数据通过投影矩阵P进行降维,然后在优化参数a学习最好的S,其中P a 都是需要优化的参数。

3.2. 图学习卷积神经网络的结构

如图1所示,GLCN包含一个图学习层,几个图卷积层和一个最终感知器层。 图学习层旨在为图卷积层提供最佳的自适应图表示S。 也就是说,在卷积层中,它基于图学习层返回的自适应邻居图S进行层级传播规则,即

请用pytorch实现半监督 gan 网络 半监督卷积神经网络_机器学习_19


其中S就是学习到的图

又因为有了公式5的性质,那么说就不需要再对图进行标准化,所以公式12变成了:

请用pytorch实现半监督 gan 网络 半监督卷积神经网络_神经网络_20


最后定义感知层为:

请用pytorch实现半监督 gan 网络 半监督卷积神经网络_卷积_21


所以整个网络的参数就包括:

请用pytorch实现半监督 gan 网络 半监督卷积神经网络_卷积_22


整个网络的损失函数为:

请用pytorch实现半监督 gan 网络 半监督卷积神经网络_深度学习_23


参数λ≥0是一个权衡参数。 当λ= 0时,学习最优图S仅基于标记数据(即交叉熵损失),也就是和传统的图卷积差不多了。下图直观的展示了GCN和GLCN收敛的效果

请用pytorch实现半监督 gan 网络 半监督卷积神经网络_机器学习_24


4. 实验

请用pytorch实现半监督 gan 网络 半监督卷积神经网络_神经网络_25


请用pytorch实现半监督 gan 网络 半监督卷积神经网络_数据_26