生成对抗网络(GAN,Generative Adversarial Network)介绍

flyfish

在无监督学习中,最近的突破有哪些?
看一个GAN的应用
生成对抗网络(GAN,Generative Adversarial Network)介绍
生成对抗网络(GAN,Generative Adversarial Network)介绍
第一张图是用GAN将一副古代女子的画像恢复成真人的效果
第二张是将真人效果图的面容表情更改成笑容++

Yann LeCun 的回答是
有史以来GAN是最酷的事情。
我在上一个答案中列出了许多相关论文。
期望在未来几年中使用此技术获得更令人印象深刻的结果。
目前缺少的是对它的良好理解,因此我们可以使其可靠运行。 非常挑剔。 就像ConvNet一样,发生在在二十世纪九十年代,当时我是唯一使他们工作的人而声誉闻名(事实并非如此)。
原文
What are some recent and potentially upcoming breakthroughs in unsupervised learning?
Yann LeCun 的回答是
Adversarial training is the coolest thing since sliced bread.
I’ve listed a bunch of relevant papers in a previous answer.
Expect more impressive results with this technique in the coming years.
What’s missing at the moment is a good understanding of it so we can make it work reliably. It’s very finicky. Sort of like ConvNet were in the 1990s, when I had the reputation of being the only person who could make them work (which wasn’t true).

since sliced bread的解释
在1928年以前,在美国所贩卖的面包都是整条没有切的。所以面包买回家后还要自己切。后来有一个密西根人 发明了切面包的机器,美国人一时之间觉得这种机器实在是太神奇了,所以往后要是有什么很棒的事情发生,他们就会说:This is the best thing since sliced bread!
也就是The best thing since sliced bread =The best thing in the history

That’s the best thing since sliced bread.
那是自从切面包的机器发明以来最好的事情。
那支付宝要在美国打广告就可以说
Alipay is the best thing since sliced bread.
the best thing since sliced bread表示极好的东西,一般用作对产品、商品、发明等的赞美语

in the 1990s= in the 1990’s
意为:在二十世纪九十年代

出处

问题:What are some recent and potentially upcoming breakthroughs in deep learning?
There are many interesting recent development in deep learning, probably too many for me to describe them all here. But there are a few ideas that caught my attention enough for me to get personally involved in research projects.

The most important one, in my opinion, is adversarial training (also called GAN for Generative Adversarial Networks). This is an idea that was originally proposed by Ian Goodfellow when he was a student with Yoshua Bengio at the University of Montreal (he since moved to Google Brain and recently to OpenAI).

This, and the variations that are now being proposed is the most interesting idea in the last 10 years in ML, in my opinion.

根据他对第二个问题的回答,知道他说的adversarial training = GAN =Generative Adversarial Network
出处

WIKI
Generative Adversarial Network 生成对抗网络(英语:Generative Adversarial Network,简称GAN)是非监督式学习的一种方法,通过让两个神经网络相互博弈的方式进行学习。该方法由伊恩·古德费洛等人于2014年提出。 生成对抗网络由一个生成网络与一个判别网络组成。生成网络从潜在空间(latent space)中随机取样作为输入,其输出结果需要尽量模仿训练集中的真实样本。判别网络的输入则为真实样本或生成网络的输出,其目的是将生成网络的输出从真实样本中尽可能分辨出来。而生成网络则要尽可能地欺骗判别网络。两个网络相互对抗、不断调整参数,最终目的是使判别网络无法判断生成网络的输出结果是否真实。

基础
花书《深度学习》原版对概率分布的描述
A probability distribution is a description of how likely a random variable or set of random variables is to take on each of its possible states. The way we describe probability distributions depends on whether the variables are discrete or continuous

翻译版本的描述
随机变量
随机变量是可以随机地取不同值的变量。一个随机变量只是对可能的状态的描述;它必须伴随着一个概率分布来指定每个状态的可能性。

随机变量可以是离散的或者连续的。 离散随机变量拥有有限或者可数无限多的状态。 注意这些状态不一定非要是整数;它们也可能只是一些被命名的状态而没有数值。
连续随机变量伴随着实数值。

概率分布
概率分布用来描述随机变量或一簇随机变量在每一个可能取到的状态的可能性大小。 我们描述概率分布的方式取决于随机变量是离散的还是连续的。

