生成式学习
熟悉生成学习和隐变量模型背后的基本原理。
判别模型与生成模型
机器学习模型通常被分为判别模型和生成模型。这种分类源于我们构建和训练这些模型所采用的概率化表述方式。
判别模型学习在给定数据点 的条件下,标签 的概率,数学上表示为 。为了将一个数据点归入某一类别,我们需要学习数据与类别之间的映射关系。这种映射可以用概率分布来描述,每个标签会在特定数据点上“竞争”概率密度。
生成模型则不同,它们的目标是直接学习数据点上的概率分布,而不依赖外部标签,数学上表示为 。在这种情况下,是各个数据点自身在“竞争”概率密度。
条件生成模型是另一类模型,旨在学习在给定标签 的条件下,数据 的概率分布。如你所料,这表示为 。此时,数据依然在“竞争”密度,但这种竞争是在每一个可能的标签下分别进行的。
需要澄清一下这里的“竞争”概念。概率密度函数 是一个归一化函数,其在整个定义域上的积分等于 1:
显然,每个数据点 只能“获得”一小部分密度值。因此,每个 值都在“与其他值争夺更大的份额”。
此外值得一提的是,如果我们考虑贝叶斯法则,上述几类模型实际上是相互关联的:
这个公式表明,我们可以将某一类模型构造为其他类型模型的组合。
生成模型
如前所述,生成模型的目标是学习数据的概率密度函数 。该密度函数有效描述了训练数据的分布特性,并使我们能够通过对该分布进行采样来生成新的数据。理想情况下,我们希望模型学到的概率密度 与真实数据的分布 完全一致。为实现这一目标,已有多种不同的建模策略。
需要注意的是,大多数情况下生成模型是无监督的,即它们使用无标签数据进行训练。
潜变量模型
潜变量模型旨在通过引入潜变量来建模概率分布。
潜变量可视为将数据点映射到一个连续的低维空间中的变换。
直观上,潜变量以更简洁的方式描述或“解释”原始数据。
从严格的数学角度看,服从概率分布 的数据点 被映射为服从分布 的潜变量 。
基于这一思想,我们可以定义以下五个基本概念:
- 先验分布 :用于建模潜变量的行为特征。
- 似然函数 :定义如何从潜变量生成数据点。
- 联合分布 :似然与先验的乘积,本质上代表了整个模型。
- 边缘分布 :原始数据的分布,是模型的最终目标。它反映了生成某个数据点的可能性。
- 后验分布 :描述由某个具体数据点所能推断出的潜变量分布。
注意,以上过程均未涉及任何标签 !
最后,再定义两个关键术语:
- 生成(Generation):指从潜变量 计算出数据点 的过程,即从潜空间映射回实际数据分布。数学上由似然函数 表示。
- 推断(Inference):指根据数据点 推导出对应潜变量 的过程,由后验分布 描述。
显然,推断是生成的逆过程,反之亦然。
从可视化角度,可以参考如下示意图:
(图示:生成与推断之间的关系)
现在问题的关键浮现出来:我们如何才能得到这些分布?这正是变分自编码器(VAE)发挥作用的地方。