应用|如何使用四种不同的GAN生成可爱的猫咪图?

2017 年 7 月 8 日 全球人工智能

欢迎加入全球最大AI社群>>

背景:我尝试使用几种对抗生成网络(GAN)来生成猫咪图,其中包括 DCGAN、WGAN 和 WGAN-GP,以及低和高分辨率。训练模型则使用 CAT 数据集(没有,却是有这么个东西)。这一数据集包含 10000 余张猫的图片。在训练前,我们必须让图片集中于正面猫脸,剔除数据集中其他方向的图片(作者是手动挑选的,这花了好几个小时...)。最后,用于训练的图片为 9304 张大于 64×64 像素的图片,以及 6445 张大于 128×128 的图片。


一、DCGAN

DCGAN 生成器只需 239 个 epoch,在约 2-3 小时内就能收敛得到非常逼真的图像,但为了得到适当的收敛,需要做一些轻微的调整。你需要分别为 D(鉴别器)和 G(生成器)选择各自的学习率(learning rate),以使 G 或者 D 的效果不会差别太大。这需要非常小心地平衡,但一旦找到了平衡的点,就能得到收敛。使用 64×64 的图像时,最佳的点是鉴别器学习率为 .0005,而生成器学习率为 .0002。没有出现明显的 mode collapse 的问题,最终我们得到了非常可爱的图像!

高分辨率 DCGAN 和 SELU

初步尝试 DCGAN 生成 128×128 像素猫图的所有努力都失败了。但是,把批量规范化(batch normalization)的方法和 ReLU 用 SELU 代替问题就轻松地解决了,这让我可以缓慢(需要六个小时以上)但稳定地收敛和此前相同的学习速率。SELU 是自标准化的,因此不需要进行批量规范化。SELU 论文是在 2017 年 6 月 8 日出现的,目前还没有太多使用它的 GAN 研究,这种方法看起来可以大幅度提高 GAN 的稳定性。


在结果中我们可以看到,猫不像之前那么好看了,还会出现大量类似面孔的黑猫。这主要是因为样本大小为 N = 6445 而非原来的 N = 9304(这次实验只对大于 128×128 的图片进行了训练)。不过,其中的一些结果看起来质量很高,而且因为分辨率的提升,该结果仍可以被视为有意义。

SELU 论文:https://arxiv.org/abs/1706.02515



二、WGAN

WGAN 生成器的收敛速度非常慢(花了4-5小时,600+epoch),而且只有使用64个隐藏节点(hidden node)时才收敛。我无法在使用 128 个隐藏节点时使生成器收敛。使用 DCGAN 时,需要调整的学习率很多,但当它不收敛时可以快速看到(当 D 的损失值为 0,或 G 的损失在开始时为 0 时),但是使用 WGAN 时,你需要让它运行许多 epoch,才能知道是否收敛。


从视觉上看,出现了一些相当明显的 mode collapse。例如,许多猫出现虹膜异色,有些猫一只眼睛闭着一只眼睛睁着,或者鼻子很奇怪。总体而言,结果不如 DCGAN 那么好,但由于 WGAN 神经网络没有那么复杂,所以这样比较可能不公平。它似乎也陷入了局部最优(local optimum)。到目前为止,WGAN 效果令人失望。

 

WGAN-GP(使用正则化而非 weight clipping 的改进版 WGAN)可以解决这些问题。在 Gulrajani 等人的论文“Improved Training of Wasserste in GANs”(2017)中,他们训练了一个 101 层的神经网络来生成图像!所以我想我训练的 5 层,128 个隐藏节点的生成器可能是问题所在。Adam 优化器还具有一些特征,可以降低 mode collapse 以及令其陷入不利的局部最优的风险。这可能有助于解决 WGAN 的问题,因为 WGAN 不使用 Adam,而 DCGAN 和 WGAN-GP 都是使用它。


三、WGAN-GP

WGAN-GP 生成器收敛的速度非常慢(超过 6 个小时),但它几乎已经帮你完成了所有设置。它是开箱即用的,无需任何调试。你也可以增加或减少学习速率,这不会造成太多问题。所以在这个任务中,WGAN-GP 赢得了我的青睐。


生成的猫非常多样化,而且没有明显的 mode collapse,这是相对 WGAN 的一个重大改进。但是,生成猫的外观非常模糊,就像高分辨率图片被变成低分辨率了一样,我不知道这是什么原因。可能是 Wasserstein loss 的特点。我想使用不同的学习率和架构可能有所帮助。这需要进一步的尝试,肯定还有很大的潜力。

