跳转至

Advanced Topics

约 661 个字 预计阅读时间 2 分钟

Lecture 17: RL Theory Basics

Lecture 18: Variational Inference

概率模型用来表示一个概率分布,给定随机变量 \(x\),概率模型使用一个分布 \(p(x)\) 描述之,概率模型既可以是边缘分布 \(p(x)\),也可以是条件分布 \(p(x \mid y)\)

我们需要了解的是隐变量模型/Latent Variable Model,形式上来说,其是在证据查询之外引入一个额外的变量的概率模型,对于 \(p(x)\),我们的查询是 \(x\),没有证据,对于 \(p(y \mid x)\),我们的证据是 \(x\),查询是 \(y\)。由于我们引入了一个既不是证据又不是查询的量,那么这个变量就需要在求出目标概率时被边缘化。

一个经典的模型是使用混合模型来拟合 \(p(x)\),设数据呈现为三个明显簇,但我们并不知道每个点属于哪个簇。此时可令 \(z\) 为一个三类的离散分类变量,每一个簇对应一个高斯分布,这样就可以得到 \(p(x) = \sum_{z=1}^3 p(x \mid z) p(z)\)

对于条件概率也有类似的分解,比如 \(p(y \mid x) = \sum_{z} p(y \mid x, z) p(z \mid x)\)。如果 \(z\) 的概率依赖于 \(x\),那么 \(p(y \mid x) = \sum_{z} p(y \mid x, z) p(z \mid x)\) 的分解也是合理的。

更一般地来讲,我们可以将隐变量模型看作是使用简单的先验分布 \(p(z)\) 与简单的条件分布 \(p(x \mid z)\) 组合,从而得到复杂的 \(p(x) = \displaystyle\int p(x \mid z) p(z) \mathrm{d}z\)

至于如何训练隐变量模型,我们可以使用最大似然估计来训练,如果我们有模型 \(p_\theta(x)\) 和数据 \(\mathcal{D} = \{x_i\}_{i=1}^N\),那么最大似然估计给出下面更新:

\[ \theta \leftarrow \operatorname*{\arg\max}_{\theta} \frac{1}{N}\sum_{i=1}^N \log p_\theta(x_i). \]

\(p(x) = \displaystyle\int p(x \mid z) p(z) \mathrm{d}z\) 代入,我们得到:

\[ \theta \leftarrow \operatorname*{\arg\max}_{\theta} \frac{1}{N}\sum_{i=1}^N \log \left( \int p_\theta(x_i \mid z) p(z) \mathrm{d}z \right). \]

但是这种方法数值性质非常差,很难计算,如果 \(z\) 是连续的,那么我们需要计算积分,如果 \(z\) 是离散的,那么这样的情形是为数不多还好计算的情形。因此我们需要一种方式来估计对数似然,解决方法就是期望对数似然,使用的式子为:

\[ \theta \leftarrow \operatorname*{\arg\max}_{\theta} \frac{1}{N}\sum_{i=1}^N \mathbb{E}_{z \sim p_\theta(z \mid x_i)} \left[ \log p_\theta(x_i, z) \right]. \]