生成式对抗网络(GAN)原理推导与网络构建思路

0 引言

设想这样的场景:你是一个工作室的老板,你的工作室主要用来生产名画的赝品;而真正的名画则为前人所创造,存放在收藏室中。你的赝品画会和真品画一起被鉴定家鉴定,而你的终极目标是成为一个以假乱真的工艺大师。通往目标的路自然十分坎坷,你首先要做的就是以假乱真。实际上,以假乱真相对容易一些,毕竟骗过一个毛头小子也能说是以假乱真,但让权威的鉴定专家也能眼拙就十分困难了。而你既然目的是成为一个工艺大师,那自然不会仅仅满足与骗过小白。于是你找上了一个立志于成为鉴定专家的人,你让他鉴定你伪造的画和真画,他会告诉你他的鉴定结果,让你能够知道自己的画是否被鉴定出来了,以便更好地提升技术;相反,你也会告诉他有没有鉴定出你的赝品画,让他的鉴定技艺也不断进步。

请添加图片描述

上述例子中,工艺大师模仿名画创造赝品,即生成器捕捉真实数据样本的潜在分布,并生成新的数据样本;鉴定专家判断送到眼前的画是真品还是赝品,即判别器判别输入是真实数据还是生成的样本。

1 简介

生成对抗网络(Generative Adversarial Nets,GAN)于 2014 年由 Ian J. Goodfellow 提出。GAN 的基本思想源自博弈论的二人零和博弈,由一个生成器和一个判别器构成,通过对抗学习的方式来训练。目的是估测数据样本的潜在分布并生成新的数据样本。 GAN 的优化过程是一个极小极大博弈 (Minimax game) 问题,优化目标是达到纳什均衡,使生成器估测到数据样本的分布。GAN 在图像和视觉计算、语音和语言处理、信息安全、棋类比赛等领域正在被广泛研究,具有巨大的应用前景。

2 基本原理

GAN 的核心思想来源于博弈论的纳什均衡。它设定参与游戏双方分别为一个生成器(Generator)和一个判别器 (Discriminator),生成器的目的是尽量去学习真实的数据分布,而判别器的目的是尽量正确判别输入数据是来自真实数据还是来自生成器;为了取得游戏胜利,这两个游戏参与者需要不断优化,各自提高自己的生成能力和判别能力,这个学习优化过程就是寻找二者之间的一个纳什均衡。
请添加图片描述

GAN 的计算流程与结构如上图所示,任意可微分的函数都可以用来表示 GAN 的生成器和判别器,由此,我们可以用可微函数 生成式对抗网络(GAN)原理推导与网络构建思路生成式对抗网络(GAN)原理推导与网络构建思路 来分别表示判别器和生成器,他们的输入分别为真实数据分布 生成式对抗网络(GAN)原理推导与网络构建思路 和随机变量 生成式对抗网络(GAN)原理推导与网络构建思路生成式对抗网络(GAN)原理推导与网络构建思路 将随机变量 生成式对抗网络(GAN)原理推导与网络构建思路 (例如高斯分布,记作 生成式对抗网络(GAN)原理推导与网络构建思路)映射成 生成式对抗网络(GAN)原理推导与网络构建思路生成式对抗网络(GAN)原理推导与网络构建思路 服从于一个尽可能逼近真实数据分布 生成式对抗网络(GAN)原理推导与网络构建思路 的概率分布,这个概率分布通常记为 生成式对抗网络(GAN)原理推导与网络构建思路

对于判别器 生成式对抗网络(GAN)原理推导与网络构建思路 ,如果输入来自真实数据,则返回 1;如果输入是 生成式对抗网络(GAN)原理推导与网络构建思路,则标注为 0。这里 生成式对抗网络(GAN)原理推导与网络构建思路 的目标是实现对数据来源的二分类判别:

  • 真——来源于真实数据 生成式对抗网络(GAN)原理推导与网络构建思路 的分布;
  • 伪——来源于生成器的伪数据 生成式对抗网络(GAN)原理推导与网络构建思路

