首页 百问百答 帖子详情
gnn与cnn的区别
收藏
快速回复
百问百答 问答学习资料 1050 0
gnn与cnn的区别
收藏
快速回复
百问百答 问答学习资料 1050 0

1、形式和使用场景上的异同
CNN用来处理传统的图像数据,而GNN模仿了CNN,希望能够处理CNN处理不了的结构化数据。

具体地说:CNN用一个可学习的卷积核提取每个卷积滑窗内的特征,也就是说在每个卷积滑窗内加权求和每个像素特征得到一个特定的值。而GNN由于每个节点的邻居数量不一样,无法直接定义统一大小的滑窗,因此在每个节点的邻居范围内,去节点特征的平均值,然后再经过线性变换得到更为精细的节点特征。与CNN不太一样的地方是:CNN的卷积核是可以学习的参数,而GNN(以GCN为例)的卷积核是对于每个节点周围邻居特征取平均。这样会导致最终CNN可以堆叠多层达到很好的特征提取效果,但是GNN堆叠多层往往会出现过度平滑的问题。

2、功能上的异同
CNN只关注像素特征层面的信息提取,而GNN多了一个邻接关系,多了一个维度的信息,往往能够提高模型的结果。在医学影像中,大脑的fRMI数据可以看作图像并用CNN来分类。但是各个脑区之间的关联性对于判断整个大脑的病变程度非常重要。主流的做法是将fRMI中的脑区数据提取出来,并且根据各个脑区之间的关联紧密程度构建脑区节点之间的邻接矩阵,以此构建出整个graph。因此用GNN对大脑的fRMI影像构成的graph进行提取特征和分类,可以很好地捕获大脑脑区之间的结构信息,生成更为高质量的大脑特征进行最终的分类。

还有一些场景下,数据只能方便的抽象成graph结构,例如社交数据和分子数据。以分子数据为例,原子作为节点,原子之间的化学键作为原子之间的邻接矩阵,很容易构成一个包含节点特征矩阵和节点邻接矩阵的graph,这样抽象出来的数据更适合用GNN类型的算法处理。

0
收藏
回复
在@后输入用户全名并按空格结束,可艾特全站任一用户