From 789e40901874e773bad62c9af3a50f3fb4314404 Mon Sep 17 00:00:00 2001 From: wangyang59 Date: Thu, 5 Jan 2017 17:46:01 -0800 Subject: [PATCH] following luotao1's comments --- gan/README.md | 155 +++++++++++++++++++++++++---------------- gan/gan_conf_graph.png | Bin 0 -> 81107 bytes 2 files changed, 96 insertions(+), 59 deletions(-) create mode 100644 gan/gan_conf_graph.png diff --git a/gan/README.md b/gan/README.md index 40e9292..ef53ce0 100644 --- a/gan/README.md +++ b/gan/README.md @@ -3,11 +3,15 @@ ## 背景介绍 本章我们介绍对抗式生成网络,也称为Generative Adversarial Network(GAN) \[[1](#参考文献)\]。对抗式生成网络是生成模型 (generative model) 的一种,可以用非监督学习的办法来学习输入数据的分布,从而能达到产生和输入数据拥有同样概率分布的人造数据。这样的学习能力可以帮助机器完成图片自动生成、图像去噪、缺失图像补全和图像超分辨生成等工作。 -现在大部分利用深度学习成功的例子都是在监督学习的条件下,把高维数据映射到一种低维空间表示(representation)里来进行分类(可参见前面几章的介绍)。这种方法也叫判别模型(discriminative model),它直接对条件概率P(y|x)建模。像我们的前八章,都是判别模型。但用这种方法学到的表示一般只是对那一种目标任务有效果,而不能很好的转移到别的任务。同时监督学习的训练需要大量标记好的数据,很多时候不是很容易得到。 +深度学习现有的方法大致可以分为两大类,判别模型(discriminative model)和生成模型(generative model)。 -生成模型背后的基本想法是,如果一个模型它能够生成和真实数据非常相近的数据,那么很可能它就学到了对于这种数据的一种很有效的表示。生成模型另一些实际用途包括,图像去噪,缺失图像补全,图像超分辨生成等等。在标记数据不够的时候,还可以用生成模型生成的数据来预训练模型。 +判别模型是在监督学习的条件下,把高维数据映射到一种低维空间表示(representation)里来进行分类(可参见前面几章的介绍),它直接对条件概率P(y|x)建模。像我们的前八章,都是判别模型。但用这种方法学到的表示一般只是对那一种目标任务有效果,而不能很好的转移到别的任务。同时监督学习的训练需要大量标记好的数据,很多时候不是很容易得到。 -近年来有一些有趣的图片生成模型,一种是变分自编码器(variational autoencoder)\[[3](#参考文献)\],它是在概率图模型(probabilistic graphical model)的框架下面搭建了一个生成模型,对数据有完整的概率描述(即对P(x)进行建模),训练时是通过调节参数来最大化数据的概率。用这种方法产生的图片,虽然所对应的概率高,但很多时候看起来都比较模糊。为了解决这个问题,人们又提出了本章所要介绍的另一种生成模型,对抗式生成网络。 +生成模型在监督学习和非监督学习的条件下都可以应用。在监督学习的条件下,生成模型是直接对联合概率P(X,Y)建模。在非监督学习的条件下,生成模型是对P(X)进行建模。生成模型背后的基本想法是,如果一个模型它能够生成和真实数据非常相近的数据,那么很可能它就学到了对于这种数据的一种很有效的表示。生成模型另一些实际用途包括,图像去噪,缺失图像补全,图像超分辨生成等等。在标记数据不够的时候,还可以用生成模型生成的数据来预训练模型。 + +生成模型一个重要的研究方向是图片生成。相比于生成文字,由于图片数据的维度更大并且数值是连续的,所以生成起来难度更大。关于图片生成的研究已经有比较久的历史,之前的方法有,受限玻尔兹曼机(Restricted Boltzmann Machine)\[[4](#参考文献)\],深度玻尔兹曼机(Deep Boltzmann Machine)\[[5](#参考文献)\],神经自回归分布估计(Neural Autoregressive Distribution Estimator)\[[6](#参考文献)\]等。但它们都无法生成看起来很真实的图片。 + +近年来由于深度学习的发展,出现了一些更有效的图片生成模型,一种是变分自编码器(variational autoencoder)\[[3](#参考文献)\],它是在概率图模型(probabilistic graphical model)的框架下面搭建了一个生成模型,对数据有完整的概率描述,训练时是通过调节参数来最大化数据的概率。用这种方法产生的图片,虽然所对应的概率高,但很多时候看起来都比较模糊。另一种是像素循环神经网络(Pixel Recurrent Neural Network)\[[7](#参考文献)\],它是通过根据周围的像素来一个像素一个像素的生成图片,但这种方法生成的图片在全局看来会不太一致。为了解决这些问题,人们又提出了本章所要介绍的另一种生成模型,对抗式生成网络。 在本章里,我们展对抗式生产网络的细节,以及如何用PaddlePaddle训练一个GAN模型。 @@ -20,7 +24,7 @@

## 模型概览 -对抗式生成网络的大致结构在图2中画出,它由两部分组成:一个生成器(Generator)G 和一个分类器(Discriminator, 也称判别器)D,两者都是有多层神经网络构成的。生成器的输入是一个多维的已知概率分布的噪音 z(噪音的概率分布不取决于待生成样本,如可以服从正态分布),通过神经网络变换,输出伪样本。分类器输的输入是真样本和伪样本,输出为分类结果为真样本和伪样本的概率。训练时生成器和分类器处于相互竞争对抗状态,生成器会尽量生成和真样本相近的伪样本让分类器无法分辨真伪,而分类器则会尽力去分辨伪样本。具体的损失函数如下: +对抗式生成网络的原理示意图在图2中画出,它由两部分组成:一个生成器(Generator)G 和一个分类器(Discriminator, 也称判别器)D,两者都是有多层神经网络构成的。生成器的输入是一个多维的已知概率分布的噪音 z(噪音的概率分布不取决于待生成样本,如可以服从正态分布),通过神经网络变换,输出伪样本。分类器输的输入是真样本和伪样本,输出为分类结果为真样本和伪样本的概率。训练时生成器和分类器处于相互竞争对抗状态,生成器会尽量生成和真样本相近的伪样本让分类器无法分辨真伪,而分类器则会尽力去分辨伪样本。具体的损失函数如下: $$\min_G\max_D \text{Loss} = \min_G\max_D \frac{1}{m}\sum_{i=1}^m[\log D(x^i) + log(1-D(G(z^i)))]$$ @@ -28,17 +32,24 @@ $$\min_G\max_D \text{Loss} = \min_G\max_D \frac{1}{m}\sum_{i=1}^m[\log D(x^i) +


- 图2. GAN模型结构 + 图2. GAN模型原理示意图 figure credit

