Tilde.jl
Tilde.jl copied to clipboard
Transport to Gaussian conditionals
@mschauer mentioned in Slack that Mitosis.jl likes to work with nonlinear models that have Gaussian conditionals. With the upcoming transport API in MeasureBase.jl, we should be able to automate this in Tilde.
If a model has a line like
x ~ foo
it can be replaced with e.g.
_x_dof = getdof(foo)
_x_raw ~ StdNormal() ^ _x_dof
x = transport_to(foo, StdNormal() ^ _x_dof, _x_raw)
Automating this will make it easier to use Mitosis for inference on Tilde models.
I have to think about this, transport is deterministic, but as some point you need to inject addictive Gaussian noise to have
... = N(mu(...), \Sigma(...)
In the original x ~ foo
, we can transport foo
to StdNormal() ^ n
. So the transport itself is deterministic, but the noise is in what it's transporting.
Hmm, I had thought this would be specifically conditional Gaussians. But each is a power of StdNormal()
, so I guess this is again transporting the whole prior.