3

我无法理解 Tensorflow 概率中的双射器。如何使用它们。

standard_gumbel = tfd.TransformedDistribution(
distribution=tfd.Exponential(rate=1.),
bijector=tfb.Chain([
tfb.Affine(
scale_identity_multiplier=-1.,
event_ndims=0),
tfb.Invert(tfb.Exp()),
]))
4

1 回答 1

6

双射器封装了概率密度的变量变化。

粗略地说,当您(平滑且可逆地)将一个空间映射到另一个空间时,您还可以从初始空间上的概率密度到目标空间上的密度导出一个映射。一般来说,这种变换会将初始空间中的长度/面积/体积(度量)扭曲到目标空间中的不同长度/面积/体积。由于密度包含体积信息,我们需要跟踪这些扭曲并在计算后一个空间中的概率密度时考虑它们。

通过实现正向和逆变换以及对数雅可比行列式,Bijectors 为我们提供了转换随机样本和概率密度所需的所有信息。

于 2019-06-04T17:21:54.967 回答