本节课主要是对GAN的发展进行了介绍,包括基本原理,训练方法,存在问题,改进以及应用场景等。实践作业则为手写数字生成。课程地址为:https://aistudio.baidu.com/aistudio/education/preview/493290

1.什么是GAN?

首先是介绍什么是GAN,本质上是通过对抗的方式去学习数据分布的生成式模型,核心思想是:生成网络G和对抗网络D不断博弈,达到生成真实数据的目的
百度顶会论文复现(2):GAN入门


2.GAN的基本原理和改进

自从2014年GAN首次被提出来之后,其发展进程可以归结为以下脉络:
百度顶会论文复现(2):GAN入门


2.1 GAN的基本原理

GAN的思想是来自于博弈论中的零和游戏,生活中一个常见的例子就是制造假钞和验钞机之间的关系。
百度顶会论文复现(2):GAN入门百度顶会论文复现(2):GAN入门

2.2 GAN的训练

机器学习或深度学习中,要想训练模型,都要找到其目标函数,GAN的目标函数如下,分为两个方面:

  • 判别器希望自身的奖励最大化
  • 生成器希望判别器的奖励最小化

百度顶会论文复现(2):GAN入门

训练方法如下,这里需要训练生成器和判别器,而两个又相互依赖,因此训练时要锁定一个,训练另一个。

百度顶会论文复现(2):GAN入门百度顶会论文复现(2):GAN入门

GAN的训练细节和可视化如下:
百度顶会论文复现(2):GAN入门百度顶会论文复现(2):GAN入门


2.3 GAN存在的问题与改进

GAN虽然功能很强大,但是也存在一些问题:不收敛,模式坍塌。
百度顶会论文复现(2):GAN入门百度顶会论文复现(2):GAN入门百度顶会论文复现(2):GAN入门

下面介绍了对应的解决方案:对目标函数进行改进,对网络结构进行改进,
百度顶会论文复现(2):GAN入门
百度顶会论文复现(2):GAN入门
百度顶会论文复现(2):GAN入门
最后介绍一下WGAN:
百度顶会论文复现(2):GAN入门
百度顶会论文复现(2):GAN入门


最后是使用GAN生成手写数字,这部分网上资料比较多,代码就不贴了。

相关文章: