【第十二周】李宏毅机器学习笔记10:生成式对抗网络2

摘要

本周主要学习了上周关于生成式对抗网络的剩余知识,了解了为什么 GAN 难以训练。此外,还学习了如何去评估 GAN 的性能以及在训练 GAN 过程中比较容易遇到的问题。最后还学习了条件生成对抗网络以及如何实现在非配对数据中学习。

Abstract

This week, I mainly reviewed the remaining knowledge about Generative Adversarial Network studied from last week and understood why the GANs are difficult to train. In addition, I also learned how to evaluate the performance of GANs and common problems encountered during the process training GANs. Finally, I learned Conditional GAN and how to implement learning from unpaired data.

1.GAN is Still Challenging

在这里插入图片描述

Generator 和 Discriminator 两部分是互动的,一旦一个出现问题,那么训练可能就停下来了,两者一定要棋逢对手。因为我们不能保证每次训练的 loss 都能降低,所以对 GAN 进行训练是一件很困难的事情。

在这里插入图片描述
当我们把 GAN 用于文字生成任务时,当 Decoder 的参数发生微小的变化时,得到的分布也会随之发生微小的变化,但是对于生产出来的文字并没有发生变化,因此 Discriminator输出的分数也不会发生改变,于是无法计算微分也就不能使用梯度下降法 。

2.Evaluation of Generation

在这里插入图片描述
对于这个 GAN 的评估我们可以这样做:将GAN产生的图片放到一个影像辨识系统里,输出是一个概率分布,如果概率分布比较平坦说明机器无法辨识是哪个种类的图片,如果概率分布比较集中则说明生成出来的效果比较好。但是,采用这种办法可能又会导致几个新的问题。

2.1 Mode Collapse

在这里插入图片描述
第一个问题是Mode Collapse,它是指训练开始时,产生的图片质量比较不错,当训练很久后,会发现它产生的图片数目比较匮乏。发生 Mode Collapse 现象的原因是 Generation 产生了 Discriminator 分辨不了的图片后,Generation会抓住这一点,一直产生类似的图片。

2.2.Mode Dropping

在这里插入图片描述

另一个问题是Mode Dropping,它是指产生的资料只有真实资料的一部分,虽然产生的资料分布表示不错,但是真实资料的分布比它更加丰富。

2.3.Diversity

在这里插入图片描述
我们将一批图片输入 CNN 网络进行分类,最后得出来的平均概率如果分布比较集中,说明多样性比较低。
在这里插入图片描述
反之,如果输出的概率比较平坦,说明多样性比较高。

在这里插入图片描述
IS的问题在于它可以判断生成图像的正确类型,但不能保证生成图像的多样性和质量。Fréchet Inception Distance可以解决这个问题,它的主要思想是通过输出分类的倒二层的特征进行判断。

在这里插入图片描述
假如用FID来评估 GAN 的话,当 FID 很小的时候,生成器有可能生成出来和真实数据一摸一样的图片,但是这并不是我们想要的结果。评估 GAN 的性能是一个非常值得研究的题目。

3.Conditional GAN

在这里插入图片描述
Conditional GAN是指额外地输入一段向量,这段向量规定生成的图像需要包含什么特征。对于文生图任务来说,可以把规定好的条件通过一个 RNN 或 Transformer 等结构传入 Generator,然后就可以生成具备相应条件的图片。

在这里插入图片描述
在 Conditional GAN 里要对 discriminator 做不一样的设计。因为只把图像 y 输入 discriminator 中的话,discriminator 会忽略掉输入的条件 x。

在这里插入图片描述
我们需要让 discriminator 同时接受 x 和 y 进行评分,这就要求我们的训练资料是一组文字-图像对

在这里插入图片描述
除了文生图之外,Conditional GAN 还可以应用于图生图,这种任务我们称之为 Image translation 或者是 pix2pix 。

在这里插入图片描述
图生图任务的流程实际上和文生图也差不多。

在这里插入图片描述
Conditional GAN 甚至还可以利用声音来生成图像,对于这个任务来说,收集数据尤为简单,我们可以利用电影资源来收集数据。电影中每一帧对于了一段声音讯号,这个特性非常适合我们进行训练。

4.Learning from Unpaired Data

在这里插入图片描述

普通的网络比较难处理没有配对的资料,但是GAN可以。

在这里插入图片描述
在 Image Style Transfer 中,我们要训练一个Deep Network,现在的训练资料是不成对的(unpaired),因此考虑用GAN来解决问题。

在这里插入图片描述

输入是 Domain x 图片的分布,输出是 Domain y 图片的分布。

在这里插入图片描述

如果单纯地和先前任务一样的做法去实现 Image Style Transfer ,生成器生成出来的图片会无视掉输入的图片,因为生成器只负责生成出来一张可以骗过判别器的图片。

在这里插入图片描述
实际操作与之前的GAN不同在于Generator会无视输入,也就是生成的二次元图片与输入的真人图片没有联系,因此考虑使用Cycle GAN。Cycle GAN会训练两个Generator,这两个Generator的作用是将原来的真人图转成二次元图,再将二次元图转成真人图,目标是输入的真人图与输出的真人图越接近越好。

在这里插入图片描述
除了影像风格转换,Cycle GAN 甚至可以用于 Text Style Transfer。

总结

生成对抗网络(GANs)虽然强大且具有广泛应用潜力,但由于其独特的架构和训练方式,存在一些挑战使其训练变得困难。GANs的训练过程中,生成器和判别器之间的对抗博弈可能会导致训练不稳定,从而导致训练过程中的模式崩溃(mode collapse),即生成器生成的结果过于单一,不能覆盖真实数据的多样性。并且生成器可能只学习生成少数几种模式,而忽视了其他可能的模式,这会导致生成结果的多样性和质量下降。对于GANs生成的结果进行定量评估通常很困难,虽然有一些指标,如Inception Score或Fréchet Inception Distance(FID),但它们并不能完全反映生成样本的真实质量。而Conditional GAN(条件生成对抗网络,简称 CGAN)是一种生成对抗网络(GAN)的扩展形式。传统的GAN由两部分组成:生成器(Generator)和判别器(Discriminator)。生成器的目标是从随机噪声中生成逼真的样本(例如图像),而判别器的目标是区分这些生成的样本与真实的样本。两者通过对抗的方式共同进化,最终生成器能够产生高质量的、逼真的数据。CGAN 在此基础上增加了一个条件变量 y,这个条件变量可以是类别标签、文本描述或其他形式的信息,用于指导生成过程。也就是说,生成器和判别器不仅接收随机噪声(生成器)或数据样本(判别器),还会接收一个条件信号 y,以便生成特定类型的输出或评估特定条件下的样本真实性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值