我无法理解Tensorflow概率中的Bijectors。 如何使用它们。
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()),
]))
答案 0 :(得分:1)
Bijector将change of variables封装成概率密度。
粗略地说,当您(平滑且可逆地)将一个空间映射到另一个空间时,您还可以从初始空间上的概率密度到目标空间上的密度导出一个映射。通常,这样的变换将初始空间中的长度/面积/体积(度量)扭曲为目标空间中的不同长度/面积/体积。由于密度包含体积信息,因此我们需要跟踪这些翘曲并在计算后者空间的概率密度时将其考虑在内。
通过实现正向和逆向变换以及对数雅各布行列式,Bijector可以为我们提供变换随机样本和概率密度所需的所有信息。