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

Implement Hadamard Gaussian noise #2481

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

TobyBoyne
Copy link

Addresses #877, #2416. Implements noise that is homoskedastic in inputs, but task-dependent.

Existing multi-task noises (https://docs.gpytorch.ai/en/latest/likelihoods.html#multi-dimensional-likelihoods) only work where all tasks are observed for each input. In the 'Hadamard' setting, where each input corresponds to exactly one task, there is no existing implementation that supports a different noise for each task.

See the updated Hadamard Multitask GP Regression for usage.

Unit tests, documentation, type hinting will all also be provided soon!

@TobyBoyne
Copy link
Author

Two areas that likely need improving:

  • The implementation of _shaped_noise_covar probably needs some work. I'm not sure if there is some linear_operator magic to make this neater?
  • The syntax can be a little questionable. For example, I don't like the fact that the task indexes need to be in a list in mll(output, full_train_y, [full_train_i]). It is also not obvious that the implementation requires the task indexes to be passed as the last argument to the model, since they are accessed by params[0][-1]. At least some type checking is required here?

Also, I should credit @jpfolch for help with this implementation!

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.

1 participant