Skip to content

Conversation

jamesbriant
Copy link
Contributor

Checklist

  • I've formatted the new code by running hatch run dev:format before committing.
  • I've added tests for new code.
  • I've added docstrings for the new code. N/A

Description

Introduced a new NonNegativeReal parameter type. This has two primary applications.

Kernel variance parameter

This has been implemented into kernel variance parameters. This allows kernels to be 'turned off' as required by setting variance=gpx.parameter.Static(0.0). This is potentially useful for kernel searching algorithms.

I have been using this feature as an optional add-on kernel which defaults to 'off'.

Gaussian likelihood obs_stddev

By allowing gpx.likelihoods.Gaussian() to accept obs_stddev=0.0 we can 'turn off' the likelihood. This is important for GP emulators of computer models. The easiest way to see this working well is by removing the observation noise from the regression example on the documentation.

There is perhaps a cleaner solution by defining a new likelihood class, emulator say, with no obs_stddev argument which simply returns the required number of zeros when called.

Why is this needed at all?

One could argue that this is not necessary as using gps.Prior() should be sufficient for building emulators. From a development point of view, it is easier to build tools that rely purely on the AbstractPosterior class with a likelihood of fixed structure baked in rather than also having to account for the Prior class thus rendering a likelihood 'optional'. Hence a quick 'hack' such as my implementation, or potentially an arguably cleaner emulator likelihood is easier to account for.

Issue Number: N/A

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for opening your first PR into GPJax!

If you have not heard from us in a while, please feel free to ping @gpjax/developers or anyone who has commented on the PR. Most of our reviewers are volunteers and sometimes things fall through the cracks.

You can also join us on Slack for real-time discussion.

For details on testing, writing docs, and our review process, please see the developer guide

We strive to be a welcoming and open project. Please follow our Code of Conduct.

@thomaspinder
Copy link
Collaborator

Thanks @jamesbriant - let me begin taking a look

@thomaspinder thomaspinder merged commit 1303080 into JaxGaussianProcesses:main May 20, 2025
11 checks passed
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

Successfully merging this pull request may close these issues.

2 participants