cscherrer / Tilde.jl

WIP successor to Soss.jl
MIT License
74 stars 1 forks source link

Transport to Gaussian conditionals #42

Open cscherrer opened 2 years ago

cscherrer commented 2 years ago

@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.

mschauer commented 2 years ago

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(...)

cscherrer commented 2 years ago

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.