生成模型,尝试在同一时间创建一个分类(识别器或编码器)网络和一个生成图像(生成模型)模型。这种方法起源于 Ian Goodfellow 和 Yoshua Bengio(参见论文:Generative Adversarial Networks)的开创性工作。 Alec Radford、Luke Metz 和 Soumith Chintala 的 DCGAN(参见论文:Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks)是一种生成对抗模型,实例化这种模型,能够得到很好的结果。 下面是系统框架图:
DCGAN 识别器的目的是识别输入图像是否真实,或来自数据集,或是生成器生成的伪图。该生成器需要一个随机噪声向量(用 1024 个数值表示)作为输入,并产生一个图像。 在 DCGAN 中,生成器网络如下: 识别器是一个标准的神经网络。详情请见下文。 关键是以并行的方式训练两个网络而不是完全地过度拟合,从而复制数据集。学习特征需要推广到未知的实例,因此用于学习的数据集将不能再用。 Torch7 提供了 DCGAN 训练代码(代码地址:https://github.com/soumith/dcgan.torch),可用于实验中。 在生成器和识别器网络训练好之后,两者便可使用了。主要目标是为其它任务训练一个很好的识别器网络,例如对其它数据集进行分类。生成器则可用于生成随机向量的图像。这些图像有着非常有趣的特性。首先,他们提供了输入空间的平滑转换。看下面这个例子,它展示了在 9 个随机输入向量之间进行移动产出的图像:
输入向量空间还提供数学特性,表明学习特征是根据相似性进行组织的:
由生成器学到的光滑空间表明识别器也具有类似的性质,使它成为图像编码出色的特征提取器。这在不连续图像数据集训练 CNN 网络的经典问题上很有帮助,在这些数据集,对抗性噪声往往致使其走向失败(参见论文:Intriguing properties of neural networks)。 近期对 GAN 训练的一次更新(参见论文:Improved Techniques for Training GANs)取得了在 CIFAR-10(只有 1000 个标记样本)上的 21% 错误率。 最近关于 infoGAN(参见论文:InfoGAN: Interpretable Representation Learning by Information Maximizing Generative Adversarial Nets)的一篇论文能够产生带有可被松解(disentangled)和有更多尤其意义的图片特征的非常锐利的图像。然而他们没有报告在任务或数据集上学习特征的表现,从而作为对比。 另一个有趣的例子是作者使用生成式对抗训练来学习如何产生图像的文本描述。如下图:
我对此工作的赞赏之处在于它使用文本描述作为生成器的输入,这与随机向量完全不同,因此能够准确控制生成器的输出。如下图:
优点: 整个网络的全局训练(global training) 代码和应用简单明了 缺点: 难以训练和转化(conversion) 在某些情况下,与有监督学习的表现相似 需论证展示方法(representation)的可用性(这是所有无监督算法面临的问题) 通过设定不需要标签的无监督学习任务,并设立训练目标解决任务,这些模型直接从无标签的数据学习。 (责任编辑:本港台直播) |