本节课主要是对
GAN
的发展进行了介绍,包括基本原理,训练方法,存在问题,改进以及应用场景等。实践作业则为手写数字生成。课程地址为:https://aistudio.baidu.com/aistudio/education/preview/493290。
文章目录
- 1.什么是GAN?
- 2.GAN的基本原理和改进
- 2.1 GAN的基本原理
- 2.2 GAN的训练
- 2.3 GAN存在的问题与改进
1.什么是GAN?
首先是介绍什么是GAN
,本质上是通过对抗的方式去学习数据分布的生成式模型,核心思想是:生成网络G和对抗网络D不断博弈,达到生成真实数据的目的
。
2.GAN的基本原理和改进
自从2014年GAN
首次被提出来之后,其发展进程可以归结为以下脉络:
2.1 GAN的基本原理
GAN的思想是来自于博弈论中的零和游戏,生活中一个常见的例子就是制造假钞和验钞机之间的关系。
2.2 GAN的训练
机器学习或深度学习中,要想训练模型,都要找到其目标函数,GAN
的目标函数如下,分为两个方面:
- 判别器希望自身的奖励最大化
- 生成器希望判别器的奖励最小化
训练方法如下,这里需要训练生成器和判别器,而两个又相互依赖,因此训练时要锁定一个,训练另一个。
GAN的训练细节和可视化如下:
2.3 GAN存在的问题与改进
GAN
虽然功能很强大,但是也存在一些问题:不收敛,模式坍塌。
下面介绍了对应的解决方案:对目标函数进行改进,对网络结构进行改进,
最后介绍一下WGAN
:
最后是使用GAN
生成手写数字,这部分网上资料比较多,代码就不贴了。