赞
踩
输入不再是只是x,还有一个simple distribution(样本分布),输出也是一个分布
Why distribution
不同的分布即意味着:相同的输入会有不同的输出。
尤其在任务需要创造力的时候,需要分布
Unconditional generation
(输入无x)输入一个
假设z是从normal distribution中sample出来的向量,而输出y是二次元任务的脸,生成图片其实就是生成非常高维的向量,不同的z,输出都是二次人物的脸。
scaler越大,表示越像真实的二次元任务的图像
关于generator和discriminator,像是相互促进的存在
在生成二次人物的脸的过程中:
最开始generator的参数是随机的,生成完的图像会丢给discriminator,discriminator拿generator生成的图片和真实的图片做比较,判断是不是生成的,然后generator就会进化,进化的目标是为了骗过discriminator。
第二代的generator会再生成一组图片,然后再交给第二代的discriminator判断,循环往复,直到停止训练。
generator
和一个discriminator
分类问题
,训练一个分类器,输出图片的标签。或者看成regression的问题
把真实是label标记为1,生成的label标记为0,让D学着去分辨。PG是Generator生成的图片的分布,Pdata是真实的数据的分布,我们希望PG和Pdata之间的divergence越小越好,这个divergence就是PG和Pdata之间的某种距离。
在GAN中,只需要sample就足够了
我们可以从真实数据库中的图片中sample出Pdata,也可以从G中sample出PG
然后,使用Discriminator
就够了
在Discriminator中,有Pdata
和PG
用于训练,如果是Pdata,就给高的分数,如果是PG,就给低的分数,公式如下:
我们希望V
越大越好,那Dy
越大越好,所以从真实数据sample的数据给更高的分数,PG反之。
所以Div(PG, Pdata)可以替换成maxV(D, G),就有了下面的式子
在大多数情况下,PG和Pdata是不能重叠的
这样的情况下,计算的JS divergence都是log2.
可以吧下图中P想象成一堆土,Q想象成堆土的目的地,要把P推到Q处(形状保持一致),推动的距离d就表示wasserstein distance
但如果P和Q比较复杂,那么就需要做一些处理才能移动,穷举所有把P变成Q的方法,距离最小的那个,就是wasserstein distance
所以换成wasserstein distance
,我们可以知道G是不是做的越来越好
使用Wseeerstein distance
评估Pdata和PG之间的距离
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。