生成式对抗网络(GAN)原理推导与网络构建思路 的目标是使自己生成的伪数据 生成式对抗网络(GAN)原理推导与网络构建思路生成式对抗网络(GAN)原理推导与网络构建思路 上表现 生成式对抗网络(GAN)原理推导与网络构建思路 和真实数据 生成式对抗网络(GAN)原理推导与网络构建思路生成式对抗网络(GAN)原理推导与网络构建思路 上表现 生成式对抗网络(GAN)原理推导与网络构建思路 一致。

生成式对抗网络(GAN)原理推导与网络构建思路生成式对抗网络(GAN)原理推导与网络构建思路 相互对抗并迭代优化的过程使得二者性能不断提升,当最终 生成式对抗网络(GAN)原理推导与网络构建思路 的判别能力提升到一定程度(成为鉴定专家),并且无法正确判别数据来源时,可以认为这个生成器 生成式对抗网络(GAN)原理推导与网络构建思路 已经学到了真实数据的分布(成为工艺大师)。

3 目标函数

根据第 2 节内容可知,判别器的目标是,若输入 生成式对抗网络(GAN)原理推导与网络构建思路 来自 生成式对抗网络(GAN)原理推导与网络构建思路,则 生成式对抗网络(GAN)原理推导与网络构建思路 应尽可能大;若输入 生成式对抗网络(GAN)原理推导与网络构建思路 来自 生成式对抗网络(GAN)原理推导与网络构建思路 ,则 生成式对抗网络(GAN)原理推导与网络构建思路 应尽可能大。为了目标函数更易表达,对二者取对数,即 生成式对抗网络(GAN)原理推导与网络构建思路生成式对抗网络(GAN)原理推导与网络构建思路。数学公式为:
生成式对抗网络(GAN)原理推导与网络构建思路
这里期望即为 生成式对抗网络(GAN)原理推导与网络构建思路

生成器的目标是,生成的 生成式对抗网络(GAN)原理推导与网络构建思路 尽可能被鉴定器 生成式对抗网络(GAN)原理推导与网络构建思路 识别为真实数据,即生成式对抗网络(GAN)原理推导与网络构建思路 尽可能大,或者说 生成式对抗网络(GAN)原理推导与网络构建思路 尽可能小。同理,将其取对数,则数学公式为:
生成式对抗网络(GAN)原理推导与网络构建思路
根据两者的目标函数可知,生成式对抗网络(GAN)原理推导与网络构建思路生成式对抗网络(GAN)原理推导与网络构建思路 之前存在彼之所得必为吾之所失的关系,二者构成了一个零和博弈。

还记得第 0 节提到的例子嘛,我们不仅要骗过毛头小子,还要骗过鉴定专家。对应到 生成式对抗网络(GAN)原理推导与网络构建思路生成式对抗网络(GAN)原理推导与网络构建思路 上就是,生成式对抗网络(GAN)原理推导与网络构建思路 产生的假样本能够骗过鉴别能力一流的 生成式对抗网络(GAN)原理推导与网络构建思路。因此,在 GAN 的思路中,生成式对抗网络(GAN)原理推导与网络构建思路 只是工具,我们的终极目标还是 生成式对抗网络(GAN)原理推导与网络构建思路,于是我们便得到了 GAN 优化的总目标,它是一个极小极大化问题,描述如下:
生成式对抗网络(GAN)原理推导与网络构建思路

4 全局最优解的存在性

上一节我们从逻辑上构造出 GAN 的总体目标函数,并且 生成式对抗网络(GAN)原理推导与网络构建思路 时应达到全局最优解(即 生成式对抗网络(GAN)原理推导与网络构建思路 生成的伪样本与真样本别无二致)。

