文章目录

  • Conditional GAN 介绍
  • 具体算法
  • 设计Discriminator
  • Stack GAN
  • 图片到图片
  • Patch GAN
  • 应用在speech enhancement
  • Video Generation

输入一个文字,然后产生对应那个文字的图片。
可以被单纯当成supervised learning
但是如果用传统的supervised learning,不同角度的图片会被直接取平均(产生正面的火车是好的结果,产生侧面的火车是好的结果,但是同时产生正面的火车跟侧面火车合起来,这是错误的结果)

Conditional GAN 介绍


在原来的GAN里面,向generator输入一个从某种分布中抽取出来的z,根据z产生一张image x。但Conditional Generation里面不仅输入z ,同时输入另外一个 conditional的text c,根据这段文字还有z输出结果。
接下来要训练一个discriminator。 之前输入image输出scalar的方式不再适用,因为之前只识别图像是不是高质量的,不管和输入的文字有什么关系。
所以discriminator要同时看generator的输入和输出。输入一个condition(c),再输入一个object,然后产生一个scalar,对应到两个判断:
1、x是不是真实的;2、x和condition是不是一对。
有两种negative的情况,不匹配/图像不真实

具体算法

首先随机初始化,然后进行下面迭代:
训练判别器:(固定生成器)

  • 首先从database中抽取m个样本,由于是condition GAN,所以每个样本都是文字 vector c 和image的pair。(得到真实图片对)
  • 然后再从一个分布中抽取m个vector z;然后m个vector,每一个都加上一个condition vector,表示为(c,z)
  • 然后将(c,z)输入生成器,生成m张image x~。(得到生成图片对)
  • 然后进入database中随机选取m个真实图片x^(用于训练非对应的情况)(得到没有标签的真实图片,然后和之前真实图片标签进行配对;变成真实图片假标签对)
  • 然后计算损失:对于sample的正确的一对就给高分,文字和随机生成图片给低分,文字和不匹配的真实图片也给低分。我们去最大这个损失,然后计算梯度,梯度上升。
    然后训练生成器:(固定判别器)
  • 随机产生m个噪声,随机从database中抽取m个文字。通过生成器得到G(C,Z),然后经过判别器得到D(G(C,Z)),更改G中的参数,使得它的得分最高,骗过判别器。

    图片中learningG的应该是梯度上升过程,+号
    x ~ i \tilde{x}^i x~i是生成图片, x ^ i \hat{x}^i x^i是好的real图片,但是是随机筛选出来的,和c不匹配

文字+原始的positive example:高分
文字+生成的图片:低分
文字+随机抽取的不匹配real图片:低分

设计Discriminator

  • Object x(图片)通过一个network变成embedding
  • Condition c(文字)通过一个network变成embedding
  • 两种embedding组合起来丢进network,输出score,代表了两件事,一件是图片有多好,另一件是 X 跟 C 有多合适

    另一种:output两个分数(好像更合理)可以知道为什么低分,是不match还是quality不高

Stack GAN


先产生小张的图,根据小张的图再产生大张的图。直接生成256*256的图会坏掉,所以:

  • 首先文字输入,与noise结合,生成6464小图片,输入6464真实图片训练discriminator判断分数
  • 第二个generator输入一个6464图和文字叙述,生成256256图片,再用256*256的真实图片训练另一个discriminator打分

图片到图片

要有很多组data,如彩色&黑白,卡通&真实的
Supervised:用L1/L2 loss等,可产生比较模糊的图片(还是会有平均结果的问题)

引入GAN:

Patch GAN

Image-to-imager中discriminator的设计:
如果要产生的 image 非常大张,如果整张图片作为输入的话,结果很容易坏掉。因为image很大,discriminator参数也要很多,很容易overfitting或花很长时间

Patch GAN每次只检查一小块图片,size要自己调整
(只看一个pixl就叫pixl GAN,没用)

应用在speech enhancement

训练Generator:找很多声音,然后把这些声音也都加上一些杂音,之后和原声音对比

加上GAN:
generator的input和output同时输入discriminator

Video Generation


预测影片接下来发生的事情

网络上找到的有人用 GAN 的技术产生小精灵游戏画面的结果。右边是没有用 GAN 的结果。没有用 GAN 发生的问题:小精灵走到转角就分裂了,为什么会分裂呢?因为在training data 里面同一个转角,有时候小心你会往左走,有时候会往右走,往左走是对的,往右走也是对的。但是对一个没有GAN的generator来说,它会把往左走往右走全部平均起来,结果就坏掉。往左走是对的,往右走也是对的,同时往左走跟往右走结果就会坏掉。中间是用GAN做的,不太会有分裂的情形。但结果也不是特别完美,会发现有些小精灵走着走着就不见了。还有个有趣的现象是数字会随机跳动。

