tensorflow / tensorflow/probability

Not understand Unconstrained Representation in MCMC

Open
#584 10 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

mcmc question
Dominant language
Jupyter Notebook
Stars
4.4k
Forks
1.1k
PR merge metrics
No merged PRs in 30d

Description

Recently I am learning how to do MCMC with TFP using your Bayesian Gaussian Mixture Model example at https://github.com/tensorflow/probability/blob/master/tensorflow_probability/examples/jupyter_notebooks/Bayesian_Gaussian_Mixture_Model.ipynb.

One thing that has confused me for a long time is the purpose of having

unconstraining_bijectors = [
    tfb.SoftmaxCentered(),
    tfb.Identity(),
    tfb.Chain([
        tfb.TransformDiagonal(tfb.Softplus()),
        tfb.FillTriangular(),
    ])]

According to the descriptions mentioned above, "Hamiltonian Monte Carlo (HMC) requires the target log-probability function be differentiable with respect to its arguments. Furthermore, HMC can exhibit dramatically higher statistical efficiency if the state-space is unconstrained."

What I am not sure is this: does each element in unconstraining_bijectors refer to the bijector used for the corresponding element in initial_state?

i.e.: tfb.SoftmaxCentered() is used to transform the component weights tf.fill([components], value=np.array(1. / components, dtype), name='mix_probs'),

tfb.Identity() is used to transform the means tf.constant(np.array([[-2, -2], [0, 0], [2, 2]], dtype), as there is no need to do transform,

and tfb.Chain([tfb.TransformDiagonal(tfb.Softplus()), tfb.FillTriangular(),] is used to transform the Cholesky decomposition of the precision matrix (inversed covariance matrix) tf.eye(dims, batch_shape=[components], dtype=dtype, name='chol_precision')?

Please help me clarify. Thank you!

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the Bayesian_Gaussian_Mixture_Model.ipynb example linked in the issue and inspect the unconstraining_bijectors and initial_state definitions. The issue has no requested documentation change or acceptance criteria; done would require defining the clarification needed and updating the relevant explanation or example.

Written by the indexing model from the issue text.

Assessment

Tech stack
jupyter-notebook, python
Domain
documentation, machine-learning
Issue type
Documentation
Difficulty
1/5
Estimated time
Under an hour
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.