Gaussian process roadmap

I think Jarno Vanhatalo did all these necessary derivatives for GPstuff…

1 Like

Do you have the code somewhere??

I asked Jarno Vanhatalo as he should remember better where to look (and if he doesn’t remember then I’ll look into it).

1 Like

Jarno answered and I did remember partially, that is, GPstuff has all these derivatives except \frac{\partial}{\partial \theta_k} \left (\mathbf{L}(\mathbf{\theta})^T \mathbf{z} \right), although Jarno has something which is close. I know where the code for this is, but I might be easier if I live guide through some functions to point out specific lines.

I would like to see it. I have class until 11:30 EST but can attend the latter half of Stan meeting if you can you it then (Stan meeting starts 11:00EST).

ARD for exp quad and matern32 primitive are pending review, if anyone’s up for it.

Andre

1 Like

Can someone make suggestions as to who can review these PRs? The PRs right now are primitive, and pretty basic.

This is mostly for @syclik, or anyone that’s familiar with autodiff and has an opinion.

I’m starting to get the reverse mode specializations for the matern set of covariance functions in. In the past, here’s a list of what we’ve been testing:

  • accuracy of gradients
  • numerical accuracy
  • testing the varis are on the stack
  • error throws
  • all changes tested

Some of these are more or less obvious. Anything else I should be worried about in testing?

I’ve opened a PR #1177 with one specialization if the code or interface are helpful for discussion.

@anon79882417, sorry for the delay. That sounds like it’s a good enough list.

In broader terms, you want to test:

  1. that it does things correctly (accuracy of gradients, numerical accuracy, autodiff is used properly)
  2. that it does the right thing under error conditions (error throws, although I think you’ve been going overboard with these; at some point, you should trust that the underlying check functions work, so no need to do combinatorial testing)
  3. that someone in the future (including your future self) doesn’t mess up your function accidentally. That means making sure enough of the things that you care about are tested. (and not everything in the world)

So, I think that’s plenty.