GAN:PacGAN-生成对抗网络中两个样本的威力

论文:https://arxiv.org/pdf/1712.04086.pdf

代码:GitHub - fjxmlzn/PacGAN: [NeurIPS 2018] [JSAIT] PacGAN: The power of two samples in generative adversarial networks

发表:2016

GAN:PacGAN-生成对抗网络中两个样本的威力_第1张图片

一、摘要

1:GAN最重大的缺陷是:mode collapse。即无论是否基于多样性数据进行训练,GAN总倾向于产生相似的样本。

2:文中提出一种 packing 的方法来处理 mode collapse问题。具体做法:修改调整判别器,使其决策是基于同类的多个样本(不用管样本是真实样本还是生成样本)。通俗一点就是:将判别器的输入改成多个样本,这样判别器可以同时基于看到的多个样本进行决策,可以从一定程度上缓解  mode collapse。
GAN:PacGAN-生成对抗网络中两个样本的威力_第2张图片

二、架构创新

常规GAN的做法:使用单一判别器,将单一样本映射为单一的soft标签。

本文GAN的做法:使用增广判别器,将多个样本映射为单一的soft标签。

把相同label的样本拼接就是文中的 packing 技术,接收拼接 packing 样本的判别器就叫 packed 判别器。ImprovedGAN 中也提出了mini-batch的技巧,来处理 mode collapse 问题。

GAN:PacGAN-生成对抗网络中两个样本的威力_第3张图片

三、如何修改常规判别器使其成为 packed 判别器呢? 

保持判别器中 hidden layers 不变,只增加 input layer 中 nodes 的数目。可以参考一下下图中的Fig 1。左侧是默认的判别器,右侧是 packed 2 个样本的判别器,输入节点翻倍。 

GAN:PacGAN-生成对抗网络中两个样本的威力_第4张图片

GAN:PacGAN-生成对抗网络中两个样本的威力_第5张图片 文中还对 DCGAN 如何 pack 进行了举例:

minist 手写数据是 28x28x1, PacDCGAN5就是把 label 相同的5张图(可以是real也可以是fake)拼接成 28x28x5的数据,送入判别器。   

GAN:PacGAN-生成对抗网络中两个样本的威力_第6张图片

四、如何训练 packed 判别器呢? 

 保持和正常 GANs 同样的训练过程。区别就是有 packed sample。直觉上来说:packing 有助于判别器缓解 mode collapse 问题,因为packing 样本的丰富性远高于single 样本。GAN:PacGAN-生成对抗网络中两个样本的威力_第7张图片

 五计算复杂度呢?

取决与使用的GANs架构。毕竟input layer 的node 节点增多了嘛。不过也是可控的:作者的建议是packing 2个或者3 个样本就可以取得不错的效果。

GAN:PacGAN-生成对抗网络中两个样本的威力_第8张图片

六、实验结果

左侧是real样本,中间是DCGAN生成样本,右侧是PacGAN2生成样本,确实生成质量改善了。

GAN:PacGAN-生成对抗网络中两个样本的威力_第9张图片

GAN:PacGAN-生成对抗网络中两个样本的威力_第10张图片

你可能感兴趣的:(AIGC,生成对抗网络,人工智能,神经网络)