李宏毅对抗生成网络 (GAN)教程(2) Conditional Generation by GAN相关推荐

  1. 李宏毅对抗生成网络 (GAN)教程(1)Introduction

    视频链接:https://www.bilibili.com/video/BV1tE411Z78A 在李宏毅GAN教程(1) 的基础上增添修改内容 文章目录 Basic idea of GAN 生成器G ...

  2. 悉尼大学陶大程:遗传对抗生成网络有效解决GAN两大痛点

    来源:新智元 本文共7372字,建议阅读10分钟. 本文为你整理了9月20日的AI WORLD 2018 世界人工智能峰会上陶大程教授的演讲内容. [ 导读 ]悉尼大学教授.澳大利亚科学院院士.优必选 ...

  3. GAN——对抗生成网络

    GAN的基本思想 作为现在最火的深度学习模型之一,GAN全称对抗生成网络,顾名思义是生成模型的一种,而他的训练则是处于一种对抗博弈状态中的.它使用两个神经网络,将一个神经网络与另一个神经网络进行对抗. ...

  4. 对抗生成网络(GAN)学习笔记

    生成模型与判别模型 判别模型:由数据直接学习决策函数Y=f(X)或条件概率分布P(Y|X)作为预测模型,即判别模型.判别方法关心的是对于给定的输入X,应该预测什么样的输出Y. 生成模型:由数据学习联合 ...

  5. 深度学习对抗生成网络--GAN

    导读:GAN的风暴席卷了整个深度学习圈子,任何任务似乎套上GAN的壳子,立马就变得高大上了起来.那么,GAN究竟是什么呢? 相关资料下载 加助教小姐姐的威信即可免费获取: 1. GAN的基本思想 GA ...

  6. 图像对抗生成网络 GAN学习01:从头搭建最简单的GAN网络,利用神经网络生成手写体数字数据(tensorflow)

    图像对抗生成网络 GAN学习01:从头搭建最简单的GAN网络,利用神经网络生成手写体数字数据(tensorflow) 文章目录 图像对抗生成网络 GAN学习01:从头搭建最简单的GAN网络,利用神经网 ...

  7. 图像生成对抗生成网络gan_生成对抗网络(GAN)的直观介绍

    图像生成对抗生成网络gan by Thalles Silva 由Thalles Silva 暖身 (Warm up) Let's say there's a very cool party going ...

  8. 深度学习代码实战演示_Tensorflow_卷积神经网络CNN_循环神经网络RNN_长短时记忆网络LSTM_对抗生成网络GAN

    前言 经过大半年断断续续的学习和实践,终于将深度学习的基础知识看完了,虽然还有很多比较深入的内容没有涉及到,但也是感觉收获满满.因为是断断续续的学习做笔记写代码跑实验,所以笔记也零零散散的散落在每个角 ...

  9. 对抗生成网络GAN(优化目标篇)

    对抗生成网络GAN(优化目标篇) 快要面试,故对GAN进行稍许复习 目的 对抗式生成网络GAN提出的目的是估计样本的密度函数pr(x;θ)p_r(x;\theta)pr​(x;θ),且并不显式的估计密 ...

最新文章

  1. 36岁前百度员工哀叹:结婚三年老婆要离婚,要求分走大半财产,并且带走孩子。阴差阳错之下,发现孩子不是自己亲生的!...
  2. 学生信息管理系统小结
  3. Lync Server 2010的部署系列(四) outlook无法加入联机会议
  4. sql server 隔离级别
  5. websocket的加密和解密
  6. OpenLayers相关资料
  7. 1947-2020 NBA总冠军次数排行榜
  8. html和ascll有什么关联,什么是HTML ASCII(HTML ASCII)?
  9. 讨论:癌症能被人类攻克吗
  10. 去social一下什么意思_bbs论坛是什么意思(论坛的含义)
  11. 如何在线免费给PDF文档加密
  12. 刻意练习这本书。。。。。。。
  13. XML数据解析-SAX和DOM
  14. Teamwork(The first day of the team)
  15. 关于兼容导入excel2003和excel2007版本注意事项
  16. Microsoft IIS波浪号目录枚举/IIS短文件名枚举漏洞
  17. android webview滚动到底部,Android WebView实现网页滚动截图
  18. 建筑与建筑群综合布线系统工程施工及验收规范
  19. Word插入圆圈数字
  20. 一个送给另一半的情侣专属微信小程序

热门文章

  1. Jenkins部署war包和部署jar包的详细步骤
  2. Java并发编程技术大纲
  3. 设计模式之单例设计模式
  4. 菲波那切数列(Java)
  5. 年中盘点:详细分析2019年上半年爆发的macOS恶意软件
  6. 【小游戏】狼人杀1.0
  7. 图形学基础知识:重心坐标(Barycentric Coordinates)
  8. 最后一夜的温柔与爱情无关
  9. argparse基本用法
  10. 程序员有哪些电脑技能让外行感到神奇?