机器学习与深度学习系列连载: 第四部分 对抗网络GAN (三) 对抗网络 Conditional GAN (CGAN)

对抗网络 Conditional GAN (CGAN)

首先,我们先举一个例子,文本转换成图片:Text to Image.
有过机器学习经验的同学肯定会想到,用监督学习就可以做到:
机器学习与深度学习系列连载: 第四部分 对抗网络GAN (三) 对抗网络 Conditional GAN (CGAN)_第1张图片

不断地用监督的数据进行训练。

但是,真实世界中,非监督数据远远大于带标记的监督数据。 那我们考虑,如何利用GAN,来生成图片呢。

Scott Reed, et al 在2016年ICML 提出Conditional GAN 的概念。

1. Generator 生成器

与传统的GAN的相比,生成器中除了输入数据分布z带,增加了要生成数据的条件。目的是要告诉生成器,我要生成什么。
机器学习与深度学习系列连载: 第四部分 对抗网络GAN (三) 对抗网络 Conditional GAN (CGAN)_第2张图片

大道至简。 这个思路其实相对来讲,比较符合信息论的基本原理,一个系统给以的信息越多,它的结果会更加准确。 相对于传统的GAN, Condition GAN就是有的放矢的去生成结构化数据,而不是仅仅很盲目的开始尝试。

2. Discriminator 鉴别器

传统的鉴别器是鉴别生成数据和真实数据之间的区别,而 Condition GAN
的鉴别器不同,它的数据有Condition。

机器学习与深度学习系列连载: 第四部分 对抗网络GAN (三) 对抗网络 Conditional GAN (CGAN)_第3张图片
还可以结合传统的鉴别器的模式:
机器学习与深度学习系列连载: 第四部分 对抗网络GAN (三) 对抗网络 Conditional GAN (CGAN)_第4张图片

比如我想生成动漫头像,头发和眼睛的颜色我可以规定哦

机器学习与深度学习系列连载: 第四部分 对抗网络GAN (三) 对抗网络 Conditional GAN (CGAN)_第5张图片

3. Condition GAN 的应用举例

1. Stack GAN

我们以文字生成图片为例,输入的是一段文字,输出的是一张文字所描述的图片。

机器学习与深度学习系列连载: 第四部分 对抗网络GAN (三) 对抗网络 Conditional GAN (CGAN)_第6张图片

看着这个图,大家可能比较晕,但是复杂模型都是简单模型的叠加。我们一步一步看:

(1) 首先输入一段文字,经过整合,输入生成器G1(蓝色)
(2) G1生成的图片是6464的小图片,然后用D1的鉴别器进行鉴别
(3) G1生成的图片和文字内容一起输入到生成器G2(红色)
(4) G2生成的图片是256
256的正常,然后用D2的鉴别器进行鉴别

从简单到复杂,不断生成,不断鉴别。

2. Image to Image

我们以草图生成实际图片为例,看一看图片转换成图片的方法。

传统的方法我们监督学习的思路:
机器学习与深度学习系列连载: 第四部分 对抗网络GAN (三) 对抗网络 Conditional GAN (CGAN)_第7张图片
但是效果不好:
机器学习与深度学习系列连载: 第四部分 对抗网络GAN (三) 对抗网络 Conditional GAN (CGAN)_第8张图片
于是,我们用GAN来解决问题,
机器学习与深度学习系列连载: 第四部分 对抗网络GAN (三) 对抗网络 Conditional GAN (CGAN)_第9张图片
实验结果:

机器学习与深度学习系列连载: 第四部分 对抗网络GAN (三) 对抗网络 Conditional GAN (CGAN)_第10张图片
实验结果比监督学习好,但是图片中会有很多奇怪的东西:图片左上角有烟囱和窗户的“综合体”
机器学习与深度学习系列连载: 第四部分 对抗网络GAN (三) 对抗网络 Conditional GAN (CGAN)_第11张图片
于是我们使用Autoencoder的思路,加入图片限制,结果入下(结果更加真实):
机器学习与深度学习系列连载: 第四部分 对抗网络GAN (三) 对抗网络 Conditional GAN (CGAN)_第12张图片

3. Patch GAN

由于一张图片太大,直接GAN的速度很慢,我们可以并行选取patch进行GAN

机器学习与深度学习系列连载: 第四部分 对抗网络GAN (三) 对抗网络 Conditional GAN (CGAN)_第13张图片

4. 语音处理Speech Enhancement

GAN技术不仅仅使用在图片中,在语音处理中,也可以大展身手。
我们在过滤声音中的噪声的过程中:
机器学习与深度学习系列连载: 第四部分 对抗网络GAN (三) 对抗网络 Conditional GAN (CGAN)_第14张图片
传统的深度学习方法:

机器学习与深度学习系列连载: 第四部分 对抗网络GAN (三) 对抗网络 Conditional GAN (CGAN)_第15张图片

使用Condition GAN之后,结果提升很大:
机器学习与深度学习系列连载: 第四部分 对抗网络GAN (三) 对抗网络 Conditional GAN (CGAN)_第16张图片

5. 视频生成 Video Generation

GAN不仅适用于静态图片,而且适用于视频生成。

G通过以前的图片帧来生成后面的图片。

D来判断生成的视频帧是否是原生视频

机器学习与深度学习系列连载: 第四部分 对抗网络GAN (三) 对抗网络 Conditional GAN (CGAN)_第17张图片

本专栏图片、公式很多来自台湾大学李宏毅老师的深度学习课程,在这里,感谢这些经典课程,向李老师致敬!

你可能感兴趣的:(深度学习,神经网络,GAN,对抗网络)