Tilde.jl icon indicating copy to clipboard operation
Tilde.jl copied to clipboard

Transport to Gaussian conditionals

Open cscherrer opened this issue 1 year ago • 2 comments

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

cscherrer avatar Oct 13 '22 15:10 cscherrer

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

mschauer avatar Oct 13 '22 15:10 mschauer

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.

cscherrer avatar Oct 13 '22 16:10 cscherrer