Venturecxx icon indicating copy to clipboard operation
Venturecxx copied to clipboard

Do we want AAA over multiple functions sampled from the same Gaussian process?

Open axch opened this issue 9 years ago • 1 comments

Consider the following program:

assume k = some gp covariance function
assume gp1 = make_gp(k)
assume gp2 = make_gp(k)
.... use gp1 and gp2

gp1 and gp2 represent independent samples from the function prior given by k (integrating out the uncertainty over the function). In order to compute acceptance ratios for proposals involving changes to k, Venture will need to examine the auxes of both gp1 and gp2 (in fact, all applications of make_gp to k). Are there any sufficient statistics that can be maintained about those uses of k that can save the work? Do we need a notion of nested AAA to maintain them? Do we care?

Considerations:

  • Making an object make_make_gp of type k -> () -> points -> outputs and giving it nested AAA seems complicated (but maybe it's easy and I'm just not thinking clearly about incorporate methods?).
  • I don't actually know whether any such sufficient statistics exist, so this is probably moot.
  • And anyway, traversing each GP sample is unlikely to be the dominant problem, because the data about where each was applied will swamp the performance cost anyway (I think).
  • And anyway, we certainly don't need any such feature to declare that we "have" Gaussian process support.

axch avatar Feb 08 '16 13:02 axch

Another place where this sort of thing might come up is hierarchical Dirichlet processes, although I think the practice of implementing them using CRP + memoization does the right thing by forwarding the relevant applications to the base CRP.

lenaqr avatar Feb 08 '16 17:02 lenaqr