如何使用 GAN 从图像中进行无监督特征提取?

数据挖掘 特征提取 无监督学习
2021-10-06 03:35:16

我已经了解 GAN 在两个网络(生成网络和判别网络)相互竞争时是如何工作的。我已经构建了一个 DCGAN(具有卷积鉴别器和反卷积生成器的 GAN),它现在成功地生成了类似于 MNIST 数据集中的手写数字。

我已经阅读了很多关于 GAN 从图像中提取特征的应用程序。如何使用我训练的 GAN 模型(在 MNIST 数据集上)从 MNIST 手写数字图像中提取特征?

3个回答

通常要提取特征,您可以在输出之前使用网络的顶层。直觉是这些特征是线性可分的,因为顶层只是逻辑回归。

对于 GAN,您可以使用鉴别器中的特征。如果输入来自训练数据集“真实图像”,这些特征应该给出概率。在 Radford 的 DCGAN论文中,他们使用了判别器的所有卷积层,并为 CIFAR-10 运行最大池化层提取特征。

为了评估 DCGANs 为监督任务学习的表示的质量,我们在 Imagenet-1k 上进行训练,然后使用来自所有层的判别器的卷积特征,将每一层表示进行最大池化以产生 4×4 的空间网格。然后将这些特征展平并连接起来形成一个 28672 维的向量,并在它们之上训练一个正则化的线性 L2-SVM 分类器。

肯尼的回答是正确的——如果你使用卷积D,密集之前的层输出可以作为特征。我的直觉是,它对于 AC-GAN(或类似的架构,除了确定它是假的还是真的之外,还使 D 对输入进行分类)会更好地工作。

有一种称为BiGAN的方法,它添加了一个编码器组件,该组件能够将生成的和训练的样本映射到用于“初始化”生成器的潜在分布z 。作者表明,它可以有效地用作迁移学习和其他任务的特征集。

由于 GAN 由生成器和判别器两部分组成,因此有两种方法可以使用 GAN 作为特征提取器:

  1. Mikhail Yurasov 提出的基于生成器的方式。
  2. Kenny 提出的基于鉴别器的方法。

第二种方式更具争议性。一些研究[1]认为,直观地,由于判别器的目标是区分生成的样本和真实的样本,它只会关注这两种样本之间的差异。但有意义的是真实样本之间的差异,即下游任务使用的样本。

我试图研究这个,我发现提取的特征可以分解为两个正交子空间。第一个空间有助于鉴别器任务,而第二个空间没有它。在大多数情况下,用于区分真实样本和生成样本的特征是噪声,第二个特征空间将是无噪声的。从这个角度来看,虽然判别器的任务不会关注真实样本之间的差异,这对下游任务很有用,但第二个子空间中包含的无噪声特征会起作用。

[1] 约斯特·托拜厄斯·斯普林伯格。分类生成对抗网络的无监督和半监督学习。arXiv:1511.06390 [cs, stat],2016 年 4 月。arXiv 预印本。arXiv:1511.06390 [stat.ML]。纽约州伊萨卡:康奈尔大学图书馆。