生成模型是一种用于生成新样本的模型,可以模拟给定输入数据的概率分布。以下从生成模型的框架、概率表示和目标函数等方面进行说明。
假设有一组观察数据 x= { x 1 , x 2 ,…, x n },这组观察数据通过一个规则来生成,这个规则不妨称为 p data ,图1-5左边为数据分布样本点,图1-5右边为由随机采样得到的分布曲线。
图1-5 生成模型的框架示意
一般情况下,生成观察数据的规则(即分布函数 p data )是未知的,我们只能看到一组观察数据,如一组样本,这些样本可以是一组样本点或一组图像等。
接下来我们的目标就是通过观察数据 x 构建一个模型 p model ,用模型 p model 去模仿或逼近 p data 。如果实现了这个目标,我们就可以从模型 p model 采样生成观察数据,且生成的观察数据好像是从 p data 提取的。
构建模型 p model 后,如何衡量模型 p model 的优劣呢?如果满足以下两个条件说明 p model 建模成功。
1)从模型 p model 生成的采样与输入数据很逼真,或就像是从 p data 生成的结果。
2)由模型 p model 生成的点,除模仿功能外,还应该有创新功能,即可以生成一些观察数据中没有但与观察数据有几分相似的新数据。
如何基于观察数据 x 来构建满足以上要求的模型 p model 呢?接下来我们从底层逻辑进行说明。
如何从一组观察数据中学到符合要求的模型 p model ?模型 p model 可看作一条曲线,如图1-5右图所示。而神经网络可以拟合任何一条曲线,为此我们可以通过神经网络来构建模型 p model 。假设一组样本构成的数据集为 χ ,神经网络的参数集为 θ (如可表示神经网络中权重参数 w 及偏置 b 等),我们要求的分布函数可表示为:
对于给定的观察数据 x ,参数 θ 的似然函数(即在参数化的模型中观察到的样本数据的概率,第13章有进一步的说明)为:
如果数据集 χ 由一组独立同分布的样本 x 构成,即 χ= { x 1 , x 2 ,…, x n },则数据集 χ 的似然函数可表示为;
由于概率乘积的计算难度较大,我们一般采用对数似然函数:
参数化建模的目标就是找到最合理的参数 θ′ ,最大化数据集 χ 观测值的似然性。这种参数估计的方法称为极大似然估计。
由此可得,生成模型的目标函数就是最大化数据集 χ 的对数似然:
在生成模型中,概率分布 p ( x ; θ )中的 x 往往是高维的,它对应的分布往往很复杂,求其解析解不现实。不过,任何一个数据的分布都可以看作若干高斯分布的叠加。如图1-6所示,生成样本的模型 p data 由两个高斯分布叠加所得。
要求生成模型 p model 或 p ( x ; θ ),这里参数集为 {α k , μ k , σ k } , k= 1, 2,代入目标函数,可得:
由于对数中含有连加,无法直接求出其解析解,需要另辟蹊径。但我们可以采用迭代方法,如EM算法(详细内容可参考第13章)、变分推断、GAN、扩散模型(Diffusion)等来近似目标函数,后续章节将详细介绍这些方法。
观察数据如果是高维的,其背后的分布往往非常复杂,而且因为高维,其样本数据显得非常稀疏。在这种情况下,如何有效地学习到观察数据背后的规则或分布就显得非常重要,其中涉及一个核心概念——表示学习。表示学习也是深度学习的重要内容,更是生成模型的核心内容之一。
图1-6 两个高斯分布叠加可得 p data 分布
当分布难以计算时,在一些算法中也经常使用最大化证据下界(Evidence Lower BOund, ELBO)来近似最大化log p ( x )。在变分推断中,我们的目的是寻找一个 q θ ( x )去最小化KL散度,根据推导我们发现 D KL =-ELBO+log p ( x ),而 p ( x )不依赖于 q θ ( x ),因此寻找最大化KL散度等价于最小化ELBO。而由于先验分布和似然分布的形式较为简单,ELBO的计算是较为容易的,具体推断过程可参考第13章。
生成模型面临的挑战主要包括以下几个方面:第一,语言的多样性和复杂性使模型生成准确、流畅的语句变得困难;第二,生成模型往往需要处理长期依赖性,避免产生不连贯或重复的内容;第三,生成模型需要具备一定的语义理解和推理能力,以便生成合理、具有逻辑的输出;第四,生成模型还需要解决数据稀缺性的问题,因为高质量的训练数据往往难以获取;第五,在实际应用中,生成模型需要平衡生成新颖、有创造力的内容与符合客户需求的准确性和可解释性之间的关系。解决这些挑战的方法具体如下。
(1)生成模型的选择
选择适合处理高维数据的生成模型,如生成对抗网络、变分自编码器等。不同的生成模型对于不同类型的数据有着各自的优势。
(2)使用流形学习
流形学习是一种非线性降维的方法,它可以将高维数据映射到低维流形空间中。通过在流形空间中建模和学习数据分布,可以更有效地找到满意的一小部分数据。
(3)数据增强
通过对原始数据进行合理的变换和扩充,增加样本的多样性和数量,可以帮助生成模型更好地捕捉数据的分布,从而提供更多样的数据,进一步增加数据的多样性并改善模型的泛化能力。
(4)引入先验知识
如果对数据有先验知识或领域知识,可以将这些信息融入生成模型中,从而提高模型性能和生成效果。
(5)优化模型结构和参数
调整生成模型的结构和参数,使用更复杂的网络架构或优化算法来提升模型对高维数据的建模能力。
(6)采样策略
在高维样本空间中,采样方法对于生成模型至关重要。可以尝试使用更加智能和高效的采样策略,以确保生成模型能够有效地探索整个样本空间。
总之,解决在高维样本空间中找到满意的一小部分数据的挑战需要结合降维技术、流形学习、先验知识、对抗生成网络和数据增强等方法,并根据具体任务来选择合适的策略。