深入理解GANs(生成对抗网络)

本文与前文VAE出自同一作者,在此笔者进行翻译总结。

生成随机变量

        从生成随机变量开始讨论,均匀分布变量可以通过伪随机数过程生成。生成随机变量的方法有很多,比如拒绝采样,Metropolis-Hasting algorithm和逆变换放法。逆变换法的思想就是均匀分布的变量通过累积分布概率(CDF)的逆函数得到新的分布。下图为通过逆变换法使用均匀分布得到高斯分布:蓝色:[0,1]上的均匀分布。橙色:标准高斯分布。灰色:从均匀分布到高斯分布的映射。

 

生成模型

        如果我们有一张狗的长方形图片,用向量表示就是N(n*n)维的向量,然后,生成新的狗图像的问题等价于在N维向量空间上生成一个服从“狗概率分布”的新向量的问题。因此,事实上,我们面临着一个关于特定概率分布的随机变量的生成问题。那么会有两个问题存在:1.狗的图像的分布是很复杂的;2.即使有这样的分布存在,我们也无法显式或者生成这个分布。

        当我们试图生成新的狗图像时,首先要解决的问题是,n维向量空间上的“狗概率分布”是一个非常复杂的问题,我们不知道如何直接生成复杂的随机变量。然而,由于我们知道如何生成n个不相关的均匀随机变量,所以可以利用变换方法。为此,我们需要将N维随机变量通过简单n维随机变量生成。

        在这里,我们可以强调这样一个事实,即找出变换函数并不像我们描述反变换方法时那样简单,只取累积分布函数的封闭形式的反式(我们显然不知道)。所以转换函数很复杂,那么自然而然想到使用神经网络来学习这个转换函数。用神经网络对变换函数进行建模,该神经网络以一个简单的N维均匀随机变量作为输入,并作为输出返回另一个N维随机变量,训练后应遵循正确的“狗概率分布”。

生成匹配网络

        定义好了网络及网络的输出和输入形式,接下来考虑的就是如何训练这个网络。为此,我们可以提出两种不同的训练方法:直接训练和间接训练。直接训练方法是比较真实概率分布和生成概率分布,并通过网络反向传播差异(误差)。这就是生成匹配网络(Gmns)的思想。对于间接训练方法,我们不直接比较真实分布和生成分布。相反,我们通过让这两个分布通过选择一个下游任务来训练生成网络,这样生成网络相对于下游任务的优化过程将强制生成的分布接近真实分布。后者方法就是我们熟悉的GANs。

1.直接方法 

        生成均匀概率分布的输入;

        将输入通过网络生成输出;

        比较真实“狗概率分布”和基于现有样本生成的“狗概率分布”(MMD距离);

        使用反向传播使梯度下降一步,以降低真分布和生成分布之间的距离。

2.间接方法

        间接方法的思想是使用下游任务优化生成分布,这个方法的好处在与:规则是由一个间接的比较来取代的。对该任务执行生成网络的训练,使得其迫使生成的分布变得更接近并且更接近真实分布。GANs使用一个判别模型作为下游任务;所以,在GaN架构中,我们有一个鉴别器,它采集真实数据和生成数据的样本,并尽可能地对它们进行分类,还有一个生成器,它被训练以尽可能地欺骗鉴别器。

        我们需要得到一个完美的判别器:判别器确切地知道什么是真实的和生成的分布,并且能够根据这些信息预测任何给定点的类(“真”或“生成”)。构建一个判别器是很复杂的,而且得到一个完美的判别看来也不是一件简单的事,但是直接方法中比较两种基于样本的概率分布同样是复杂的,而间接方法中的完美判别器是可以通过数据中学习学到的。

生成对抗网络

        现在我们来描述GANS体系结构中的生成器和鉴别器的特定形式。生成器是一种神经网络,它对变换函数进行建模。它以一个简单的随机变量作为输入,必须在经过训练后返回一个符合目标分布的随机变量。由于它的复杂性和未知性,我们决定用另一种神经网络对判别器进行建模。这种神经网络建立了一个判别函数。它以一个点作为输入(在我们的狗例子中,一个N维向量),并将这个点的概率作为输出返回为“真”点。

         定义完网络的细节,就可以对两个网络以下面两个相反的目标进行联合训练:

             生成器的目标是欺骗判别器,因此对生成神经网络进行训练,使最终的分类误差最大化(在真实数据和生成数据之间)。

             判别器的目标是检测假数据,因此对判别神经网络进行训练,以最小化最终的分类误差。

        这些相反的目标和这两个网络隐含的对抗性训练概念解释了“对抗网络”的名称:两个网络都试图相互击败,这样做,它们都变得越来越好。它们之间的竞争使这两个网络在各自的目标方面取得了“进步”。从博弈论的角度来看,我们可以把这个设置看作一个极小极大的两人博弈,其中平衡状态对应于这样的情况,即发生器产生的数据来自精确的目标分布,而判别器预测它接收到的任何点的“真”或“生成”的概率为1/2。

数学推导

        GANs原文的数学推导:https://arxiv.org/pdf/1406.2661.pdf   

        该文提出了一种与原论文不同的数学解释,也更加符合上面的直觉,主要的不同是从绝对误差而不是交叉熵角度考虑。

总结

1.计算机基本上可以生成简单的伪随机变量(例如,它们可以生成非常接近均匀分布的变量)。

2.产生更复杂的随机变量有不同的方法,包括“变换方法”的概念,即将一个随机变量表示为某个简单随机变量的函数。

3.在机器学习中,生成模型试图从给定的(复杂)概率分布中生成数据。

4.深度学习生成模型被建模为神经网络(非常复杂的函数),其作为输入简单的随机变量并且返回跟随目标分布的随机变量(“变换方法”)。

5.这些生成网络可以“直接”训练(通过将生成的数据的分布与真实的分布进行比较):这就是生成匹配网络的思想。

6.这些生成网络也可以被“间接地”训练(试图欺骗同时被训练以区分“生成”数据和“真实”数据的另一个网络):这就是生成对抗性网络的概念。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值