# GAN Step By Step
![logo](https://img-blog.csdnimg.cn/dc199d960b704e0c9331376e069be96e.png#pic_center)
## 心血来潮
**GSBS**,顾名思义,我希望我自己能够一步一步的学习GAN。GAN 又名 生成对抗网络,是最近几年很热门的一种无监督算法,他能生成出非常逼真的照片,图像甚至视频。GAN是一个图像的全新的领域,从2014的GAN的发展现在,在计算机视觉中扮演这越来越重要的角色,并且到每年都能产出各色各样的东西,GAN的理论和发展都蛮多的。我感觉最近有很多人都在学习GAN,但是国内可能缺少比较多的GAN的理论及其实现,所以我也想着和大家一起学习,并且提供主流框架下 **pytorch,tensorflow,keras** 的一些实现教学。
在一个2016年的研讨会,`杨立昆`描述生成式对抗网络是“`机器学习这二十年来最酷的想法`”。
---
## Step1 GAN介绍
### GAN
*Generative Adversarial Network*
#### Authors
Ian J. Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, Yoshua Bengio
#### Abstract
We propose a new framework for estimating generative models via an adversarial process, in which we simultaneously train two models: a generative model G that captures the data distribution, and a discriminative model D that estimates the probability that a sample came from the training data rather than G. The training procedure for G is to maximize the probability of D making a mistake. This framework corresponds to a minimax two-player game. In the space of arbitrary functions G and D, a unique solution exists, with G recovering the training data distribution and D equal to 1/2 everywhere. In the case where G and D are defined by multilayer perceptrons, the entire system can be trained with backpropagation. There is no need for any Markov chains or unrolled approximate inference networks during either training or generation of samples. Experiments demonstrate the potential of the framework through qualitative and quantitative evaluation of the generated samples.
[[Paper\]](https://arxiv.org/abs/1406.2661) [[code\]][4]
![在这里插入图片描述](https://img-blog.csdnimg.cn/img_convert/eb0c549145218531bbb181cdcf28bd0f.gif#pic_center)
我们先来看一段wikipedia上对GAN的定义:
> **生成对抗网络**(英语:**G**enerative **A**dversarial **N**etwork,简称GAN)是[非监督式学习](https://zh.wikipedia.org/wiki/%E9%9D%9E%E7%9B%91%E7%9D%A3%E5%BC%8F%E5%AD%A6%E4%B9%A0)的一种方法,通过让两个[神经网络](https://zh.wikipedia.org/wiki/%E4%BA%BA%E5%B7%A5%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C)相互[博弈](https://zh.wikipedia.org/wiki/%E5%8D%9A%E5%BC%88%E8%AE%BA)的方式进行学习。该方法由[伊恩·古德费洛](https://zh.wikipedia.org/wiki/%E4%BC%8A%E6%81%A9%C2%B7%E5%8F%A4%E5%BE%B7%E8%B4%B9%E6%B4%9B)等人于2014年提出。[[1\]](https://zh.wikipedia.org/w/index.php?title=%E7%94%9F%E6%88%90%E5%AF%B9%E6%8A%97%E7%BD%91%E7%BB%9C&oldid=52710805#cite_note-MyUser_Arxiv.org_April_7_2016c-1)
>
> 生成对抗网络由一个[生成网络](https://zh.wikipedia.org/wiki/%E7%94%9F%E6%88%90%E6%A8%A1%E5%9E%8B)与一个[判别网络](https://zh.wikipedia.org/wiki/%E5%88%A4%E5%88%AB%E6%A8%A1%E5%9E%8B)组成。生成网络从潜在空间(latent space)中随机采样作为输入,其输出结果需要尽量模仿训练集中的真实样本。判别网络的输入则为真实样本或生成网络的输出,其目的是将生成网络的输出从真实样本中尽可能分辨出来。而生成网络则要尽可能地欺骗判别网络。两个网络相互对抗、不断调整参数,最终目的是使判别网络无法判断生成网络的输出结果是否真实。[[2\]](https://zh.wikipedia.org/w/index.php?title=%E7%94%9F%E6%88%90%E5%AF%B9%E6%8A%97%E7%BD%91%E7%BB%9C&oldid=52710805#cite_note-2)[[1\]](https://zh.wikipedia.org/w/index.php?title=%E7%94%9F%E6%88%90%E5%AF%B9%E6%8A%97%E7%BD%91%E7%BB%9C&oldid=52710805#cite_note-MyUser_Arxiv.org_April_7_2016c-1)[[3\]](https://zh.wikipedia.org/w/index.php?title=%E7%94%9F%E6%88%90%E5%AF%B9%E6%8A%97%E7%BD%91%E7%BB%9C&oldid=52710805#cite_note-OpenAI_com-3)
>
> 生成对抗网络常用于生成以假乱真的图片。[[4\]](https://zh.wikipedia.org/w/index.php?title=%E7%94%9F%E6%88%90%E5%AF%B9%E6%8A%97%E7%BD%91%E7%BB%9C&oldid=52710805#cite_note-ITT_GANs-4)此外,该方法还被用于生成视频[[5\]](https://zh.wikipedia.org/w/index.php?title=%E7%94%9F%E6%88%90%E5%AF%B9%E6%8A%97%E7%BD%91%E7%BB%9C&oldid=52710805#cite_note-5)、三维物体模型[[6\]](https://zh.wikipedia.org/w/index.php?title=%E7%94%9F%E6%88%90%E5%AF%B9%E6%8A%97%E7%BD%91%E7%BB%9C&oldid=52710805#cite_note-6)等。
其实我们简单的来说,GAN就是将一个随机变量的分布映射到我们数据集的分布中了,我们也可以更加直观的看下图
![image-20190328005016745](https://tva1.sinaimg.cn/large/006tKfTcly1g1hu4zn0akj30xa0hsdmg.jpg)
简单的来说,就给定一个噪声z的输入,通过生成器的变换把噪声的概率分布空间尽可能的去拟合真实数据的分布空间.
### 基本框架
我们也可以给一个基本框架,在这里,我们把生成器看的目标看成是要"以假乱真",判别器的目标是要"明辨真假".
![img](https://img-blog.csdnimg.cn/img_convert/87ade1b79a03c3a165b5957613abeeba.png)
### 大白话版本
知乎上有一个很不错的解释,大家应该都能理解:
假设一个城市治安混乱,很快,这个城市里就会出现无数的小偷。在这些小偷中,有的可能是盗窃高手,有的可能毫无技术可言。假如这个城市开始整饬其治安,突然开展一场打击犯罪的「运动」,警察们开始恢复城市中的巡逻,很快,一批「学艺不精」的小偷就被捉住了。之所以捉住的是那些没有技术含量的小偷,是因为警察们的技术也不行了,在捉住一批低端小偷后,城市的治安水平变得怎样倒还不好说,但很明显,城市里小偷们的平均水平已经大大提高了。
![警察严打导致小偷水平提升](https://easyai.tech/wp-content/uploads/2022/08/1991b-2019-07-16-xt-tg.png)
警察们开始继续训练自己的破案技术,开始抓住那些越来越狡猾的小偷。随着这些职业惯犯们的落网,警察们也练就了特别的本事,他们能很快能从一群人中发现可疑人员,于是上前盘查,并最终逮捕嫌犯;小偷们的日子也不好过了,因为警察们的水平大大提高,如果还想以前那样表现得鬼鬼祟祟,那么很快就会被警察捉住。
![经常提升技能,更多小偷被抓](https://easyai.tech/wp-content/uploads/2022/08/9d1ff-2019-07-16-jc-tg.png)
为了避免被捕,小偷们努力表现得不那么「可疑」,而魔高一尺、道高一丈,警察也在不断提高自己的水平,争取将小偷和无辜的普通群众区分开。随着警察和小偷之间的这种「交流」与「切磋」,小偷们都变得非常谨慎,他们有着极高的偷窃技巧,表现得跟普通群众一模一样,而警察们都练就了「火眼金睛」,一旦发现可疑人员,就能马上发现并及时控制——最终,我们同时得到了最强的小偷和最强的警察。
![同时得到了最强的小偷和最强的警察](https://easyai.tech/wp-content/uploads/2022/08/4d0ae-2019-07-16-tg.png)
### 非大白话版本
生成对抗网络(GAN)由2个重要的部分构成:
1. **生成器(Generator**):通过机器生成数据(大部分情况下是图像),目的是“骗过”判别器
2. **判别器(Discriminator**):判断这张图像是真实的还是机器生成的,目的是找出生成器做的“假数据”
![生成对抗网络GANs由生成器和判别器构成](https://easyai.tech/wp-content/uploads/2022/08/4d3f8-2019-07-16-2bf-1.png)
下面详细介绍一下过程:
**第一阶段:固定�
没有合适的资源?快使用搜索试试~ 我知道了~
GAN Step By Step -- GSBS,顾名思义,我希望我自己能够一步一步的学习GAN。.zip
共1664个文件
png:1642个
md:8个
pth:8个
需积分: 5 0 下载量 192 浏览量
2024-05-06
11:30:12
上传
评论
收藏 98.14MB ZIP 举报
温馨提示
GAN Step By Step -- GSBS,顾名思义,我希望我自己能够一步一步的学习GAN。.zip
资源推荐
资源详情
资源评论
收起资源包目录
GAN Step By Step -- GSBS,顾名思义,我希望我自己能够一步一步的学习GAN。.zip (1664个子文件)
README.md 19KB
README.md 16KB
README.md 14KB
README.md 14KB
README.md 13KB
README.md 9KB
README.md 9KB
README.md 2KB
0.png 224KB
0.png 138KB
400.png 137KB
800.png 136KB
1600.png 130KB
1200.png 128KB
400.png 121KB
2000.png 115KB
2400.png 107KB
70400.png 107KB
65600.png 106KB
67200.png 106KB
66000.png 106KB
68800.png 106KB
67600.png 106KB
66400.png 106KB
74800.png 105KB
74400.png 105KB
72400.png 105KB
70000.png 105KB
73600.png 105KB
800.png 105KB
68400.png 104KB
64800.png 104KB
76800.png 104KB
76000.png 104KB
70800.png 104KB
82000.png 104KB
81600.png 104KB
2800.png 104KB
78000.png 104KB
83200.png 103KB
74000.png 103KB
82400.png 103KB
75600.png 103KB
78800.png 103KB
71600.png 103KB
69200.png 103KB
73200.png 103KB
76400.png 103KB
85200.png 103KB
84800.png 102KB
79200.png 102KB
66800.png 102KB
78400.png 102KB
65200.png 102KB
85600.png 102KB
3200.png 102KB
72000.png 102KB
68000.png 102KB
88800.png 102KB
80400.png 102KB
69600.png 102KB
86400.png 102KB
72800.png 102KB
82800.png 102KB
75200.png 102KB
79600.png 102KB
71200.png 102KB
77200.png 102KB
80000.png 102KB
80800.png 101KB
83600.png 101KB
63600.png 101KB
64000.png 101KB
64400.png 101KB
81200.png 101KB
84000.png 101KB
77600.png 100KB
88400.png 100KB
88000.png 100KB
63200.png 100KB
84400.png 100KB
87600.png 99KB
87200.png 99KB
1200.png 99KB
90400.png 99KB
62800.png 99KB
91200.png 99KB
89600.png 99KB
92000.png 99KB
86800.png 98KB
105200.png 98KB
97200.png 98KB
91600.png 98KB
95200.png 98KB
62000.png 98KB
100800.png 98KB
90800.png 98KB
94000.png 98KB
93200.png 98KB
96800.png 98KB
共 1664 条
- 1
- 2
- 3
- 4
- 5
- 6
- 17
资源评论
生瓜蛋子
- 粉丝: 3815
- 资源: 4910
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功