我们可以从一维情况开始理解这个定理。假设有一个简单的一维连续随机变量 z。我们假定 z 服从标准正态分布。我们希望对 z 应用一个可逆函数 f 来创建一个新的随机变量 x,即方程 x=f(z)。因为 f 是一个可逆映射,我们也可以使用反函数 z=f−1(x) 进行反向映射。
新变量的概率密度(记为 px(x))是多少?一个常见的错误是认为 px(x) 简单地等于基础密度 pz(z)。然而,概率是由密度曲线下的面积决定的,且总面积的积分必须始终为 1。当函数 f 拉伸或压缩数轴时,概率密度必须相应地调整以保持总概率不变。
概率守恒规定,微小区域 dz 中的概率质量必须等于对应的转换区域 dx 中的概率质量:
px(x)∣dx∣=pz(z)∣dz∣
通过对该方程进行移位,我们得到了一维情况下的变量代换公式:
px(x)=pz(z)dxdz
其中 dxdz 项是反函数 f−1(x) 对 x 的导数。我们取绝对值是因为概率密度必须严格为非负数。如果没有绝对值,斜率为负的函数将计算出数学上不可能存在的负概率密度。
随机变量通过可逆变换的流程,显示了正向和逆向映射。
在机器学习 (machine learning)中,我们很少处理一维数据,而是处理代表图像、音频或文本的高维向量 (vector)。如果 z 和 x 是 N 维空间 RN 中的向量,那么简单的标量导数 dxdz 就不再适用。我们必须评估 z 的每一个维度相对于 x 的每一个维度是如何变化的。这种多维关系由一个称为雅可比矩阵(Jacobian matrix)的偏导数矩阵来刻画。
多元分布的变量代换定理将标量导数替换为雅可比矩阵的行列式:
px(x)=pz(z)det(∂x∂z)
我们也可以使用反函数 z=f−1(x) 显式地写出这个方程:
px(x)=pz(f−1(x))det(∂x∂f−1(x))
我们可以拆解该公式的组成部分,以理解密度估计在实践中是如何运行的。
px(x) 是我们要评估的数据的准确概率密度。
pz(f−1(x)) 是基础分布的概率密度。我们通过将数据点 x 反向通过反函数得到 z 来进行计算。
∂x∂f−1(x) 是雅可比矩阵。它追踪了逆变换在所有维度上的变化率。
det 是行列式算子。它衡量了由变换引起的多维空间的体积膨胀或收缩。
绝对值确保了最终的密度保持为正值。
为了使该定理成立,函数 f 必须是一个双射(bijection)。双射是一个既是单射又是满射的数学函数。这一限制确保了两个特性。首先,每个向量 z 映射到唯一一个向量 x,且每个 x 都能映射回唯一一个 z。其次,输入和输出维度是相同的,这保证了雅可比矩阵是一个方阵。行列式只能针对方阵进行计算。如果函数不是双射,概率质量可能会重叠或消失。