🚀 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.
🚀 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
ScaleKerneluses 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.Modulemapping inputs to positive values, analogous tolengthscale_fninGibbsKernel#2744.Describe alternatives you've considered
Should this be a separate class (e.g.,
HeteroscedasticScaleKernel) or an optional extension of the existingScaleKernel?Are you willing to open a pull request?
Yes, I'd be happy to open a PR.