tfd.Normal和tfd.MultivariateNormalDiag的区别
时间: 2024-05-28 15:13:08 浏览: 154
projet-matlab.rar_TFD.m
在 TensorFlow Probability 中,tfd.Normal 和 tfd.MultivariateNormalDiag 都是用于定义概率分布的类,但它们之间有一些区别。
tfd.Normal 表示标准正态分布(均值为 0、标准差为 1 的正态分布),或者带有指定均值和标准差的一维正态分布。它只包含一个参数,即均值或者指定的平均值,标准差是固定的。tfd.Normal 可以用于连续变量的建模,比如身高、体重等。它的概率密度函数为:
$$
p(x) = \frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}}
$$
其中,$\mu$ 是均值,$\sigma$ 是标准差。
tfd.MultivariateNormalDiag 表示带有指定均值和协方差矩阵的多元正态分布。它有两个参数,均值和标准差。它可以用于多元连续变量的建模,比如身高、体重和年龄等。它的概率密度函数为:
$$
p(x) = \frac{1}{\sqrt{(2\pi)^k|\Sigma|}}\exp\left(-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu)\right)
$$
其中,$k$ 是变量的维数,$\mu$ 是均值向量,$\Sigma$ 是协方差矩阵。
另外,tfd.MultivariateNormalDiag 还可以表示各维度之间相互独立的多元正态分布,即协方差矩阵是对角矩阵,这时候它等价于多个 univariate normal distribution 组合而成。这种情况下,tfd.MultivariateNormalDiag 可以用于高维数据的建模,因为计算协方差矩阵的开销很大,而对角矩阵的计算代价相对较小。
阅读全文