Skip to content

生成对抗网络GAN

1.目标;解决生成类问题 2.组成:生成器Generator和判断器Discriminator

介绍组成部分:

1.生成器:一个函数G()可以生成,“假的”叫作fake(数据库里的照片是一个fig对应一个标签) 2.判别器:一个函数A()可以判断fig是否一样和数据库里的

训练策略:

1.先让当前的生G()生成一张fig 2.然后在用当前的A()去判别,根据判别的结果不断调整,直到A()的参数不错 3.然后根据A(G())->1的结果,对G()反向传播 4.重复前三个步骤

image.png

对于生成器,输入需要一个n维度向量,输出为图片像素大小的图片。因而首先我们需要得到输入的向量。这里的生成器可以是任意可以输出图片的模型,比如最简单的全连接神经网络,又或者是反卷积网络等。这里输入的向量我们将其视为携带输出的某些信息,比如说手写数字为数字几,手写的潦草程度等等。由于这里我们对于输出数字的具体信息不做要求,只要求其能够最大程度与真实手写数字相似(能骗过判别器)即可。所以我们使用随机生成的向量来作为输入即可,这里面的随机输入最好是满足常见分布比如均值分布,高斯分布等。假如我们后面需要获得具体的输出数字等信息的时候,我们可以对输入向量产生的输出进行分析,获取到哪些维度是用于控制数字编号等信息的即可以得到具体的输出。而在训练之前往往不会去规定它。