对于 GAN 的学习过程,我们需要训练模型 生成式对抗网络(GAN)原理推导与网络构建思路 来最大化判别数据来源于真实数据 生成式对抗网络(GAN)原理推导与网络构建思路 或者伪数据分布 生成式对抗网络(GAN)原理推导与网络构建思路 的准确率,同时,我们需要训练模型 生成式对抗网络(GAN)原理推导与网络构建思路 来最小化 生成式对抗网络(GAN)原理推导与网络构建思路。这里可以采用交替优化的方法:先固定生成器 生成式对抗网络(GAN)原理推导与网络构建思路 ,优化判别器 生成式对抗网络(GAN)原理推导与网络构建思路,使得 生成式对抗网络(GAN)原理推导与网络构建思路 的判别准确率最大化;然后固定判别器 生成式对抗网络(GAN)原理推导与网络构建思路,优化生成器 生成式对抗网络(GAN)原理推导与网络构建思路,使得 生成式对抗网络(GAN)原理推导与网络构建思路 的判别准确率最小化。当且仅当 生成式对抗网络(GAN)原理推导与网络构建思路 时达到全局最优解。

在实际训练中,同一轮参数更新时,一般对 生成式对抗网络(GAN)原理推导与网络构建思路 的参数更新 生成式对抗网络(GAN)原理推导与网络构建思路 次再对 生成式对抗网络(GAN)原理推导与网络构建思路 的参数更新 1 次。

接下来我们证明全局最优解的情况下 生成式对抗网络(GAN)原理推导与网络构建思路 究竟是否成立。由于 生成式对抗网络(GAN)原理推导与网络构建思路生成式对抗网络(GAN)原理推导与网络构建思路 的结果与 生成式对抗网络(GAN)原理推导与网络构建思路 时的 生成式对抗网络(GAN)原理推导与网络构建思路 等价,所以,可以记
生成式对抗网络(GAN)原理推导与网络构建思路
首先,在给定生成器 生成式对抗网络(GAN)原理推导与网络构建思路 的情况下,我们只考虑优化判别器 生成式对抗网络(GAN)原理推导与网络构建思路 ,即 生成式对抗网络(GAN)原理推导与网络构建思路,而
生成式对抗网络(GAN)原理推导与网络构建思路

上述等式用到了概率论的基本知识,简单回顾一下:

设连续型随机变量 生成式对抗网络(GAN)原理推导与网络构建思路 的概率密度为 生成式对抗网络(GAN)原理推导与网络构建思路 ,如果积分 生成式对抗网络(GAN)原理推导与网络构建思路 绝对收敛,则称此积分为随机变量 生成式对抗网络(GAN)原理推导与网络构建思路数学期望均值,记作 生成式对抗网络(GAN)原理推导与网络构建思路 ,即
生成式对抗网络(GAN)原理推导与网络构建思路
设连续型随机变量 生成式对抗网络(GAN)原理推导与网络构建思路 的概率密度为 生成式对抗网络(GAN)原理推导与网络构建思路 ,如果积分 生成式对抗网络(GAN)原理推导与网络构建思路 绝对收敛,则称此积分为随机变量 生成式对抗网络(GAN)原理推导与网络构建思路数学期望均值,即
生成式对抗网络(GAN)原理推导与网络构建思路

由于只考虑 生成式对抗网络(GAN)原理推导与网络构建思路,因此考虑令 生成式对抗网络(GAN)原理推导与网络构建思路生成式对抗网络(GAN)原理推导与网络构建思路 求偏导
生成式对抗网络(GAN)原理推导与网络构建思路
我们要求的是 生成式对抗网络(GAN)原理推导与网络构建思路 ,故令上式导数结果等于 0 ,即:
生成式对抗网络(GAN)原理推导与网络构建思路
此时可求得:
生成式对抗网络(GAN)原理推导与网络构建思路
此即为判别器的最优解。

再次强调,生成式对抗网络(GAN)原理推导与网络构建思路 表示输入 生成式对抗网络(GAN)原理推导与网络构建思路 来自真实样本(生成式对抗网络(GAN)原理推导与网络构建思路)的概率。生成式对抗网络(GAN)原理推导与网络构建思路 表示输入一个 生成式对抗网络(GAN)原理推导与网络构建思路 ,输出一个 生成式对抗网络(GAN)原理推导与网络构建思路

生成式对抗网络(GAN)原理推导与网络构建思路 代入总目标函数中,有:
生成式对抗网络(GAN)原理推导与网络构建思路

以上公式用到了 KL 散度,即相对熵(取值范围为 生成式对抗网络(GAN)原理推导与网络构建思路):

