条件生成模型和判别模型之间的唯一区别是建模分布的复杂性吗?

机器算法验证 机器学习 生成模型
2022-03-12 08:46:58

定义判别模型的一种常用方法是对进行建模,其中是标签,是观察变量。条件生成模型做的事情非常相似,但是的建模分布往往更复杂——例如,可能是图像的分布,其中条件变量可能是图像类。通常一个模型是判别式还是条件生成式是很直观的,但在某些情况下似乎很不清楚,所以我想知道:这两者之间的区别纯粹是任意的吗?P(Y|X)YXYYX

以下是不同模型列表,按“生成性”增加的顺序列出P(Y|X)YX

  1. 语义分割模型(卷积网络)输出图像中每个像素的类分布。

  2. 回归密集单目深度的卷积网络——为图像中的每个像素输出深度上的正态分布。

  3. 与 4 相同,但发生器中没有调节噪声。

  4. 从 RGB 输入输出密集单目深度的 GAN,使用典型的 GAN 损失和回归损失。

  5. 一个 cycleGAN 模型,可让您从分布中进行采样,其中是图像,是该图像以莫奈绘画风格的再现。Y|XXY

  6. 一种条件 GAN 模型,可生成任何动物类别的逼真图像(动物标签是条件变量)。

我想几乎每个人都同意 1 和 6 分别是判别式和条件生成式。2 和 5 分别相同,但理由不太清楚。最后对于 3 和 4,我还不清楚它们应该如何分类。由于缺乏条件噪声,图 3 在密集深度图上模拟了一个不太复杂的分布,并且倾向于判别性方面,反之亦然 4。

所以:1:判别生成模型和条件生成模型之间有明确的区别吗?2:它只是模型分布有多复杂的任意函数吗?3:如果有一个好的定义,上面的模型会如何分类?

1个回答

在机器学习中,术语“生成”和“判别”有时与“无监督”和“监督”混为一谈。只阅读深度学习论文的人也可能会相信生成模型会“生成”图像、文本或音频,而判别模型会分配标签。但这并不是在 GAN 和 VAE 出现之前定义和使用这些术语的方式。

生成模型为所有涉及的变量分配联合概率分布,即使我们最终只关心条件或边际分布。生成模型的经典示例包括朴素贝叶斯分类器潜在狄利克雷分配朴素贝叶斯是有监督的,通常应用于非常简单的数据,因此数据复杂性根本不重要。这些模型都不是为了生成输入而设计的。事实上,他们的条件独立假设使他们做得很差。

判别模型或条件模型在给定另一组变量的情况下将条件概率分配给一组变量。判别模型有时以无监督的方式进行训练,请参阅判别聚类

包含两者的更一般的术语是“概率模型”或“统计模型”,它们可以指代概率分布的任何集合。我们使用“生成”和“判别”来快速传达概率模型的一些一般属性。其他说明符包括"parametric""nonparametric""graphical"

最近的短语“条件生成”表明我们正在以变量为条件,就像在判别建模中一样,但我们也在对测试时实际上并不感兴趣的分布进行建模,就像在生成建模中一样。例如,在训练条件 GAN 生成图像时x从噪音z和一个标签c,p(x,zc),我们可能只关心p(xc)在测试时。但为了与“生成”和“判别”的定义保持一致,我建议在决定某事物是否“有条件地生成”时,数据的复杂性或类型应该无关紧要。

使用这些定义,我们将按如下方式分配标签:

  1. 有区别的
  2. 有区别的,因为数据类型或分布无关紧要
  3. 有区别的,因为您只是有条件地对感兴趣的变量进行建模
  4. 条件生成,因为您对辅助变量进行建模;用于训练模型的损失无关紧要
  5. 判别性,数据的复杂性或类型,或训练模型的方式无关紧要
  6. 条件生成

我将指出Minka (2005)的注释和Bishop & Lasserre (2007)的论文,它们提供了更精确但更窄的定义以及生成模型和判别模型的统一视图,这可能会进一步澄清问题。

最后,请注意术语“模型”是重载的,它既可以指一个分布族,也可以指这个族的一个实例。例如,“训练模型”pθ具有特定参数值的是参数模型的一个实例,{pθ:θRN}. 为了让事情变得更加混乱,机器学习术语将模型与拟合程序混为一谈。请注意,VAE 和 GAN(以及非线性 ICA 和其他一些)指的是本质上相同的模型(如果您假设非常小σ),

N(z;0,I)N(x;fθ(z);σ2I),

但是我们经常将它们称为不同的“模型”,因为它们的优化方式不同。