GANs的诞生
2014 年 6 月,Ian Goodfellow 等学者发表了论文《Generative Adversarial Nets》标志着 GANs 的诞生
Ian Goodfellow 也就是花书《深度学习》的作者之一。
论文地址

GANs 的基本原理是它有两个模型:一个生成器(Generator),一个判别器(Discriminator)

vector -》 Generator -》Image
Generator 理解成一个函数,一个neural network

Image -》Discriminator -》scalar
Discriminator 理解成一个函数,一个neural network

大的数值意味着 real 真的 例如 1.0
小的数值意味着 fake 假的 例如 0.1

这里是使用 李宏毅的说明
生成对抗网络(GAN,Generative Adversarial Network)介绍
第一代的生成器(Generator_v1)很弱,只能生成黑白的图片,而人造图片都是彩色的,所以判别器只需要看图片是黑白还是彩色就能准确判断。
生成器(Generator_v1)开始进化到第二代(Generator_v2)可以生成彩色图片。
而判别器发现它会被生成器伪造的的彩色图片骗过后,它也会开始有针对性地进化,即开始尝试发现真实彩色照片和生成器伪造彩色照片之间的差别,比如说可能伪造的照片都没有嘴,而真实的照片都有。于是,判别器开始根据有无嘴来判断。
那么生成器继续进化(Generator_v3),开始画嘴,两者如此互相交替循环地针对对方的新能力进行进化,促使彼此都做得更好 也就是俗话说的道高一尺魔高一丈,吃一堑长一智。

这就是对抗(Adversarial)。

这种过程用公式描述为Ian Goodfellow 在论文中的描述

minGmaxDV(D,G)=Expdata (x)[logD(x)]+Ezpz(z)[log(1D(G(z)))]\min _{G} \max _{D} V(D, G)=\mathbb{E}_{\boldsymbol{x} \sim p_{\text {data }}(\boldsymbol{x})}[\log D(\boldsymbol{x})]+\mathbb{E}_{\boldsymbol{z} \sim p_{z}(\boldsymbol{z})}[\log (1-D(G(\boldsymbol{z})))]

生成器(G)接收一个随机的噪声z,尽可能的生成近似样本的图像,记为G(z)
判别器(D)接收一张输入图片x,尽可以去判别该图像是真实样本还是网络生成的假样本, 判别器的输出 D(x) 代表 x 为真实图片的概率。如果 D(x)=1 说明 判别器认为该输入一定是真实图片,如果 D(x)=0 说明判别网络认为该输入一定是假图片。

在最理想的情况下,G 可以生成与真实样本极其相似的图片G(z),而 D 很难判断G(z)是否为真,即D(x)=0.5,D(G(z))=0.5D(x)=0.5, D(G(z))=0.5

Pdata(x)P_{data}(x)是数据的真实分布
Pz(z)P_z(z)是噪声数据分布
xx是真实数据
zz是G的噪声
G(z)G(z)是G根据噪声z而生成的数据
D()D(*)是D对输入数据的判断
V(D,G)V(D,G)的前半部分代表D想要把真实数据判别为真,D(x)=1D(x)=1
V(D,G)V(D,G)的前半部分代表D想要把生成的数据判别为假也就是D(G(z))=0D(G(z))=0
G要最小化V(D,G)V(D,G),以生成像真的数据G(z)G(z),使D判别为1
D要最大化V(D,G)V(D,G),从而真的数据判别为1,生成的数据判别为0

GG = Generator
DD = Discriminator
Pdata(x)P_{data}(x) = distribution of real data
P(z)P(z) = distribution of generator
xx = sample from Pdata(x)P_{data}(x)
zz = sample from Pz(z)P_z(z)
D(x)D(x) = Discriminator network
G(z)G(z) = Generator network

以下图片说的全是一个意思
生成对抗网络(GAN,Generative Adversarial Network)介绍
说明图
图片引用地址

生成对抗网络(GAN,Generative Adversarial Network)介绍
图片引用地址
生成对抗网络(GAN,Generative Adversarial Network)介绍
生成对抗网络(GAN,Generative Adversarial Network)介绍

参考文献
《深度学习 》[deep learning] 俗称花书 作者:IanGoodfellow、YoshuaBengio和AaronCourville
《深度学习(下)》 张宪超