生成式对抗网络(GAN)原理推导与网络构建思路 是随机变量 生成式对抗网络(GAN)原理推导与网络构建思路 上的两个概率分布,则在离散和连续随机变量的情形下,相对熵的定义分别为:
生成式对抗网络(GAN)原理推导与网络构建思路

生成式对抗网络(GAN)原理推导与网络构建思路

具体 KL 散度的概念、原理及推导在写了在写了(还么的建文件夹)。

因为上述公式中作为分母 生成式对抗网络(GAN)原理推导与网络构建思路 是两个概率分布相加,取值范围在 生成式对抗网络(GAN)原理推导与网络构建思路 之间,作为整体已经不能表示概率分布了,因此才有分母除 2 的操作。即令 生成式对抗网络(GAN)原理推导与网络构建思路 重构成 生成式对抗网络(GAN)原理推导与网络构建思路

显然,当 生成式对抗网络(GAN)原理推导与网络构建思路 时,等号成立。因此 生成式对抗网络(GAN)原理推导与网络构建思路,此时 生成式对抗网络(GAN)原理推导与网络构建思路。这说明,在 GAN 的总目标函数达到全局最优解时,生成器 生成式对抗网络(GAN)原理推导与网络构建思路 能将输入的服从 生成式对抗网络(GAN)原理推导与网络构建思路 分布的随机变量 生成式对抗网络(GAN)原理推导与网络构建思路 映射成一个服从 生成式对抗网络(GAN)原理推导与网络构建思路 的随机变量 生成式对抗网络(GAN)原理推导与网络构建思路,且此时 生成式对抗网络(GAN)原理推导与网络构建思路。而判别器 生成式对抗网络(GAN)原理推导与网络构建思路 已经无法分辨出输入的输入到底是真样本还是伪样本了(不管输入 生成式对抗网络(GAN)原理推导与网络构建思路 来自真样本还是 生成式对抗网络(GAN)原理推导与网络构建思路 生成的伪样本,都只能输出来自真样本的概率为 生成式对抗网络(GAN)原理推导与网络构建思路)。

5 网络构建与训练

通常而言,判别器 生成式对抗网络(GAN)原理推导与网络构建思路 和生成器 生成式对抗网络(GAN)原理推导与网络构建思路 分别是两个独立的神经网络,依据不同的实际用途可以选择使用多层感知机(MLP)、卷积神经网络(CNN)、Seq2Seq 抑或是其他的一些神经网络。

判别器一般就是一个简单的分类网络,输出的值在 生成式对抗网络(GAN)原理推导与网络构建思路 之间,表示输入来自真实样本的概率,大于 0.5 表示判别器认为其来自真实样本,否则则认为其是生成器生成的伪样本。

生成器则复杂一些,它输入是一个噪声,这个噪声通常让它服从高斯分布(其他的也行,没有硬性要求,实际应用时效果好就可),然后经生成器产生出类似于真实样本的伪样本。例如,如果我们想使用 GAN 生成图像,则生成器输入一个或多个随机噪声,经神经网络映射后转化成二维图像的形式。

请添加图片描述

对于网络的训练过程,在第 4 节开头已经叙述过了,这里再补充一些。

GAN 在每一次迭代训练过程中,均使用随机梯度下降法(SGD)进行参数更新(参数一般表示为 生成式对抗网络(GAN)原理推导与网络构建思路生成式对抗网络(GAN)原理推导与网络构建思路)。训练整体思路为:随机初始化全局参数后,对于每一轮迭代训练,先训练判别器,使得其对于真样本输出 生成式对抗网络(GAN)原理推导与网络构建思路,对于伪样本,则输出 生成式对抗网络(GAN)原理推导与网络构建思路 ,然后固定判别器;再训练生成器,使其产生的样本经过判别器输出后能尽可能地 生成式对抗网络(GAN)原理推导与网络构建思路

这里对于 SGD 以及 生成式对抗网络(GAN)原理推导与网络构建思路 的损失函数(一般为交叉熵损失函数)属于神经网络基础内容,不再赘述。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2023年12月26日
下一篇 2023年12月26日

相关推荐