生成式对抗网络
generator
什么是generator
原本普通的网络是没有
这个东西滴,就是输入x然后经过network然后输出y就好了
那现在就多了这个东西,这个东西就是z。
那这个z呢,是从某一个distribution sample出来的,所以现在network不是只看一个x得到输出,它是同时看x和z得到输出,那z特别的地方是,它是不固定的,每一次我们用这个network的时候,他会随机生成一个z,所以z每次都不一样,它是从一个distribution里面sample出来的。
那这个distribution有一个限制,限制是,它必须够简单。所谓够简单是指,我们知道这个式子长什么样子,我们可以从这个distribution去做sample,所以每次你x进来的时候,你都从这个distribution里面去做一个sample,然后得到一个output,随着你sample到的z不同,y的输出也就不一样。
所以这个时候我们network的输出不再是单一一个固定的东西,而变成了一个复杂的distribution。
那这种可以输出一个distribution的network,我们就叫它generator。
什么时候需要generator
当你的一个输入可能会有不同的输出的时候
Unconditional generation
那,如果你把输入x拿掉,那就是Unconditional generation啦,如果你加上,那就是Conditional generation了。
Discriminator
Discriminator是什么
它的输入是一个image,输出是一个Scalar,这个Scalar越大代表这个图片越真,越小代表这个图片越小。
Algorithm
比方说首先先固定住G,然后训练一阵子D,
然后固定住D,再训练一阵子G。
反复地进行训练,当其中一者进行训练的时候另外一者就固定住。反复进行。