深度学习与神经网络(十二)—— GAN生成对抗网络

GAN, Generative Adversarial Networks

GAN是现在deep learning最火热的方向

 

 

画家的成长历程

根据画家怎样练习、成长,画出一幅好的作品

来学习怎样用神经网络来逼近一幅优秀的作品

 

p(x)即数据分布
对于非监督学习来说,其目标就是p(x)
深度学习与神经网络(十二)—— GAN生成对抗网络_第1张图片

画家达芬奇在成名之前也是小菜,在年轻的时候,画画就是左图的样子;当他练习过无数次之后,最终画出右图的样子

这说明他经过不停地练习、不停地观察,学到了一个很好的p(x)的分布(可以理解为笔画的分布?)

 

我们再来细看一个画家的成长历程

深度学习与神经网络(十二)—— GAN生成对抗网络_第2张图片深度学习与神经网络(十二)—— GAN生成对抗网络_第3张图片
少年的时候,画画事业刚开始起步,画出了左图。然后他有个哥哥,他是见过蒙娜丽莎原作的,然后他就能判断出他弟弟画的和原作差远了,相距十万八千里

当学画画5年以后

深度学习与神经网络(十二)—— GAN生成对抗网络_第4张图片

深度学习与神经网络(十二)—— GAN生成对抗网络_第5张图片

这个时候画的比原来好多了,比较接近原作水平了。但这个时候哥哥的鉴赏能力也提升了,还是觉得你画的不行(如果现在给5年前的哥哥看可能就会认为你画的比较接近了)

十年后

深度学习与神经网络(十二)—— GAN生成对抗网络_第6张图片

深度学习与神经网络(十二)—— GAN生成对抗网络_第7张图片

十年后你的技艺已经渐入佳境了,已经可以画出微胖形的蒙娜丽莎

但哥哥还是能一眼看出体型的差距

最后

深度学习与神经网络(十二)—— GAN生成对抗网络_第8张图片

深度学习与神经网络(十二)—— GAN生成对抗网络_第9张图片

最后当你已经成为绘画大师的时候,画出来的画就连达芬奇本人都不能分辨了,你哥哥更不用说

这是就是达到了纳什均衡点

仅为无法分辨,所以由50%的概率是对的,50%的概率是错的

 

此时我们就收获了一名画家,也就是p(x),就是如何画一幅优秀作品的distribution

 

这个过程来多机器学习中就是

深度学习与神经网络(十二)—— GAN生成对抗网络_第10张图片

Pg(x)就是我们学到的分布,是你脑中x的分布
Pr(x)是鉴别是通过学习真实的画 掌握的分布

我们要的是在得到纳什均衡时,Pg(x)要很接近于Pr(x)

一旦把这个网络调到Pg(x)接近于Pr(x),我们就可以用这个网络来做其他事情了

 

怎样训练GAN

深度学习与神经网络(十二)—— GAN生成对抗网络_第11张图片

L(D,G)也写作V(D,G) ,叫做Value函数

D就是Pr(x),通过真实的画学到的

Z就是给generator的一些信号,告诉你画什么,给一个什么Z,就画一个什么x,就是Pg(x)

 

深度学习与神经网络(十二)—— GAN生成对抗网络_第12张图片

 

 

 

深度学习与神经网络(十二)—— GAN生成对抗网络_第13张图片

可以看出2018年GAN机器生成的图片已经非常逼真的,完全可以以假乱真了

而2014的时候质量却还比较差

4年的时间,GAN发生了天翻地覆的变化

 

 

名画是绿色的
黑色的是画家
绿色的是鉴画师


纳什均衡点可以从数学上直接推导的


GCGAN
WGAN

GAN使用了JS divergence
 

 

 

D是critic,G是画家

 

各种GAN

深度学习与神经网络(十二)—— GAN生成对抗网络_第14张图片

可以看到GAN的研究从16年开始是成指数增长的

各种GAN,命名26个字母都用光了

 

 

EM距离

Earth Mover  衡量P和Q的相似度

Earth Mover Distance也叫做Wassertein Distance

使用了Wassertein Distance的GAN就叫做WGAN

WGAN的最主要的区别就是把JS Divergence换成了Wassertein Distance,可以很好地解决两个distribution不overlap的情况,从而从根本上解决了GAN的train的时候在早期不能很好的收敛的问题

 

但是有一个约束

能让GAN的稳定性提升很多

 

 

 

不同GAN的效果对比

深度学习与神经网络(十二)—— GAN生成对抗网络_第15张图片

为什么不用DCGAN

DCGAN取得好的效果要精心设计training的过程,精心设计网络参数,在这种情况下才能取得这么好的效果

WGAN,任何网络结构,只要符合约束,就能慢慢得去收敛

 

 

 

GAN在训练时用到的非常严重的问题就是training不稳定
根本原因在于JS divergence对于两个分布不重合的情况下是无法给出一个有效的信息来度量程度

引入了一个新的度量标准就是Wassertein Distance

 

 

 

WGAN-GP    Gradient Penalty  梯度惩罚
WGAN-GD    Gradient Descent  梯度下降
 

你可能感兴趣的:(深度学习与神经网络(十二)—— GAN生成对抗网络)