WGAN-GP 论文:https://arxiv.org/abs/1704.00028


四、最小二乘GAN

LSGAN 是一种略为不同的方法,在这里我们得试图最小化鉴别器输出和分配标签的平方距离;研究者建议:对于真实图像为 1,对于鉴别器更新时的假图像使用 0。Hejlm 等人(2017)的研究则认为:对于真实图像为 1,对于鉴别器更新时的假图像使用 0,而生成器更新时的假图像用 0.5 以寻找边界。


作者还没有时间运行整个流程,但它看起来非常稳定,而且可以输出漂亮的猫图。尽管它总体稳定,有一次损失函数和梯度还是爆炸了,猫变成了无意义的图片。如下图所示。所以,LSGAN 不是完全稳定的。通过 Adam 选择更好的超参数可以帮助解决这个问题。在失败时(很少见),它可以让你无须像 DCGAN 那样调整学习速率,这个方法可以让你生成漂亮的猫图。

LSGAN 论文:https://arxiv.org/abs/1611.04076


LSGAN 的第一作者 Xudong Mao 发给我一张128×128分辨率的 LSGAN 生成的猫的图像,证明 LSGAN 可以生成跟 DCGAN 一样好的图,甚至更好。结果如下图:


CAT 数据集https://web.archive.org/web/20150703060412/http://137.189.35.203/WebUI/CatDatabase/catData.html

项目 GitHub

https://github.com/AlexiaJM/Deep-learning-with-cats

热门文章推荐

百度Apollo:无人驾驶技术发展成熟仅需3年左右!

阿里出了个Take Go无人便利店,比亚马逊还厉害!

大数据:99%的数据是无用的僵尸数据!

突发!长征五号遥二卫星发射任务失败

重磅!微软宣布业务重点调整将专注ai云!

最新,吴恩达正式加入Drive.ai董事会!

老司机:用gan去除(爱情)动画片中的马赛克和衣服!

海康威视3月市值涨1000亿,全球市场占有率第一!

喜讯!腾讯开源十亿级模型训练平台:Angle!

GoogleBrain:No RNNs,NoCNNs,Just attention!

登录查看更多
0

相关内容

WGAN主要从损失函数的角度对GAN做了改进,损失函数改进之后的WGAN即使在全链接层上也能得到很好的表现结果。
【干货书】高级应用深度学习,294页pdf
专知会员服务
151+阅读 · 2020年6月20日
专知会员服务
107+阅读 · 2020年5月21日
【CVPR2020】MSG-GAN:用于稳定图像合成的多尺度梯度GAN
专知会员服务
27+阅读 · 2020年4月6日
【综述】关键词生成,附10页pdf论文下载
专知会员服务
52+阅读 · 2019年11月20日
生成式对抗网络GAN异常检测
专知会员服务
114+阅读 · 2019年10月13日
能生成逼真图像的不只有 GAN
机器学习算法与Python学习
8+阅读 · 2019年6月6日
【干货】GAN最新进展:8大技巧提高稳定性
GAN生成式对抗网络
31+阅读 · 2019年2月12日
2018 年最棒的三篇 GAN 论文
AI科技评论
4+阅读 · 2019年1月14日
相对的判别器:现有GAN存在关键属性缺失
论智
33+阅读 · 2018年7月4日
GAN正在成为新的深度学习
新智元
7+阅读 · 2018年6月9日
GAN猫的脸
机械鸡
11+阅读 · 2017年7月8日
Seeing What a GAN Cannot Generate
Arxiv
8+阅读 · 2019年10月24日
Arxiv
8+阅读 · 2018年5月21日
Arxiv
4+阅读 · 2018年5月21日
Arxiv
4+阅读 · 2018年4月9日
Arxiv
3+阅读 · 2018年3月14日
VIP会员
相关资讯
能生成逼真图像的不只有 GAN
机器学习算法与Python学习
8+阅读 · 2019年6月6日
【干货】GAN最新进展:8大技巧提高稳定性
GAN生成式对抗网络
31+阅读 · 2019年2月12日
2018 年最棒的三篇 GAN 论文
AI科技评论
4+阅读 · 2019年1月14日
相对的判别器:现有GAN存在关键属性缺失
论智
33+阅读 · 2018年7月4日
GAN正在成为新的深度学习
新智元
7+阅读 · 2018年6月9日
GAN猫的脸
机械鸡
11+阅读 · 2017年7月8日
相关论文
Top
微信扫码咨询专知VIP会员