训练时,生成器和分类器会轮流通过随机梯度下降算法更新参数。生成器的目标函数是让自己产生的样本被分类器分类为真,而分类器的目标函数则是正确的区分真伪样本。当对抗式生成模型训练收敛到平衡态的时候,生成器会把输入的噪音分布转化成真的样本数据分布,而分类器则完全无法分辨真伪图片。 -在最早的对抗式生成网络的论文中,生成器和分类器用的都是全联接层,所以没有办法很好的生成图片数据,也没有办法做的很深。所以在随后的论文中,人们提出了深度卷积对抗式生成网络(deep convolutional generative adversarial network or DCGAN)\[[2](#参考文献)\]。在DCGAN中,生成器 G 是由多个卷积转置层(transposed convolution)组成的,这样可以用更少的参数来生成质量更高的图片。具体网络结果可参见图3。 +在最早的对抗式生成网络的论文中,生成器和分类器用的都是全联接层。在附带的代码gan_conf.py中,我们实现了一个类似的结构。生成器和分类器都是由三层全联接层构成,并且在某些全联接层后面加入了批标准化层(batch normalization)。所用网络结构在图3中给出。生成器的损失函数是其所生成的伪样本$x'$被判别器判定为真的概率,而判别器的损失函数是伪样本$x'$被判定为假的概率加上真样本$x$被判别为真的概率。 + +

+
+ 图3. GAN模型结构图 +

+ +由于上面的这种网络都是由全联接层组成,所以没有办法很好的生成图片数据,也没有办法做的很深。所以在随后的论文中,人们提出了深度卷积对抗式生成网络(deep convolutional generative adversarial network or DCGAN)\[[2](#参考文献)\]。在DCGAN中,生成器 G 是由多个卷积转置层(transposed convolution)组成的,这样可以用更少的参数来生成质量更高的图片。具体网络结果可参见图4。而判别器是由多个卷积层组成。


- 图3. DCGAN生成器模型结构 + 图4. DCGAN生成器模型结构 figure credit

@@ -48,38 +59,67 @@ $$\min_G\max_D \text{Loss} = \min_G\max_D \frac{1}{m}\sum_{i=1}^m[\log D(x^i) + ### 数据介绍与下载 这章会用到两种数据,一种是简单的人造数据,一种是图片。 -人造数据是二维均匀分布,由下面的代码生成: +人造数据是二维0到1之间的均匀分布,由下面的代码生成(numpy.random.rand会生成0-1均匀分布随机数): ```python -# synthesize 2-D uniform data in gan_trainer.py:114 +# 合成2-D均匀分布数据 gan_trainer.py:114 def load_uniform_data(): data = numpy.random.rand(1000000, 2).astype('float32') return data ``` -图片数据是MNIST手写数字,可由下面的代码下载: +图片数据是MNIST手写数字和CIFAR-10,可由下面的代码下载: ```bash $cd data/ $./get_mnist_data.sh -``` - -另一种更真实的图片数据是Cifar-10,可由下面的代码下载: - -```bash -$cd data/ $./download_cifar.sh ``` ## 模型配置说明 由于对抗式生产网络涉及到多个神经网络,所以必须用paddle Python API来训练。下面的介绍也可以部分的拿来当作paddle Python API的使用说明。 +### 数据定义 +这里数据没有通过dataprovider提供,而是在gan_trainer.py里面直接产生data_batch并以Arguments的形式提供给trainer。 + +```python +def prepare_generator_data_batch(batch_size, noise): + # generator训练标签。根据前文的介绍,generator是为了让自己的生成的数据 + # 被标记为真,所以这里的标签都统一生成1,也就是真 + label = numpy.ones(batch_size, dtype='int32') + # 数据是Arguments的类型,这里创建的一个有两个位置的Arguments + inputs = api.Arguments.createArguments(2) + # 第一个Argument位置放noise + inputs.setSlotValue(0, api.Matrix.createDenseFromNumpy(noise)) + # 第二个Argument位置放label + inputs.setSlotIds(1, api.IVector.createVectorFromNumpy(label)) + return inputs + +# 为generator训练创造数据 +data_batch_gen = prepare_generator_data_batch(batch_size, noise) +# 把数据data_batch_gen传递给generator trainer +gen_trainer.trainOneDataBatch(batch_size, data_batch_gen) +``` + +### 算法配置 + +在这里,我们指定了模型的训练参数, 选择学习率和batch size。这里的beta1参数比默认值0.9小很多是为了使学习的过程更稳定。 + +```python +settings( + batch_size=128, + learning_rate=1e-4, + learning_method=AdamOptimizer(beta1=0.5)) + +``` + ### 模型结构 在文件gan_conf.py当中我们定义了三个网络, **generator_training**, **discriminator_training** and **generator**. 和前文提到的模型结构的关系是:**discriminator_training** 是分类器,**generator** 是生成器,**generator_training** 是生成器加分类器因为训练生成器时需要用到分类器提供目标函数。这个对应关系在下面这段代码中定义: ```python if is_generator_training: noise = data_layer(name="noise", size=noise_dim) + # 函数generator定义了生成器的结构 sample = generator(noise) if is_discriminator_training: @@ -87,6 +127,7 @@ if is_discriminator_training: if is_generator_training or is_discriminator_training: label = data_layer(name="label", size=1) + # 函数discriminator定义了判别器的结构 prob = discriminator(sample) cost = cross_entropy(input=prob, label=label) classification_error_evaluator( @@ -98,21 +139,44 @@ if is_generator: outputs(generator(noise)) ``` +##训练模型 +用MNIST手写数字图片训练对抗式生成网络可以用如下的命令: + +```bash +$python gan_trainer.py -d mnist --use_gpu 1 +``` + +训练中打印的日志信息如下: +``` +d_pos_loss is 0.681067 d_neg_loss is 0.704936 +d_loss is 0.693001151085 g_loss is 0.681496 +...........d_pos_loss is 0.64475 d_neg_loss is 0.667874 +d_loss is 0.656311988831 g_loss is 0.719081 +... +I0105 17:15:48.346783 20517 TrainerInternal.cpp:165] Batch=100 samples=12800 AvgCost=0.701575 CurrentCost=0.701575 Eval: generator_training_error=0.679219 CurrentEval: generator_training_error=0.679219 +.........d_pos_loss is 0.644203 d_neg_loss is 0.71601 +d_loss is 0.680106401443 g_loss is 0.671118 +.... +I0105 17:16:37.172737 20517 TrainerInternal.cpp:165] Batch=100 samples=12800 AvgCost=0.687359 CurrentCost=0.687359 Eval: discriminator_training_error=0.438359 CurrentEval: discriminator_training_error=0.438359 +``` + +其中d_pos_loss是判别器对于真实数据判别真的负对数概率,d_neg_loss是判别器对于伪数据判别为假的负对数概率,d_loss是这两者的平均值。g_loss是伪数据被判别器判别为真的负对数概率。对于对抗式生成网络来说,最好的训练情况是D和G的能力比较相近,也就是d_loss和g_loss在训练的前几个pass中数值比较接近(-log(0.5) = 0.693)。由于G和D是轮流训练,所以它们各自每过100个batch,都会打印各自的训练信息。 + 为了能够训练在gan_conf.py中定义的网络,我们需要如下几个步骤:初始化Paddle环境,解析设置,由设置创造GradientMachine以及由GradientMachine创造trainer。这几步分别由下面几段代码实现: ```python import py_paddle.swig_paddle as api -# init paddle environment +# 初始化Paddle环境 api.initPaddle('--use_gpu=' + use_gpu, '--dot_period=10', '--log_period=100', '--gpu_id=' + args.gpu_id, '--save_dir=' + "./%s_params/" % data_source) -# Parse config +# 解析设置 gen_conf = parse_config(conf, "mode=generator_training,data=" + data_source) dis_conf = parse_config(conf, "mode=discriminator_training,data=" + data_source) generator_conf = parse_config(conf, "mode=generator,data=" + data_source) -# Create GradientMachine +# 由设置创造GradientMachine dis_training_machine = api.GradientMachine.createFromConfigProto( dis_conf.model_config) gen_training_machine = api.GradientMachine.createFromConfigProto( @@ -120,7 +184,7 @@ gen_conf.model_config) generator_machine = api.GradientMachine.createFromConfigProto( generator_conf.model_config) -# Create trainer +# 由GradientMachine创造trainer dis_trainer = api.Trainer.create(dis_conf, dis_training_machine) gen_trainer = api.Trainer.create(gen_conf, gen_training_machine) ``` @@ -138,55 +202,23 @@ def get_training_loss(training_machine, inputs): 每当训练完一个网络,我们需要和其他几个网络同步互相分享的参数值。下面的代码展示了其中一个例子: ```python -# Train the gen_training +# 训练gen_training gen_trainer.trainOneDataBatch(batch_size, data_batch_gen) -# Copy the parameters from gen_training to dis_training and generator +# 把gen_training中的参数同步到dis_training和generator当中 copy_shared_parameters(gen_training_machine, dis_training_machine) copy_shared_parameters(gen_training_machine, generator_machine) ``` -### 数据定义 -这里数据没有通过dataprovider提供,而是在gan_trainer.py里面直接产生data_batch并以Arguments的形式提供给trainer。 - -```python -def prepare_generator_data_batch(batch_size, noise): - label = numpy.ones(batch_size, dtype='int32') - inputs = api.Arguments.createArguments(2) - inputs.setSlotValue(0, api.Matrix.createDenseFromNumpy(noise)) - inputs.setSlotIds(1, api.IVector.createVectorFromNumpy(label)) - return inputs - -# Create data_batch for generator -data_batch_gen = prepare_generator_data_batch(batch_size, noise) -# Feed data_batch_gen into generator trainer -gen_trainer.trainOneDataBatch(batch_size, data_batch_gen) -``` - -### 算法配置 - -在这里,我们指定了模型的训练参数, 选择学习率和batch size。这里的beta1参数比默认值0.9小很多是为了使学习的过程更稳定。 - -```python -settings( - batch_size=128, - learning_rate=1e-4, - learning_method=AdamOptimizer(beta1=0.5)) - -``` - -##训练模型 -用MNIST手写数字图片训练对抗式生成网络可以用如下的命令: - -```bash -$python gan_trainer.py -d mnist --useGpu 1 -``` - ## 应用模型 图片由训练好的生成器生成。以下的代码将噪音z输入到生成器 G 当中,通过向前传递得到生成的图片。 ```python +# 噪音z是多维正态分布 +def get_noise(batch_size, noise_dim): + return numpy.random.normal(size=(batch_size, noise_dim)).astype('float32') + def get_fake_samples(generator_machine, batch_size, noise): gen_inputs = api.Arguments.createArguments(1) gen_inputs.setSlotValue(0, api.Matrix.createDenseFromNumpy(noise)) @@ -195,7 +227,8 @@ def get_fake_samples(generator_machine, batch_size, noise): fake_samples = gen_outputs.getSlotValue(0).copyToNumpyMat() return fake_samples -# At the end of each pass, save the generated samples/images +# 在每个pass的最后,保存生成的图片 +noise = get_noise(batch_size, noise_dim) fake_samples = get_fake_samples(generator_machine, batch_size, noise) ``` @@ -207,3 +240,7 @@ fake_samples = get_fake_samples(generator_machine, batch_size, noise) 1. Goodfellow I, Pouget-Abadie J, Mirza M, et al. [Generative adversarial nets](https://arxiv.org/pdf/1406.2661v1.pdf)[C] Advances in Neural Information Processing Systems. 2014 2. Radford A, Metz L, Chintala S. [Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks](https://arxiv.org/pdf/1511.06434v2.pdf)[C] arXiv preprint arXiv:1511.06434. 2015 3. Kingma D.P. and Welling M. [Auto-encoding variational bayes](https://arxiv.org/pdf/1312.6114v10.pdf)[C] arXiv preprint arXiv:1312.6114. 2013 +4. Hinton G and Salakhutdinov R. [Reducing the dimensionality of data with neural networks](https://www.cs.toronto.edu/~hinton/science.pdf) Science 313.5786. 2006 +5. Salakhutdinov R and Hinton G. [Deep Boltzmann Machines](http://www.jmlr.org/proceedings/papers/v5/salakhutdinov09a/salakhutdinov09a.pdf)[J] AISTATS. Vol. 1. 2009 +6. Larochelle H and Murray I. [The Neural Autoregressive Distribution Estimator](http://www.jmlr.org/proceedings/papers/v15/larochelle11a/larochelle11a.pdf) AISTATS. Vol. 1. 2011. +7. van den Oord A, Kalchbrenner N and Kavukcuoglu K. [Pixel Recurrent Neural Networks](https://arxiv.org/pdf/1601.06759v3.pdf) arXiv preprint arXiv:1601.06759 (2016). diff --git a/gan/gan_conf_graph.png b/gan/gan_conf_graph.png new file mode 100644 index 0000000000000000000000000000000000000000..48b6bdd0eeb2a90c0422a018163b5214ae3bfc42 GIT binary patch literal 81107 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 CzyVVL literal 0 HcmV?d00001 -- GitLab