背景:什么是生成模型?

“生成对抗网络”这个名称中的“生成式”是指什么? “生成”类别描述与判别模型对比的一类统计模型。

正式名称:

  • “生成”模型可以生成新的数据实例。
  • 判别式模型会区分不同类型的数据实例。

生成模型可以生成看起来像真实动物的新照片,而判别模型可以区分猫和狗。GAN 只是一种生成模型。

更正式地说,假设有一组数据实例 X 和一组标签 Y:

  • 生成模型会捕获关节概率 p(X, Y),或者如果没有标签,则仅捕获 p(X)。
  • 判别式模型捕获条件概率 p(Y | X)。

生成模型包含数据本身的分布,它会告诉您给定样本的可能性。例如,预测序列中下一个单词的模型通常是生成模型(通常比 GAN 简单得多),因为它们可以为单词序列分配概率。

判别模型会忽略给定实例是否有可能的问题,而只是告知您某个标签应用于该实例的可能性。

请注意,这是一个非常宽泛的定义。生成模型有很多种。GAN 只是一种生成模型。

建模概率

这两种模型都不能返回表示概率的数字。您可以通过模拟该分布来建模数据分布。

例如,决策树等判别分类器可以为实例添加标签,而无需为该标签分配概率。此类分类器仍然是一种模型,因为所有预测标签的分布情况都将模拟数据中标签的实际分布情况。

同样,生成模型可以通过生成令人信服的“虚假”数据(类似于这些数据)来对分布进行建模。

生成模型很困难

与模拟判别模型相比,生成模型能够处理更棘手的任务。生成模型必须构建更多模型。

图像的生成模型可能会捕获相关性,例如“船看起来像看起来像在水上”,并且“眼睛不太可能出现在前额”。这些是非常复杂的发行版。

相比之下,判别模型只需要查找一些讲故事的模式,就可以了解“帆船”或“非帆船”之间的区别。它可能会忽略生成模型必须正确实现的许多相关性。

判别模型会尝试在数据空间中绘制边界,而生成模型会尝试在整个空间中放置数据。例如,下图显示了手写数字的判别和生成模型:

两个图表,一个标记为“判别模型”,另一个标记为“生成模型”。这两个图表显示的是相同的四个数据点。每个点都标有其代表的手写数字的图片。在判别图表中,有一个虚线将两个数据点与其余的两个数据点分开。虚线上方的区域标签为 'y=0',线上下方的区域标记为 'y=1'。在生成图中,围绕两对点绘制了两个虚线圆圈。顶部圆圈标记 'y=0' 底部圆圈标记 'y=1

图 1:手写数字的判别和生成模型。

判别模型会尝试通过在数据空间中绘制一条线来区分手写 0 和 1 之间的区别。如果线正确,它可以将 0 和 19 区分开来,而无需对实例在行任何一侧的数据空间中的位置进行精确建模。

相反,生成模型会尝试生成接近数据空间中与之对应的数字的令人信服的 1 和 0。它必须对整个数据空间中的分布进行建模。

GAN 提供了一种有效的方法来训练这种丰富的模型,使其类似于真实分布。要了解它们的工作原理,我们需要了解 GAN 的基本结构。

检查您的理解情况:生成模型与判别模型

你有 1000 人的 IQ 得分。您可以按照以下过程对 IQ 得分的分布进行建模:
  1. 掷三个六面骰子。
  2. 用一个常量 w 乘以掷骰子的结果。
  3. 重复 100 次,然后取所有结果的平均值。
尝试使用不同的 w 值,直到程序的结果等于实际 IQ 得分的平均值。您的模型是生成模型还是判别模型?
生成模型
正确:对于每次掷骰子,您实际上是在生成一个虚构人物的智商。此外,您的生成模型捕获的是 IQ 得分呈正态分布(即铃铛曲线)的事实。
判别模型
不正确:类似的判别模型会尝试区分不同类型的 IQ 得分。例如,判别模型可能会尝试将 IQ 归类为虚假或真实。
信息不足,无法判断。
此模型确实符合我们两种模型之一的定义。
如果您为模型提供数据实例,则会返回概率。此模型是生成模型还是判别模型?
生成模型
生成模型可以估算实例的概率,以及类别标签的概率。
判别模型
判别模型可以估算实例属于某个类的概率。
信息不足,无法判断。
生成模型和判别模型都可以估算概率(但不必如此)。