> On Jan 7, 2015, at 6:40 PM, Alp Kucukelbir <
akucu...@gmail.com> wrote:
>
> hey guys,
>
> happy 2015!
>
> i'm currently working on exposing the parameters of
> the variational algorithm to the cmdline. this whole
> gm/command structure is really powerful.
>
> that aside, i have two goals that might be worth a
> chat with you guys (at least via email/here):
>
> 1. robustfication/convergence: i forget who wrote
> the optimization stuff,
Marcus wrote the core of the code.
> but i think for variational
> our best bet is the tol_param strategy (norm of
> difference of parameters across interations). i'd
> love to hear thoughts on this, especially since
> the variational objective function *and* its
> gradients are both noisy.
Stochastic variational inference must have this same
problem. What did Matt do?
> part of this will also be initialization. i'm finding
> that our algorithm can be sensitive to bad inits
> especially if a stan model has a lot of transformations.
> thoughts/strategies would be welcome here too.
You can scale down the range of random inits to keep
initial values on the unconstrained scale close to 0.
That is 0 for unconstrained parameters, 1 for positive
constrained (exp inverse transform), 0.5 for parameters
constrained between 0 and 1 (inverse logit), symmetric
simplexes, unit correlation covariance matrices. We've
generally found those to be better behaved.
It also helps if the data are reasonably scaled.
> 2. reporting/output. the idea that many of you
> suggested was to draw from the final configuration
> of the variational gaussians and transform these
> back to the unconstrained domain, then report
> quantiles like in sampling etc.
Aren't the variational Gaussians on the unconstrained scale?
> if this is going to be useful for EP etc. then it might
> be worth coordinating the design (by which i mean
> how it should fit in Stan). if folks can help me
> with that, i'll try my best to write decent code to
> fill in the rest.
We should get on that ASAP because Andrew wants to use the
same technique for MLE uncertainty.
I'd think one natural thing to do would be to stream the
sample out as a CSV file to match what we produce for MCMC.
Then we can use our existing tools. Those read into a chains
object and you could also construct the chains object
directly from the draws. These are all heavy either in terms
of I/O or memory.
Alternatively, if we only need certain summaries, such as
sample variance or covariance on the constrained scale, we
could efficiently accumulate those on the fly.
- Bob