【李宏毅2020 ML/DL】P76 Generative Adversarial Network | Unsupervised Conditional Generation

我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的、自己不知道的东西。

这是我的李宏毅老师 GAN 系列第3篇笔记,GAN 系列:

本节内容综述

  1. 可以理解为一种“风格迁移”的技术。但是我们收集不到不同风格间有 link 的数据。
  2. 对于 Unsupervised Conditional Generation ,李老师将其分为两类:Direct Transformation 与 Projection to Common Space 。
  3. 首先来讨论第一个类别 Direct Transformation 。提到了 Cycle GAN ,还由此提及了 StarGAN 。
  4. 接下来讨论第二个类别 Projection to Common Space。提到了不少的GAN,主要解决的问题是将不同风格的编码-解码器连接起来,都适用于其中间产生的 code 。

小细节

Unsupervised Conditional Generation


如上,我们希望机器可以“独立地”完成图片/语音风格的转换。

如上,李老师将其分为两类:Direct Transformation 与 Projection to Common Space 。

Direct Transformation


如何让机器知道,是否是这个风格的图片呢?如同上天,让 D 见过这个风格的图片,之后,再争取让 G 生成的图片骗过 D ,让 D 觉得也是这个风格的图片。

但是问题是,G可能产生与 input 完全不相关的东西。怎么办呢?

  • 无视这个问题,其实也可以;
  • 还有一些其他方法比如下图(对G的输入输出进行编码,力求编码相似)。
Cycle GAN

此外,G可能产生与 input 完全不相关的东西还有别的思路如 Cycle GAN 。

如上,我们希望生成的图片可以转回其本身。

此外,如上图,我们可以把两种风格一起训练,相互转换。

Issue of Cycle Consistency


如上,中间产物的红框部分是没有黑点的,但是其利用中间产物生成回去还会有黑点。

因此,可以推测Cycle GAN是可以“藏”信息的,那这样Cycle GAN就没有意义了,因为我们使用Cycle GAN的初衷就是 G x → y G_{x \to y} Gxy 的输入输出差别不要太大。但是现在发现其能将信息“藏”起来,这样可能 Cycle GAN 意义就不大了。


如上,这是不同的人在同一时间提出了相同的方法,只不过发在了不同的会议而已。

StarGAN


如上,做了一个 Generator ,希望能在多个领域互相转换。

上面 (a) 中还要判断图片来自哪个 Domain 组合。

如上 (b) 与 © 步骤:

  • 输入目标领域图片,得到假的图片
  • 再将假的图片目标领域输入回同一个 Generator ,要求其能生成原来的真图片

这类似 CycleGAN 。


如上,这里的 Domain 其实是一个向量组合:[是否年轻,头发黑色,...]类似如此的特征描述。

Projection to Common Space


如上,在这种转换中,我们希望有不同领域的编码器与解码器。

但是,如上这种模式中,上下两组 GAN 是没有关联的。输入一个 X 领域的数据,编码,通过 Y 领域解码器解码后,得到的可能是截然不同的图片。

如何解决呢?

Couple GAN / UNIT


如上,可以对所有的 编码器 EN ,在最后几层都共用参数。

Domain Discriminator


如上,我们还可以设置一个 Domain Discriminator,让不同的编码器都能骗过这个 Discriminator 。这样,就会强迫不同的编码器生成的 code 服从同一分布,或者说,使用相同的信息表示方法,相当于做了特征排序

Cycle Consistency / ComboGAN


如上,也可使用 Cycle Consistency 的方法。

DTN / XGAN


如上,使用 Semantic Consistency 的方法。

举例

使用 GitHub 的链接:

此外,也可以进行语音的转换。这样对数据样本也降低了不少要求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值