Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Quadrature (and Monte Carlo) for computing variational expectations #3

Closed
3 tasks done
rossviljoen opened this issue Jun 23, 2021 · 5 comments
Closed
3 tasks done

Comments

@rossviljoen
Copy link
Collaborator

rossviljoen commented Jun 23, 2021

For many non-Gaussian likelihoods, the expectation in the first term in the ELBO E_q(f) [ \log p(y|f) ] from [1] has no closed form solution, so it needs to approximated somehow - typically by Gauss-Hermite quadrature, but possibly also via Monte Carlo. So, the planned approach for implementing this is:

  • An initial end-to-end working version of quadrature using FastGaussQuadrature.jl with AD.
  • Compile a list of which non-Gaussian likelihoods have closed form solutions (probably by looking through GPFlow etc.)
  • Add support for MC methods.

[1] Hensman, James, Alexander Matthews, and Zoubin Ghahramani. "Scalable variational Gaussian process classification." Artificial Intelligence and Statistics. PMLR, 2015.

@rossviljoen rossviljoen mentioned this issue Jun 23, 2021
Closed
4 tasks
@theogf
Copy link
Member

theogf commented Jun 23, 2021

Compile a list of which non-Gaussian likelihoods have closed form solutions (probably by looking through GPFlow etc.)

I am afraid that only works for the Gaussian likelihood :(

@rossviljoen
Copy link
Collaborator Author

Isn't it possible for some - e.g. for Gamma here?

@st--
Copy link
Member

st-- commented Jun 30, 2021

I am afraid that only works for the Gaussian likelihood :(

Closed-form posterior only for Gaussian likelihood, but closed-form E_q(f)[ \log p(y|f) ] exists for some other p(y|f) as well, as in the example Ross found.

@rossviljoen
Copy link
Collaborator Author

I have a working end-to-end example of classification in https://github.com/rossviljoen/SparseGPs.jl/blob/master/examples/classification.jl

@rossviljoen
Copy link
Collaborator Author

Implemented in #9

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants