Add an OrderedParameter class where samples from the vector are always ordered (ie p = OrderedParameter(3); p[0] < p[1]; p[1] < p[2]).
This is trickier w/ SVI than w/ MCMC because you can't just do the exp/increment transform with independent variances, because the variances could cause some samples from adjacent parameters to be on the "wrong side" of each other.
Add an
OrderedParameter
class where samples from the vector are always ordered (iep = OrderedParameter(3); p[0] < p[1]; p[1] < p[2]
).This is trickier w/ SVI than w/ MCMC because you can't just do the exp/increment transform with independent variances, because the variances could cause some samples from adjacent parameters to be on the "wrong side" of each other.
Maybe do something like this? Where
centered_vars
make centered variables from raw ones using same QR transform as in https://github.com/brendanhasz/probflow/issues/19Downside of that is each parameter's variance is correlated, but also variance depends on distance from mean?