基于轻量级卷积神经网络和深度聚类的协同学习在有限训练样本下的高光谱图像半监督分类
原文:《Collaborative learning of lightweight convolutional neural network and deep clustering for hyperspectral image semi-supervised classification with limited training samples》
主要问题
- 为了训练一个具有良好泛化能力的深度学习模型,需要大量的数据集和足够的标记数据。然而,地面真相收集和标记工作是昂贵和耗时的。因此,对于许多特定的应用,HSI分类方法被研究为在只有有限数量的训练样本可用时能够处理高维数据。
- 当可用的训练样本有限时,深度学习方法可能会出现过拟合。
本文方法
- 将深度CNN与深度聚类相结合,设计了一种协同学习的半监督HSI分类框架,该框架可以同时迭代学习CNN的参数和深度特征的聚类分配。
- 提出了一种用于深度分层光谱空间特征学习和分类的轻量级3D CNN。所提出的网络比经典的3D神经网络具有更少的参数,这更适合于只有非常有限的训练样本的情况。
- 提出了一种基于近似秩序聚类(AROC)算法的伪标记方法。伪标记方法由于AROC算法具有优异的聚类性能和较低的计算复杂度,可以生成高质量的伪标签,有利于对预训练网络进行微调。
主要思路
- 用于半监督学习的集群标签技术是典型的生成模型。它首先用无监督聚类算法在无标记数据中识别聚类,然后对每个聚类进行标记或学习。这种技术已经证明了聚类和现有标签之间的依赖性。受这一概念的启发,我们提出了一种协同学习模型,迭代学习深度神经网络的参数和深度特征的聚类分配。
本文框架
总览
框架的工作流程(如图1所示)可以概括为以下三步,我们将所有的ground
truth样本分为三组:初始标记训练样本
基于轻量级3D-DPNet的特征提取和分类
受 Mobilenet
的启发,在本文中,我们提出了一种轻量级架构,该架构具有深度卷积和逐点卷积来进行
HSI 分类。所提出的 3D-DPNet 是一个基于深度逐点 (DP) 块的轻量级 3D
CNN。如图3所示,与ResNet中的常规瓶颈块(图3(a))不同,DP块(图3(b))包含一个逐点卷积层(图中简称为PW
conv),一个具有
所提出的3D-DPNet的全部细节如图4所示。该架构由成对的卷积层和最大池化层组成,然后是三个DP块层和一个自适应平均池化层,ReLU神经元跟随所有卷积层,除了最后一个。值得一提的是,自适应平均池化可以根据输入参数自适应地控制输出大小。考虑到不同传感器获得的HSI数据的频带数不同,采用自适应平均池化操作更有利于调整全连接层(即图4(c)中的特征层)的维数,从而得到更灵活的网络。最终自适应平均池的40维输出被用作我们的特征向量(用于AROC),并被馈入一个全连接层,然后是dual-loss损失函数。

dual-loss
为了使3D-DPNet学到的深度特征更好地用于分类和聚类,我们采用了双损失优化策略来训练3D-DPNet,其中softmax损失和所谓的中心损失相结合。中心损失在Wen等人(2016)中首次用于人脸识别,最近用于HSI分类(Guo和Zhu,
2019),并取得了最先进的性能。它通过同时扩大类间变化和减少类内变化来增强深度学习特征的辨别能力,类内变化是通过平均每个提取的特征与相应的类中心之间的距离来定义的。中心损失定义为:

其中
通过深度聚类AROC进行伪标记
当3D-DPNet使用有限的标记样本
与广泛使用欧氏距离的k均值、谱聚类等传统聚类方法不同,提出了一种基于邻域结构差异度量的近似秩序聚类(AROC)算法(Otto
et al.,
2018),具有较低的运行复杂度和较好的聚类性能。AROC算法大致是一种聚类分层聚类的形式,使用基于最近邻居的距离测量。该算法的总体流程是将所有样本初始化为单独的簇,计算簇对之间的距离,合并那些计算距离低于阈值的样本,然后迭代地重新计算一组新的簇到簇距离,并根据新的距离执行合并。这需要定义一个集群到集群的距离度量。在AROC中,样本
其中
其中
如图6所示,形式上,给定两个样本
基于AROC对HSI数据的深层特征进行伪标记。首先,我们对图4(c)中特征层中所有训练样本的学习到的深度判别特征使用秩序距离,通过它们在彼此邻居中的阶数来测量两个样本之间的距离。为每个训练样本计算一个前k个最近邻的集合。然后按照公式(5)计算每个样本之间的成对距离。然后将距离低于阈值的所有样本对进行合并。每个聚类中的所有样本都被分配与大多数样本相同的标签。最后,高置信样本定义为AROC分配的聚类标签与3D-DPNet生成的主标签一致的样本。这些样本及其对应的伪标签被引入到下一次迭代的训练集中。
深度分类与深度聚类的协同学习
为了同时提升深度分类模型和深度聚类模型,我们利用协同学习的方法,提出了AROC-DPNet算法。AROCDPNet算法流程图如图7所示,包括6个步骤:在步骤0中,我们在标记好的训练样本上预训练3D-DPNet。在第一步中,我们使用预训练的3D-DPNet作为未标记样本的特征提取器。然后,在步骤2中,我们从特征层中获得所有训练样本(标记样本和未标记样本)的深度特征。在步骤3中,得到未标记样品的主标签。在步骤4中,将原始标签与AROC结果进行比较,得到未标记样品的伪标签。在步骤5中,更新标记样本和未标记样本。在步骤6中,使用伪标记样本和可用标记样本对预训练的3D-DPNet进行微调。AROC-DPNet算法在算法1中概述。
算法:AROC-DPNet
Input:少量可用的标记训练样本
- 通过式(1)和(2)在
预训练具有双重损失的 3D-DPNet。 - 通过 3D-DPNet 分类获取样本(
和 )的深度特征 和 以及 的主标签 。 - 将所有训练样本(
和 )投影到新的深度特征空间中,通过式(5)在 和 实现AROC算法,得到聚类标签 。 - 比较
和 ,以及那些被认为有很高置信度的匹配标签,确定他们对应的伪标签 。 - 使用
和 对3D-DPNet进行微调。 - 重复步骤2-步骤5,直到
。 - 使用 3DDPNet 最后一次迭代的参数获得
的标签。输出 的标签。