Paper Reading on Generative Models

2019.12.01
ludics

1. Generative Adversarial Nets

1.1 Abstract

We propose a new framework for estimating generative models via an adversarial process, in which we simultaneously train two models: a generative model GG that captures the data distribution, and a discriminative model DD that estimates the probability that a sample came from the training data rather than GG. The training procedure for GG is to maximize the probability of DD making a mistake. This framework corresponds to a minimax two-player game. In the space of arbitrary functions GG and DD, a unique solution exists, with GG recovering the training data distribution and DD equal to 12\frac{1}{2} everywhere. In the case where GG and DD are defined by multilayer perceptrons, the entire system can be trained with backpropagation. There is no need for any Markov chains or unrolled approximate inference networks during either training or generation of samples. Experiments demonstrate the potential of the framework through qualitative and quantitative evaluation of the generated samples.

我们提出了一个新的框架来通过对抗过程估计生成模型,在该框架中,我们同时训练了两个模型:捕获数据分布的生成模型 GG 和用于估计样本来自训练数据而不是 GG 的概率的判别模型 DDGG 的训练过程是使 DD 犯错的可能性最大化。该框架对应于minimax两人游戏。在任意函数 GGDD 的空间中,存在唯一的解决方案,其中 GG 恢复训练数据的分布,而 DD 处处都等于 12\frac{1}{2}。在 GGDD 由多层感知器定义的情况下,整个系统可以通过反向传播进行训练。在训练或样本生成期间,不需要任何马尔可夫链或展开的近似推理网络。实验通过对生成的样本进行定性和定量评估,证明了该框架的潜力。

1.2 Introduction

深度学习在判别模型取得很多成果,这些成功依赖于反向传播和Dropout,使用分段线性单元。因为最大似然估计及相关策略中出现难解的概率计算,以及难以在生成上下文中利用分段线性单元,深度生成模型的影响比较小。本文提出的生成模型避开了这些问题:通过对抗过程不断提升生成模型与判别模型。

在这种对抗的框架下,本文研究了使用随机噪声通过多层感知机作为生成模型、多层感知机作为判别模型的情况,称之为对抗网络。这种情况下可以利用反向传播与Dropout,只需要前馈过程即可采样出样本,同时不需要近似推断或马尔可夫链。

大多数生成模型关注概率分布函数的参数,可以通过最大似然估计来计算,其中最成功的是深度玻尔兹曼机。这些模型通常有着难解的似然函数,需要对似然梯度进行数值估计。这些困难激发了不需要表示似然而是直接生成分布的生成机的研究。生成随机网络可以通过反向传播来计算。本文的工作则消去了生成随机网络中的马尔可夫链。

通过

limσ0xEϵN(0,σ2I)f(x+ϵ)=xf(x) \lim_{\sigma\to 0}\nabla_x \mathbb{E}_{\epsilon\sim\mathcal{N}(0,\sigma^2I)}f(x+\epsilon) = \nabla_x f(x)

计算生成过程的导数。

Kingma and Welling,Rezende et al. 提出了通用的随机反向传播的规则,允许人们通过具有有限方差的高斯分布进行反向传播,并反向传播至协方差参数和均值。通过这些规则可以学习生成器的条件方差。Kingma and Welling,Rezende et al. 使用随机反向传播训练了变分自动编码器。类似与GAN,VAE 将可微分的生成器网络与第二个神经网络配对,不过VAE的第二个网络是执行近似推理的识别模型。GAN需要对可见单元的微分,因此无法对离散数据建模,而VAE需要隐藏单元的微分,因此不能具有离散的隐变量。

之前也有利用判别准则训练生成模型的例子,但对深度生成模型而言这些准则难以计算。由于使用了概率的比值,也很难估计深度模型,因为概率之比不能使用降低概率的变分估计。噪声对比估计也有局限性。

也有一些使用两个神经网络进行竞争的工作,如可预测性最小化。GAN与可预测性最小化也有很多不同。

1.4 Adversarial nets

生成器产生的数据分布为pgp_g,定义输入噪声样本的先验分布pz(z)p_z(z),生成器为G(z;θg)G(z;\theta_g)GG是使用参数θg\theta_g表示的多层感知机。判别模型为D(x;θd)D(x;\theta_d)。训练DD来最大程度地分辨真实样本与GG产生的样本,同时训练GG来减小log(1D(G(z)))\log(1-D(G(z))),即

minGmaxDV(D,G)=Expdata(x)[logD(x)]+Expdata(x)[log(1D(G(z))](1.1) \min_G \max_D V(D,G) = \mathbb{E}_{x \sim p_{data}(x)}[\log D(x)] + \mathbb{E}_{x \sim p_{data}(x)}[\log(1- D(G(z))] \tag{1.1}

下面需要分析这样的训练准则可以产生足以恢复数据的GGDD。实际中要使用迭代的数值方法来训练。每次在全部数据上优化DD,运算量太大,而使用有限数据会导致过拟合。实际中交替地优化kkDD与一步GG。使用这种训练方法让GG缓慢变化,而DD会已知保持接近最优解。

在学习的早期,GG很差,log(1D(G(z)))\log(1-D(G(z)))很大,因此可以不最小化log(1D(G(z)))\log(1-D(G(z)))而是最大化logD(G(z))\log D(G(z))

考虑对任意给定生成器GG的最优的判别器。这个最小最大博弈可以得到全局最优解为

DG(x)=pdata(x)pdata(x)+pg(x) D^*_G(x) = \frac{p_{data}(x)}{p_{data}(x)+p_g(x)}

假设生成模型有足够的表现能力使得pg=pdatap_g=p_{data},那么此时,C(G)=maxDV(G,D)=log(4)C(G) = \max_D V(G,D) = -\log(4)

还可以证明,如果GGDD有足够的表达能力,且在训练中DD总能取到最佳分布,且pgp_g可以提升准则,那么pgp_g可以收敛到pdatap_{data}

实践中通过优化G(z;θg)G(z;\theta_g)中的θg\theta_g来实现分布的优化。尽管缺乏理论保证,多层感知机在实践中显示出了很好的效果。

2. Unsupervised Representation Learning with Deep Convolutional Generative Advsersarial Networks

2.1 Abstract

In recent years, supervised learning with convolutional networks (CNNs) has seen huge adoption in computer vision applications. Comparatively, unsupervised learning with CNNs has received less attention. In this work we hope to help bridge the gap between the success of CNNs for supervised learning and unsupervised learning. We introduce a class of CNNs called deep convolutional generative adversarial networks (DCGANs), that have certain architectural constraints, and demonstrate that they are a strong candidate for unsupervised learning. Training on various image datasets, we show convincing evidence that our deep convolutional adversarial pair learns a hierarchy of representations from object parts to scenes in both the generator and discriminator. Additionally, we use the learned features for novel tasks - demonstrating their applicability as general image representations.

介绍DCGAN,适合进行无监督学习。实验表明,深度卷积对抗对从目标中学习到了层次表示。学习到的特征可以用于图像表示。

2.2 Introduction

从无标签数据中学习特征表示有待研究。训练GAN可以得到好的图像表示,生成器和判别器可以作为监督任务的特征提取器。GAN很难训练,会生成无意义图像。对GAN学习到的东西及中间层表示的研究还很少。

本文的贡献有:

2.3 相关工作

2.4 模型结构,方法

以往将CNN引入GAN的尝试不成功。经过一番探索,得到了比较稳定的方法。核心是采用和修改最近对CNN结构的改进。

首先是全卷积,使用跨步卷积代替确定的空间池化,使得网络学习自己的空间降采样。用到了生成器中,学习它自己及判别器的空间降采样。

其次是减少卷积层上的FC层,如SOTA图像分类任务中的全局平均池化。全局平均池化提升了稳定性,降低了收敛速度。直接将最高层的卷积特征连接到生成器的输入和判别器的输出上比较好。GAN的第一层使用噪声作为输入,矩阵相乘后重整型到4维张量,作为卷积的输入。判别器最后的卷积层被展平,输入进sigmoid。

最后是BN。解决了初始化的问题,帮助梯度在更深的网络中流动。对深度生成器很重要,防止其坍缩到一点。应用BN到全部卷积层并不好,生成器的输出层与判别器的输入层并不需要。

生成器使用ReLU激活,不过输出层使用tanh。判别器使用Leaky Rectified 激活。原始GAN使用maxout激活。