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

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

  • 1:Basic Idea
  • 2:Conditional 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
      • Cycle GAN
      • Issue of Cycle Consistency
      • StarGAN
    • Projection to Common Space
      • Couple GAN / UNIT
      • Domain Discriminator
      • Cycle Consistency / ComboGAN
      • DTN / XGAN
      • 举例

小细节

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的初衷就是 Gx→yG_{x \to y}Gx→y​ 的输入输出差别不要太大。但是现在发现其能将信息“藏”起来,这样可能 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 的链接:

  • github.com/Hi-king/kawaii_creator

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

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

  1. 【李宏毅2020 ML/DL】P1 introduction

    [李宏毅2020 ML/DL]P1 introduction 本节主要介绍了 DL 的15个作业 英文大意 Regression: 回归分析 Classification: 分类 RNN: 循环神经网 ...

  2. 【李宏毅2020 ML/DL】P86-87 More about Domain Adaptation

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本节内容综述 本节课由助教 Chao Brian 讲解. 首先讲解些领域适配的基础内容,包括名词.定义等. 接 ...

  3. 【李宏毅2020 ML/DL】P59 Unsupervised Learning - Auto-encoder

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-note ...

  4. 【李宏毅2020 ML/DL】P14 Tips for training DNN | 激活函数、Maxout、正则、剪枝 Dropout

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐): https://github.com/Sakura-gh/ML-not ...

  5. 【李宏毅2020 ML/DL】P58 Unsupervised Learning - Neighbor Embedding | LLE, t-SNE

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-note ...

  6. 【李宏毅2020 ML/DL】P15 Why Deep-

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐): https://github.com/Sakura-gh/ML-not ...

  7. 李宏毅svm_李宏毅2020 ML/DL补充Structured Learning Structured SVM

    李宏毅2020 ML/DL补充Structured Learning Structured SVM [李宏毅2020 ML/DL]补充:Structured Learning: Structured ...

  8. 【李宏毅2020 ML/DL】P80 Generative Adversarial Network | Feature Extraction

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 这是我的李宏毅老师 GAN 系列第7篇笔记,GAN 系列: 1:Basic Idea 2:Conditiona ...

  9. 【李宏毅2020 ML/DL】P83 Generative Adversarial Network | Evaluation

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 这是我的李宏毅老师 GAN 系列第10篇笔记,GAN 系列: 1:Basic Idea 2:Condition ...

最新文章

  1. R,Git和Github(下)
  2. 谈谈@@IDENTITY 和 SCOPE_IDENTITY()的区别
  3. CF Gym102028G Shortest Paths on Random Forests
  4. struts-config message-resources配置问题总结
  5. 体验QQ2011Beta3带来的变化和惊喜
  6. password php,password.php
  7. 降维系列之 SNE与t-SNE
  8. js中获取中文相应gbk编码
  9. plc原理及应用_【工控资料】西门子、三菱、欧姆龙PLC电气设计与编程自学宝典(双色版)...
  10. 利用Python的sympy包求解一元三次方程
  11. 笔记本固态硬盘大容量升级系统迁移(三天时间亲自实践,避坑专用)
  12. python re提取中文
  13. SQL语句,关于随机分组后在随机排序
  14. 关于α测试与β测试的区别
  15. 行列式的子式、主子式、顺序主子式、余子式、代数余子式
  16. 美国约翰斯·霍普金斯大学全球新冠疫情统计数据网址
  17. 怎么看自己的maven本地仓库在那里
  18. 【代码笔记】持续更新:知识图谱——gensim.corpora
  19. 维基解密:CIA早就可以轻易入侵苹果手机和电脑
  20. JAVA实现坦克大战(JAVA小游戏)

热门文章

  1. win7下,令人头疼的 classpnp.sys (附带:安装系统时蓝屏;0x0000007b)。
  2. c语言程序设计逗号作用,逗号运算符C语言程序设计.pdf
  3. 实体类在set字段时报空指针异常
  4. Emgu.CV.CvInvoke的类型初始值设定项引发异常
  5. PostgreSQL Json字段作为查询条件的解决方案
  6. 解决Axure发布分享预览的3个方法
  7. [Git]解决Permission denied, please try again问题
  8. 解决nginx反向代理缓存不起作用的问题
  9. manjaro中文输入法已安装但切换不了解决方法
  10. Python中的目录树列表