What is Bijectors in layman terms in tensorflow probability
Asked Answered
A

1

5

I am not able to understand Bijectors in Tensorflow-probability. how to use them.

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()),
]))
Allinclusive answered 3/6, 2019 at 10:19 Comment(0)
A
10

Bijectors encapsulsate the change of variables for a probability density.

Roughly speaking, when you (smoothly and invertibly) map one space to another, you also induce a map from probability densities on the initial space to densities on the target space. In general such transformations warp lengths/areas/volumes (measures) in the initial space to different lengths/areas/volumes in the target space. Since densities incorporate volume information, we need to keep track of these warpings and account for them in the computation of the probability density in the latter space.

By implementing forward and inverse transformations, as well as log Jacobian determinants, Bijectors give us all the info we need to transform random samples as well as probability densities.

Annamariaannamarie answered 4/6, 2019 at 17:21 Comment(3)
@Chis Thanks for the intuitive reply. So one more doubt, What is the basic application for transforming one distribution to others?. Few examples will workAllinclusive
@AyushmanGupta usually when a parameter is constrained (e.g. a standard deviation must be positive) but you want to estimate the parameter using a method that works on an unconstrained space (HMC for example) you can use a bijector to transform to unconstrained and then come back to constrained space when you're doneOverlie
Late reply and I don't know if the answer has been found. Basically, you can use bijectors to create normalizing flow models, which are generative models that explicitly learn the probability distribution over data.Crore

© 2022 - 2024 — McMap. All rights reserved.