论文阅读笔记《A new graph-based semi-supervised method for surface defect classification》

核心思想

  本文提出一种基于图神经网络的半监督表面缺陷分类方法(MMGCN),缺陷分类问题由于缺少大规模带有标签的数据集,因此有监督学习方法不容易训练,半监督或无监督的方式更适用于这一任务。另一方面由于类间相似性和类内差异性导致的较差类分离(poor class separation)问题,使得分类任务变得更加困难,而图神经网络(GCN)能够很好的表征类别之间的关系和类内样本之间的关系,能够改善类分离的问题。但常规的GCN还存在一个问题就是计算复杂度比较大,因为要构建一张大图,其中每个节点都表示一个样本,当样本数量上升时,整个网络的空间复杂度和时间复杂度都将快速上升。针对上述问题,本文提出了一种由多个微图(micrographs)构成的图神经网络,用于解决半监督条件下的缺陷分类问题。
在这里插入图片描述

  首先简单介绍一下图卷积神经网络(GCN),网络的流程如上图所示,首先图是由若干个节点(node)和边(edge)构成的,每个节点表示一个样本,而两个节点之间的边就表示这两个样本之间的关系。图神经网络包含两个阶段:聚合节点(Aggregate nodes)和更新节点(Update nodes),聚合节点就是将与某个节点相连的若干个节点的信息,按照相关性进行加权求和:
在这里插入图片描述
式中, l l l表示第 l l l层神经网络, N ( i ) \mathcal{N}_{(i)} N(i)表示与节点 i i i相连的节点集合, A i j l A^l_{ij} Aijl表示节点 i i i和节点 j j j之间的相关性(也就是边的值), h j l h_j^l hjl表示节点 j j j的特征向量。完成节点信息聚合后,要利用一个非线性函数 f u d f_{ud} fud对节点 i i i进行更新,得到下一层网络节点 i i i的特征向量,为了保证过渡平滑,还引入了跳跃链接的思想,将当前层的特征向量 h i l h^l_i hil与更新后的特征向量 f u d ( h N ( i ) l ) f_{ud}(h^l_{\mathcal{N}_{(i)}}) fud(hN(i)l)级联起来:
在这里插入图片描述
  图卷积神经网络通常由多层网路构成,每层网络都重复上述的聚合和更新过程,最终得到节点处的预测结果。在了解了常规的GCN流程之后,我们来看一下本文提出的MMGCN的具体实现过程,MMGCN分为采样模块、特征提取模块和微图构建模块和图卷积神经网络四个部分。
在这里插入图片描述

  采样模块,就是从数据集中获取训练样本,因为本文采用半监督训练的方式,所以采样时即需要有标签样本还需要无标签样本,为了保证类别之间的平衡,每个类别的有标签样本数量都是相同。
  特征提取模块,就是将样本由二维的图像,转化为图神经网络能够使用的高维特征向量,本文采用了一个卷积神经网络 f e m b f_{emb} femb实现了这一过程。并且为了实现将有标签样本的信息传播到无标签样本的过程,每个样本节点还需要包含其对应的标签信息,对于有标签样本其标签信息就是一个独热向量,而无标签样本其标签信息是0。将样本的特征向量和标签信息级联起来构成了一个节点,该过程如下图所示
在这里插入图片描述
  微图构建模块,所谓微图就是由少量样本构成的一个图,特征提取模块已经得到的了节点信息,边信息(也就是节点之间的相关性)则是同构一个邻接矩阵 A A A来表示的,每两个结点之间的相关性由曼哈顿距离来表示,节点与自身之间的距离为1
在这里插入图片描述
这里的距离度量函数 f d i s t f_{dist} fdist也是有一个网络来实现的。
  图神经网络这一步就与普通的GCN相同了,并且要重复多次的微图构建和图神经网络的过程,如下图所示
在这里插入图片描述
  MMGCN的半监督分类过程可以分为两个阶段:训练阶段(Training Part)和标记阶段(Labeling Part)。
在这里插入图片描述

  训练阶段,将带有标签的样本,和从有标签数据集中采样得到的无标签样本,输入到网络中。这里要强调训练阶段中用到的无标签样本是从有标签数据集中采样的,但输入到网络中时并不带有标签信息,标签信息只用于计算损失。该过程如下图所示
在这里插入图片描述
  经过训练阶段,网络具备了根据有标签样本的信息对无标签样本进行类别预测的能力,即标签传播,当分类准确率达到一定程度时,就可以开始标记阶段了。在这一阶段,无标签样本来自于无标签数据集,且一个无标签样本同时输入到多个MMGCN中,每个MMGCN的参数都是冻结的(我认为参数应该也是相同的),但采样模块得到的有标签样本是不同的。每个MMGCN都会输出一个预测结果,通过计算多个结果的平均值,得到当前无标签样本的类别信息,并将该获取到类别标签的样本也补充到有标签数据集中,然后再用更新后的数据集继续对网络进行训练,过程如下图所示
在这里插入图片描述

实现过程

网络结构

  文中使用的网络结构参数如下表所示
在这里插入图片描述

创新点

  • 提出了一种基于图卷积神经网络的半监督缺陷分类算法,解决了缺陷分类中缺少带有标签的样本,类分离效果差的问题
  • 提出了一种由多个微图构成的图卷积神经网络,将一个大图拆分成若干个小的微图,从而解决了GCN中计算复杂度高的问题

算法评价

  本文提出的想法其实与许多基于图卷积神经网络的小样本学习算法非常类似,都是通过标签传播的方式,根据有标签样本的特征信息和有标签样本与无标签样本之间的相关性,来推断无标签样本的类别信息,只不过是将其套用在了缺陷检测的应用上。本文的核心是提出了多个微图的概念,原本的GCN是将整个数据集中的全部样本都构建在一张图中,这样导致节点和边的数量极大,网络的训练和部署都十分困难,而本文则是将大图拆分为多个微图,采用一种类似集成学习的方式,将多个微图的预测结果融合起来,起到了降低计算复杂度,提高算法鲁棒性的作用。

如果大家对于深度学习与计算机视觉领域感兴趣,希望获得更多的知识分享与最新的论文解读,欢迎关注我的个人公众号“深视”。在这里插入图片描述