Skip to content

[Feature Request] Input-dependent ScaleKernel #2745

@anjawa

Description

@anjawa

🚀 Feature Request

An extension to an input-dependent scale of the form:
$$k(x, x') = \theta_\text{scale}(x) \cdot \theta_\text{scale}(x') \cdot k_{\text{base}}(x, x')$$

This pattern appears in e.g., Remes et al. (2017) "Non-Stationary Spectral Kernels" (NeurIPS).

Motivation

Is your feature request related to a problem? Please describe.
The current ScaleKernel uses a global scalar outputscale, which cannot capture heteroscedastic settings. This would further extend GPyTorch's support for non-stationary settings.

Pitch

Describe the solution you'd like
A kernel accepting a scale_fn: nn.Module mapping inputs to positive values, analogous to lengthscale_fn in GibbsKernel #2744.

Describe alternatives you've considered

Should this be a separate class (e.g., HeteroscedasticScaleKernel) or an optional extension of the existing ScaleKernel?

Are you willing to open a pull request?
Yes, I'd be happy to open a PR.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions