论文题目:《Generative Adversarial Networks for Hyperspectral Image Classification》

论文作者:Lin Zhu, Yushi Chen, Member, IEEE, Pedram Ghamisi, Member, IEEE, and Jó n Atli Benediktsson, Fellow, IEEE

论文发表时间:2018

网络简称:3D-GAN

发表期刊:IEEE Transactions on Geoscience and Remote Sensing

Contributions

  1)本文首次探索了GAN在高光谱数据处理中的应用。通过精心设计的GAN生成了包含1D spectra 和 3D spectral-spatial patches的对抗样本。

  2)提出了光谱分类器和光谱-空间分类器两种GANs框架用于HSIs分类。该框架使用精心设计的cnn对人机交互进行分类,并采用正则化技术进行对抗性训练。

  3)首次采用对抗性样本进行HSIs分类,对上述GANs进行微调以提高分类性能。

  4)在训练样本有限的情况下,在三个知名的高光谱数据集上对所提出的方法进行了测试。

  Note:这种对抗性训练提高了判别CNN的泛化能力,这在训练样本有限的情况下非常重要。

GAN

  GAN是一种新的模型,通常包含生成模型G和判别模型D。模型G和D以对抗性的方式进行训练,其中G试图生成尽可能真实的假输入,D试图对真实输入和假输入进行分类。在这个对抗性博弈中,双方都希望得到最优的结果(即D可以得到最好的分类结果,G可以生成与真实数据分布最相似的伪数据)。通过两个网络的对抗和竞争,在使用有限的训练样本时,鉴别器的训练过程将持续而有效地进行,而不会立即陷入过拟合的困境。此外,GAN生成的样本可以用作虚拟样本。合理使用虚拟样本可以提高分类性能。本文利用生成的样本来提高分类精度,实验结果证明了使用这些样本的有效性。下图为GAN的总体结构。

  在训练过程中,给训练样本标号,来自真实数据的样本为1,来自生成数据的样本为0。鉴别器D被训练为最大化log(D(x)),这是将正确标签分配给正确源的概率。而生成器G被训练为最小化log(1-D(G(z)))。因此,优化的最终目的是解决极大极小问题:

  但是通过计算和评估发现,当鉴别器D具有真实样本的高概率分布时,D中的梯度可能会消失,导致训练过程停止。因此,修改后的损失函数可以写成如下优化形式:

Related Work

  为了解决GAN的稳定性问题,在G和D中使用深度卷积网络的深度卷积生成对抗网络(DCGAN)架构被提出。由于原始GAN不适合用于多类图像的分类,Semi-GAN被提出,将真实训练数据的标签导入判别器D。GAN的概念被扩展为一种带有半监督方法的条件模型。此外,Odena提出了可用于图像分类的辅助分类器GAN (AC-GAN),将其鉴别器D修改为可输出多类标签概率的softmax分类器。我们的网络是基于AC-GAN理论而形成的,而目标函数是经过修改的。根据多分类损失对参数进行优化,使其比传统的GANs更合适地优化损失函数。

Proposed Method  

  提出该方法的总体结构:

  为了可以做多分类任务,给输入噪声z和真实数据x加入真实数据分类标签。加入标签或其他条件,通过与原始GAN的输入进行共同作用,可以指导生成自己期望的数据。目标函数包含两个部分:正确输入数据SL的对数似然和CL的正确类标签的对数似然:

  因此D被优化以最大化Ls + Lc,而G被优化以最大化Lc - Ls。 当G能够生成与真实数据最相似的假数据,而D无法区分假数据和真实数据时,理论上G和D都会获得最优化的结果。这样,我们可以证明整个网络达到了纳什均衡条件。

  我们设计了光谱矢量和光谱空间信息结合的两种框架,前者称为1D-GAN,后者称为3D-GAN。上述两个框架中的G和D都是卷积网络的形式。G采用分步卷积神经网络(转置卷积)的形式(因为是生成模型->需要上采样),D采用卷积神经网络。在鉴别器D之后,并行应用sigmoid分类器和softmax分类器,分别对真实/虚假样本和hsi进行分类。

1D-GAN:

  由于原始HSI可获得数百个波段,这意味着输入具有高维,很难训练生成器G(即训练阶段不稳定)。也就是说,由于冗余度高,生成器无法有效地模拟真实数据。主成分分析(PCA)可以通过将光谱维数降至合适的尺度来压缩整个图像,因此,我们基于PCA提取HSIs的光谱特征,保留了10个主成分。在卷积网络中,任何池化层都被stride convolutions(鉴别器)和fractional-strided convolutions(生成器)取代。

  噪音z发送到生成器中的大小是(1*1*1),通过生成器的卷积转换后,大小为(10*1*1)。在网络训练期间,假设原始数据集有N个类。首先,每个生成的样本通过网络向前传递,并通过取概率预测向量的最大值为其分配一个标签。因此,这些假样本可以用这些标签在网络中训练。此外,生成的样本不属于任何类别的真实样本。由于真实样本和生成样本的差异,因此创建一个新的类标签(即N+1),每个假样本都被赋予这个新标签。1D-GAN中的生成器和判别器结构如下:

3D-GAN:

  用PCA把数据将为3个主成分,并保留空间信息。对生成器和鉴别器都进行了批处理归一化处理,去除了全连通的隐含层。其余步骤与1D-GAN类似。输入噪声的大小为100*1*1,生成器将输入转换为大小为64*64*3的假样本。3D-GAN中的生成器和判别器结构如下:

  实验结果(KSC):

Conclusion

  本文首次探讨了GAN在HSIs分类中的有效性和实用性。在GANs的帮助下,深度CNN在分类精度方面比传统CNN有更好的表现。

  该算法缓解了CNN引起的过拟合问题。具体设计了两个框架:(1)基于光谱向量的一维GAN框架和(2)结合光谱和空间特征的三维GAN框架。与其他最先进的方法相比,这两种体系结构在特征提取和图像分类方面表现出了出色的能力。在提出的GANs中,使用PCA来降低输入的高维数,这对稳定训练过程非常重要。由于深度模型中存在大量的可学习参数(如权值),深度CNN存在过拟合的问题,而GAN可以看作是一种正则化技术,可以缓解训练过程中的过拟合现象。此外,本文首次展示了GAN生成的HSI样本,这可能为高光谱数据生成打开了一个新的窗口。更重要的是,本文首次将生成的对抗样本作为HSIs分类的训练样本。这些样本显著提高了分类性能。上述技术显示了GANs在HSI分类方面的巨大潜力。

 
 

《Generative Adversarial Networks for Hyperspectral Image Classification 》论文笔记的更多相关文章

  1. 《Vision Permutator: A Permutable MLP-Like ArchItecture For Visual Recognition》论文笔记

    论文题目:<Vision Permutator: A Permutable MLP-Like ArchItecture For Visual Recognition> 论文作者:Qibin ...

  2. [place recognition]NetVLAD: CNN architecture for weakly supervised place recognition 论文翻译及解析(转)

    https://blog.csdn.net/qq_32417287/article/details/80102466 abstract introduction method overview Dee ...

  3. 论文笔记系列-Auto-DeepLab:Hierarchical Neural Architecture Search for Semantic Image Segmentation

    Pytorch实现代码:https://github.com/MenghaoGuo/AutoDeeplab 创新点 cell-level and network-level search 以往的NAS ...

  4. 论文笔记——Rethinking the Inception Architecture for Computer Vision

    1. 论文思想 factorized convolutions and aggressive regularization. 本文给出了一些网络设计的技巧. 2. 结果 用5G的计算量和25M的参数. ...

  5. 论文笔记:Fast Neural Architecture Search of Compact Semantic Segmentation Models via Auxiliary Cells

    Fast Neural Architecture Search of Compact Semantic Segmentation Models via Auxiliary Cells 2019-04- ...

  6. 论文笔记:ProxylessNAS: Direct Neural Architecture Search on Target Task and Hardware

    ProxylessNAS: Direct Neural Architecture Search on Target Task and Hardware 2019-03-19 16:13:18 Pape ...

  7. 论文笔记:DARTS: Differentiable Architecture Search

    DARTS: Differentiable Architecture Search 2019-03-19 10:04:26accepted by ICLR 2019 Paper:https://arx ...

  8. 论文笔记:Progressive Neural Architecture Search

    Progressive Neural Architecture Search 2019-03-18 20:28:13 Paper:http://openaccess.thecvf.com/conten ...

  9. 论文笔记:Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Image Segmentation

    Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Image Segmentation2019-03-18 14:4 ...

  10. 论文笔记系列-DARTS: Differentiable Architecture Search

    Summary 我的理解就是原本节点和节点之间操作是离散的,因为就是从若干个操作中选择某一个,而作者试图使用softmax和relaxation(松弛化)将操作连续化,所以模型结构搜索的任务就转变成了 ...

随机推荐

  1. 乐观锁和悲观锁在kubernetes中的应用

    数据竞争和竞态条件 Go并发中有两个重要的概念:数据竞争(data race)和竞争条件(race condition).在并发程序中,竞争问题可能是程序面临的最难也是最不容易发现的错误之一. 当有两 ...

  2. 字符串运算符&&三元运算符

    public class Demo01 { public static void main(String[] args) { //字符串连接符 + String int a=20; int b=10; ...

  3. day06 Socket_线程API_线程并发安全

    使用多线程实现多客户端连接服务端 流程图 服务端代码改造: package socket; import java.io.BufferedReader; import java.io.IOExcept ...

  4. 技术分享 | 简单测试MySQL 8.0.26 vs GreatSQL 8.0.25的MGR稳定性表现

    欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. M ...

  5. Java开发学习(二十三)----SpringMVC入门案例、工作流程解析及设置bean加载控制

    一.SpringMVC概述 SpringMVC是隶属于Spring框架的一部分,主要是用来进行Web开发,是对Servlet进行了封装.SpringMVC是处于Web层的框架,所以其主要的作用就是用来 ...

  6. powershell 执行策略

    前言 上一篇博文,我介绍了一下powershell和cmd的对比.通过学习,我发现powershell的确比cmd更加power,也更加适应现在的使用场景. 那么本文将继续介绍一个powershell ...

  7. Apache DolphinScheduler 1.2.0 task 任务存储结构说明

    本文章经授权转载 Table of Contents 任务总体存储 Shell节点 SQL节点 存储过程节点 SPARK节点 MapReduce(MR)节点 Python节点 Flink节点 HTTP ...

  8. feign的fallback操作

    Fallback可以帮助我们在使用Feign去调用另外一个服务时,如果出现了问题,走服务降级,返回一个错误数据,避免功能因为一个服务出现问题,全部失效. 依赖: <dependency> ...

  9. 【AGC】如何使用认证服务与云数据库处理用户信息

    ​使用场景 华为 AGC认证服务可以为应用快速构建安全可靠的用户认证系统,可以实现多种方式关联认证登录.而如何处理这些多种登录方式的用户信息,例如在应用中发布一个活动,哪些用户参加了哪一个活动,这些信 ...

  10. java中的字符流知识点总结

    java中字符流 字符流:对文本的读取,速度比字节流快 常见的字符流:Reader 和 Writer Reader是InputStreamReader的父类,InputStreamReader是Fil ...