HyperViTGAN:基于Transformer半监督生成对抗网络的高光谱图像分类
原文:《HyperViTGAN: Semi-supervised Generative Adversarial Network with Transformer for Hyperspectral Image Classification》
摘要
近年来,生成对抗网络(GAN)在高光谱图像(HSI)分类中取得了许多优异的成果,因为GAN可以有效解决HSI分类中训练样本有限的困境。然而,由于HSI数据的类不平衡问题,GAN总是将少数类样本与假标签相关联。为了解决这个问题,我们首先提出了一个包含Transformer的半监督生成对抗网络,称为HyperViTGAN。 所提出的HyperViTGAN设计有一个外部半监督分类器,以避免鉴别器执行分类和鉴别任务时的自相矛盾。具有跳跃连接的生成器和鉴别器用于通过对抗性学习生成HSI补丁。提出的HyperViTGAN捕获语义上下文和低级纹理以减少关键信息的丢失。此外,HyperViTGAN的泛化能力通过使用数据增强得到提升。在三个著名的 HSI 数据集 Houston 2013、Indian Pines 2010 和 Xuzhou 上的实验结果表明,与当前最先进的分类模型相比,所提出的模型实现了具有竞争力的HSI分类性能。
本文思路
尽管GAN与卷积神经网络(CNN)和RNN相结合在HSI分类中取得了有竞争力的结果,但在针对序列数据的方法仍然存在一些局限性。对于CNN来说,对于类别众多、光谱特征极其相似的HSI,很难很好地捕捉到序列属性,此外,CNN过于关注空间信息,扭曲了频谱上学习特征中的序列信息。以长短期记忆(LSTM)[34]和GRU[35]为代表的RNN是为顺序数据设计的。RNN能够像顺序网络一样从顺序数据中提取丰富的上下文语义。然而,RNN中的有效光谱信息存储在单个碎片神经元中,无法有效保留超长数据依赖性。此外,顺序网络结构使得难以有效地扩展和并行化LSTM和GRUs的计算。Transformer[36]的出现成功解决了CNN在捕获远程信息方面的不足。与 RNN 相比,Transformer允许并行计算,这减少了训练时间和由于长期依赖性导致的性能下降。计算两个位置之间的相关性所需的操作次数不会随着距离的增加而增加,其自注意力模块比 CNN 更容易捕获远程信息,使Transformer成为当今最前沿的模型之一。视觉 Transformer(ViT)[37]表明,Transformer不仅在自然语言处理(NLP)方面表现出色,而且在图像分类方面也取得了出色的性能。当前最先进的Transformer骨干网络在HSI分类领域也表现出了卓越的性能。
本文方法
在本文中,我们首先针对HSI分类任务提出了一种基于半监督GAN的新型模型HyperViTGAN,并结合目前用于 HSI 分类的前沿且有前途的 Transformer。三个精心设计的基于高光谱ViT的级联元素——生成器、鉴别器和外部分类器——构成了 HyperViTGAN。设计一个具有单个判别输出的判别器和一个具有单个分类输出的外部分类器,可以有效消除当判别器执行分类和判别任务时的自相矛盾。此外,由于HyperViTGAN是专门为HSI设计的,它可以更好地保存频谱序列信息,以避免关键信息的丢失。同时,HyperViTGAN通过数据增强可以获得更好的泛化能力。 本文贡献如下:
- 本文首次提出了一个完全基于Transformer的HSI GAN——HyperViTGAN。HyperViTGAN为单一的判别任务和单一的分类任务分别设计了不同架构的判别器和外部半监督分类器。通过对抗学习和半监督学习,HyperViTGAN可以生成高光谱HSI patch,同时缓解HSI中类别不平衡的挑战。
- 设计了级联架构和跳跃连接,用于生成器、判别器和分类器,以提供类似于内存的信息,从而避免关键组件的丢失并提高分类性能。
相关工作
生成对抗网络
将辅助信息应用于GAN可以有效增强现有的生成模型,因此形成了两种优化方法。第一种方法是使用辅助标签信息来增强原始的GAN,并使用标记数据训练生成器和判别器,即条件GAN(CGAN)[46]。CGAN是为了更好地使用辅助信息来控制GAN而开发的。它在初始GAN模型中添加了一些先决条件,使GAN更加可控。具体而言,CGAN向G和D都添加条件约束c,以引导数据生成过程。第二种方法是通过修改鉴别器,加入一个辅助解码器网络来直接重建辅助信息,从而提高GAN的生成效果,即SGAN
[47],[48]。结合前面两种方法的优点,ACGAN
[49]表明,在GAN的潜在空间中加入更多的架构以及专门的损失函数可以产生高质量的样本。ACGAN被用于HSI分类[29],其框架如图1所示。ACGAN的生成器具有两个输入,条件约束
其中,
视觉 Transformer (ViT)
ViT(Vision
Transformer)[37]是2020年提出的一种无卷积模型,可直接将Transformer应用于图像分类。ViT将图像分成许多大小相等的块,并通过线性变换获取块嵌入。ViT的具体实现如下所述。
为了适应Transformer的输入,2-D图像
其中,
其中,
其中,
具体方法
在这一部分中,我们的HyperViTGAN的示意图首先在图2中说明,然后介绍基于ViT的三个级联操作(即鉴别器、生成器和分类器)的设计。我们将以下技术引入到鉴别器和生成器中,使其能够很好地应用于高精度的HSI分类:
- 高光谱鉴别器和生成器的设计;
- 新设计的外部分类器;
- 跨层自适应融合。
鉴别器设计
ACGAN[29]、[49]的鉴别器同时执行分类和判别两种不同的任务,因此两种损失的设计存在一些缺陷。
首先,单一架构的鉴别器不能同时在两个不同的任务上是最优的。
其次,ACGAN为D设计的损失函数在生成少数类样本方面存在缺陷。
这种设计导致少数类样本被D识别为假样本。因此,鉴别器总是将少数类样本视为假样本,从而损害分类性能。与ACGAN中的判别器设计不同,我们将高光谱判别器(HyperD)设计为仅用于判别任务的单一输出,以便判别器不会自相矛盾。最终,鉴别器训练旨在最大化
(10)。
其中
HyperD中使用的两个主要模块:跨层自适应融合(CAF)和数据增强。
跨层自适应融合 (CAF):由于Transformer中的skip connection只用在单个block中,这削弱了不同层之间的连接。因此,引入CAF模块来加强Transformer的不同层或块之间的关联[38]。CAF的示意图如图 4 所示。
CAF是专为学习跨层特征融合而设计的模块,它使用了中程跳跃连接(SC)机制。令
和 分别是第 层和第 层的输出(或表示)。 设置为128,CAF可以表示为:其中
是具有CAF的第 个块的集成表示, 表示自适应融合的参数。数据增强:为了减少GAN对对抗样本的敏感性和内存开销,我们引入了mixup [51] 来增强真实样本的数据。具体来说,mixup机制在成对样本及其标签的凸组合上训练网络模型,以使网络正则化,从而提高模型的泛化能力,提高其对对抗性攻击的鲁棒性。然后,我们通过在鉴别器训练期间通过mixup叠加真实光谱特征来设计GAN以获得增强数据,这有效地提高了GAN在HSI上的泛化能力。增强的HSI数据的标签是根据 [51] 中获得的计算获得的。
生成器设计
我们遵循 [40]
中的生成器架构,为HSI生成任务设计了一个高光谱生成器(HyperG)。与 [40]
不同,我们使用HSI像素嵌入而不是patch嵌入。这种设计使生成器能够更好地适应高光谱数据。生成器
其中
其中,符号
分类器设计
虽然同时执行分类和判别任务的判别器的设计在HSI分类任务 [29]、[32] 上实现了出色的分类性能,但这种设计迫使判别器收敛到分类和判别任务的单独数据分布 ,从而破坏了基于GAN的模型的整体HSI分类性能。GAN使用单一架构进行分类和判别时无法很好地解决HSI类不平衡问题,判别器容易将假数据与少数类相关联,导致对少数类样本的分类能力较弱。Haque[52]使用GAN和半监督算法,通过补充人工数据来为监督分类器提供辅助。该算法被称为EC-GAN,被证明在小型、真实的数据集上是有效的。这个模型由三部分组成:生成器、鉴别器和分类器。分类器的架构与鉴别器不共享,这避免了在进行判别和分类时出现自相矛盾的情况。受上述问题的启发,我们为HSI分类专门设计了一种半监督的基于ViT的级联外部分类器C,称为高光谱分类器(HyperC)。
其中,
补充
我的理解是,整个图像大小为 ,取patch展平后,就变成 个图像,每幅图像的像素就变为了 ,算上通道数 ,每个图像的大小就是 ,最后每个块的维度就是 。其中,
。此处𝓁 有错误,原论文是 ,相当于这个论文的 ,因为 Transformer 只吃一连串的Embedding (1D) 作为输入,本文将输入图像切分为大小 的区块 (Patch),透过隐藏向量(Constant latent vector) ,将一维的Patch映射到维度为 的线性空间 (Patch Embedding) (Eq. 1),完成将影像从 降维成 。公式(1)中的
对应图中的Extra learnable [discrimination] Embedding,文中说这个参数类似于NLP中的Bert(词向量) [class] token,在 Transformer Encoder 输出的状态为影像的类别 (Eq.4)。不管在预训练或微调都会有一个 Classification head 指到 ,Classification head 在预训练透过 MLP 实现。生成器参考ViTGAN
相当于两个模型交换ViT的输入和输出,以从嵌入中生成像素。具体地,从通过MLP从高斯噪声向量 导出的潜在向量 中生成像素,即, (称为映射网络)。将位置嵌入序列作为输入,并将中间潜在向量 添加到每个位置嵌入中。用通过从 学习的仿射变换(在图中表示为A)计算的self-modulated layernorm形态(SLN)代替归一化 Self-modulated LayerNorm:本文不是将噪声矢量 作为输入发送给ViT,而是使用 来调制等式(14)中的layernorm运算。这被称为自调制[On self modulation for generative adversarial networks],因为调制不依赖于外部信息。 也可能写错了,原文是 ,此处我感觉是 。Mplicit Neural Representation for Patch Generation(隐式神经表示):本文使用隐式神经表示来学习从嵌入
的patch到patch像素值 的连续映射,与傅里叶特征或正弦激活函数结合时,隐式表示可以将生成的样本空间约束到平滑变化的自然信号空间。具体来说,类似于[Image generators with conditionally-independent pixel synthesis], 其中 是 空间位置的傅里叶编码, 是双层MLP。补充一下原文的公式:
鉴别器:
生成器: