ITPub博客

首页 > 人工智能 > 深度学习 > 理解生成对抗网络,一步一步推理得到GANs(一)

理解生成对抗网络,一步一步推理得到GANs(一)

深度学习 作者:dicksonjyl560101 时间:2019-08-15 08:49:29 0 删除 编辑
作者:Joseph Rocca
编译:ronghuaiyang

导读

GANs在2014年提出,然后就在图像生成领域取得了巨大的成功,但是其背后的原理却不是那么好理解,这篇文章带你从最基础的随机变量开始,一步一步推理得到GANs,非常的详细,一定要看看!由于文章较长,分两部分分享给大家,今天是第一部分。
理解生成对抗网络,一步一步推理得到GANs(一)

介绍

Yann LeCun将其描述为“过去10年机器学习领域最有趣的想法”。当然,这样一个来自深度学习领域的杰出研究者的赞美,对于我们正在谈论的主题来说,总是一个很好的广告!事实上,自从2014年Ian J. Goodfellow和他的合著者在Generative Adversarial Nets中介绍生式对抗网络(GANs)以来,它已经取得了巨大的成功。

那么什么是生成性对抗性网络呢?是什么让它们如此“有趣”?在这篇文章中,我们将看到对抗性的训练是一个极有启发性的想法,简单美,代表了机器学习的真正进步的概念,更尤其是生成模型(以同样的方式作为反向传播是一个简单但很聪明的技巧,使神经网络变得如此受欢迎和有效)。

在讨论细节之前,让我们先简要介绍一下GANs的用途。生成对抗性网络属于生成模型。这意味着他们能够产生新的内容。为了说明“生成模型”的概念,我们可以看一些使用GANs获得结果的著名的例子。

理解生成对抗网络,一步一步推理得到GANs(一)

Ian Goodfellow及其合著者对GANs能力的说明。这些是在两个数据集:MNIST和TFD上进行训练后对抗网络生成的样本。对于这两种情况,最右边的列是离生成的直接相邻样本最近的真实数据。这表明产生的数据实际上是生成的,而不仅仅是由网络记忆的。

很自然,这种生成新内容的能力让GANs看起来有点“神奇”,至少乍一看是这样。在下面的部分中,我们将克服GANs的魔法,以便深入研究这些模型背后的思想、数学和建模。我们不仅会讨论生成对抗网络所依赖的基本概念,而且,我们还会一步一步地构建这些概念,并从一开始就对这些概念进行推理。

废话不多说,让我们一起重新发现GANs !

:虽然我们试图使本文尽可能地可以独立的阅读,但仍然需要具备机器学习的基本先验知识。然而,大多数概念将在需要时保留,并提供一些参考资料。我们尽力使这篇文章读起来尽可能流畅。不要犹豫,在评论部分会提到你想要阅读的更多内容(可能会有更多关于这个主题的文章)。

概要

在下面的第一部分中,我们将讨论从给定的分布生成随机变量的过程。然后,在第2节中,我们将通过一个例子说明,GANs试图解决的问题可以表示为随机变量生成问题。在第3节中,我们将讨论基于匹配的生成网络,并展示它们如何回答第2节中描述的问题。最后在第4节中,我们将介绍GANs。更特别的是,我们将展示带有损失函数的通用架构,并与之前的所有部分进行链接。

生成随机变量

在本节中,我们将讨论随机变量的生成过程:我们将提醒一些现有的方法,特别是允许从简单的均匀随机变量生成复杂随机变量的逆变换方法。尽管所有这些似乎都与我们的主题GANs有些不同,我们将在下一节中看到与生成模型的深层联系。

均匀随机变量可以伪随机生成

计算机基本上是确定的。因此,从理论上讲,不可能生成真正随机的数字(即使我们可以说“什么是随机?”这个问题很难回答)。然而,定义生成属性非常接近理论随机数序列的数字序列的算法是可能的。具体地说,计算机能够使用伪随机数字生成器生成一个数字序列,该序列近似地遵循0和1之间的均匀随机分布。均匀的情况是一个非常简单的情况,在此基础上可以用不同的方式构建更复杂的随机变量。

由一个操作或过程的结果表示的随机变量

有不同的技术旨在生成更复杂的随机变量。其中包括逆变换法、拒绝抽样法、Metropolis-Hasting算法等。所有这些方法都依赖于不同的数学技巧,这些技巧主要是包括用一个操作的结果(相对于更简单的随机变量)来表示我们希望的随机变量。

拒绝抽样表示随机变量是一个过程的结果,这个过程不是从复杂的分布中抽样,而是从一个众所周知的简单分布中抽样,并根据某些条件接受或拒绝抽样值。重复这个过程直到采样值被接受,我们可以证明在接受的条件正确的情况下,有效采样的值将遵循正确的分布。

在Metropolis-Hasting算法中,我们的想法是找到一个马尔可夫链(MC),使这个MC的平稳分布对应于我们想要对随机变量进行抽样的分布。一旦这个MC找到了,我们就可以在这个MC上模拟一个足够长的轨迹,考虑到我们已经达到了一个稳定的状态,然后我们用这种方法得到的最后一个值可以被认为是从感兴趣分布中得到的。

我们不再深入讨论拒绝抽样和Metropolis-Hasting抽样的细节,因为这些方法并不能引导我们理解GANs背后的概念(尽管如此,感兴趣的读者可以参考Wikipedia中有针对性的文章和链接)。让我们更加关注一下逆变换方法。

逆变换方法

逆变换方法的想法只是代表我们的复杂性—在本文中“复杂”应该理解“不简单”的感觉,而不是在数学意义上的复杂,我们知道如何生成随机变量函数的结果应用于一个统一的随机变量。

我们以一维的例子来考虑。假设X是一个复杂随机变量,U是一个均匀随机变量,取值范围为[0,1],我们知道如何抽样。我们提醒你一下,一个随机变量是由它的累积分布函数 (CDF)完全定义的。随机变量的CDF是一个从随机变量的定义域到区间[0,1]的函数,并且在一维中定义。

理解生成对抗网络,一步一步推理得到GANs(一)

在U为均匀随机变量的特殊情况下,我们有

理解生成对抗网络,一步一步推理得到GANs(一)

为了简单起见,我们在这里假设函数CDF_X是可逆的,它的逆表示为

理解生成对抗网络,一步一步推理得到GANs(一)

(使用泛函的逆,该方法可以很容易地推广到非可逆的情况下,但这真的不是我们想要关注的重点)。如果我们定义

理解生成对抗网络,一步一步推理得到GANs(一)

我们有

理解生成对抗网络,一步一步推理得到GANs(一)

我们可以看到,Y和X有相同的CDF然后定义出的随机变量。因此,通过定义上面的Y(作为一个均匀随机变量的函数),我们成功地定义了一个具有目标分布的随机变量。

综上所述,逆变换法是一种使一个均匀的随机变量通过一个精心设计的“变换函数”(逆CDF)来生成一个服从给定分布的随机变量的方法。实际上,“逆变换法”的概念可以推广到“变换法”的概念,即更一般地,将随机变量作为一些更简单的随机变量的函数来生成(不一定是一致的,那么变换函数就不再是逆CDF)。从概念上讲,“变换函数”的目的是对初始概率分布进行变形/重塑:转换函数从初始概率分布相对于目标概率分布过高的地方入手,将其放到初始概率分布过低的地方。

理解生成对抗网络,一步一步推理得到GANs(一)

逆变换法的图解。蓝色表示[0,1]上的均匀分布。橙色表示标准高斯分布。灰色:从均匀分布到高斯分布的映射(逆CDF)。

生成模型

我们尝试生成更加复杂的随机变量…

假设我们对生成大小为n×n像素的狗的黑白正方形图像感兴趣。我们可以将每个数据重新塑造为一个N=n×n维向量(通过将列叠加在一起),这样狗的图像就可以用一个向量来表示。然而,这并不意味着所有的向量变回正方形之后都表示为狗!因此,我们可以说,N维向量可以有效地给到一些东西,看起来像一只狗,这个N维向量的分布是根据特定的概率分布在整个N维向量空间中的(一些空间中的点很可能代表狗,而另外的可能不像)。本着同样的精神,在这个N维向量空间中,存在着猫、鸟等图像的概率分布。

然后,生成一个新的dog图像的问题等价于在N维向量空间中按照“dog概率分布”生成一个新的向量的问题。实际上,我们面临的问题是根据特定的概率分布生成一个随机变量。

在这一点上,我们可以提到两件重要的事情。首先,我们提到的“狗的概率分布”在一个非常大的空间是一个非常复杂的分布。其次,即使我们可以假设存在这样的底层分布(实际上存在看起来像狗的图像和其他不像狗的图像),我们显然不知道如何显式地表达这种分布。前面的两点使得从这个分布中生成随机变量的过程非常困难。接下来让我们尝试解决这两个问题。

… 所以让我们在变换方法中使用神经网络作为变换函数吧!

我们在生成dog的新图像时遇到的第一个问题是,在N维向量空间上的“dog概率分布”是一个非常复杂的问题,我们不知道如何直接生成复杂的随机变量。然而,我们很清楚如何生成N个不相关的均匀随机变量,我们可以利用变换方法。为此,我们需要将N维随机变量表示为将一个非常复杂的函数,应用在生成一个简单的N维随机变量上!

在这里,我们可以强调这样一个事实,即找到变换函数并不像描述逆变换方法那样简单,只需对累积分布函数(我们显然不知道)求出封闭形式的逆。转换函数不能显式表达出来,我们必须从数据中进行学习。

在大多数情况下,非常复杂的函数自然意味着神经网络建模。然后,通过神经网络对变换函数进行建模,该神经网络将一个简单的N维均匀随机变量作为输入,并返回另一个N维随机变量,该随机变量在训练后应遵循正确的“dog概率分布”。一旦网络架构设计完成,我们仍然需要对其进行训练。在接下来的两节中,我们将讨论两种方法来训练这些生成网络,包括GANs背后的对抗性训练!

理解生成对抗网络,一步一步推理得到GANs(一)

图解使用神经网络生成模型的概念。显然,我们讨论的维度比这里表示的要高得多。

英文原文:https://towardsdatascience.com/understanding-generative-adversarial-networks-gans-cd6e4651a29



https://www.toutiao.com/i6725010195707068942/

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29829936/viewspace-2653733/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
行万里路,读万卷书,阅无数人。 吃货一枚,爱吃湘菜,川菜,粤菜与杭帮菜,尝遍天下美食。 摄影爱好者,游遍名川大山,江河胡海,赏遍人间春色。 爱看影,尤其是港片,好莱坞大片。英文名:DicksonJin, 网名:风一样的BOY。精通SAP供应链咨询。2017年开始研习人工智能。

注册时间:2014-08-27

  • 博文量
    2034
  • 访问量
    3175931