Skip to content

[Feature Request] Derivative Enabled GPs #1679

Open
@yyexela

Description

@yyexela

🚀 Feature Request

Hello, I'm interested in studying GPs with derivatives, similar to the example provided in this notebook provided in this issue. However, the previous notebook uses LogEI on noisy data, which isn't optimal. As such, I want to be able to use both qNEI and KG on noisy data using this derivative-enabled GP in BoTorch.

Motivation

Derivative enabled GPs allow for faster convergence rates. This is well studied in the literature and makes intuitive sense since a lot more information is provided with each objective function evaluation. I want code to be available for myself and other future researchers who want to explore derivative enabled GPs.

Pitch

Ideally, I would want to see a BoTorch model for GPs with derivative information that work without any issues when used with qNEI and KG. I want this implemented for my research and I have a significant amount of time I can contribute to implementing this myself. However, I'm not sure where to even begin since I'm not familiar with the code-base for BoTorch. I don't want to spend lots of time looking in the wrong place for implementing this, so I would appreciate any and all help! My current issue is trying to get qNEI to work. I've added self._num_outputs = 1+d to my derivative enabled GP class, but I'm getting the following error:

torch._C._LinAlgError: linalg.cholesky: (Batch element 0): The factorization could not be completed because the input is not positive-definite (the leading minor of order 6 is not positive-definite).

which I'm trying to resolve. As I've mentioned earlier, however, I'm not sure this is the right place to look. Thanks!

Are you willing to open a pull request? (See CONTRIBUTING)
Yes

Additional context

I also briefly looked into sub-classing BatchedMultiOutputGPyTorchModel for my model, but the documentation says the outputs are independent, which I don't think applies to derivative enabled GPs. However, when I subclassed this I got another error:

RuntimeError: Cannot yet add fantasy observations to multitask GPs, but this is coming soon!

which led me to this issue from 4 years ago mentioning a similar problem to what I'm having.

Thanks again!

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions