SquaredExponentialCovariance

Squared Exponential covariance function.

Overview

A widely used, general purpose isotropic covariance function is

k(x,x)=σf2exp(r(x,x)22)+σn2δx,x.k(x,x^\prime) = \sigma_f^2 \, exp \left(- \frac{r_\ell(x,x^\prime)^2}{2} \right) + \sigma_n^2 \, \delta_{x,x^\prime}.

r(x,x)r_\ell(x,x^\prime) is a scaled distance based on the length factor \vec{\ell}, defined as

r(x,x)=n(xixii)2.r_\ell(x,x^\prime) = \sqrt{ \sum_n \left( \frac{x_i - x^\prime_i}{\ell_i} \right)^2}.

Hyperparameters

Table 1: Hyperparameters for Squared Exponential Covariance Function

VariableDomainDescription
\vec{\ell}R>0n\mathbb{R}_{>0}^nLength factors corresponding to input parameters*
σf\sigma_fR0\mathbb{R}_{\geq 0}Signal variance*
σn\sigma_nR0\mathbb{R}_{\geq 0}Noise variance*

*See the Gaussian Process Trainer documentation for more in depth explanation of \vec{\ell}, σf\sigma_f, and σn\sigma_n hyperparameters.

Example Input File Syntax

[Covariance]
  [covar]
    type = SquaredExponentialCovariance
    signal_variance = 1 #Use a signal variance of 1 in the kernel
    noise_variance = 1e-6 #A small amount of noise can help with numerical stability
    length_factor = '0.38971 0.38971' #Select a length factor for each parameter (k and q)
  []
[]
(contrib/moose/modules/stochastic_tools/test/tests/surrogates/gaussian_process/GP_squared_exponential.i)

Input Parameters

  • length_factorLength factors to use for Covariance Kernel

    C++ Type:std::vector<double>

    Unit:(no unit assumed)

    Controllable:No

    Description:Length factors to use for Covariance Kernel

  • signal_varianceSignal Variance ($\sigma_f^2$) to use for kernel calculation.

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Signal Variance ($\sigma_f^2$) to use for kernel calculation.

Required Parameters

  • covariance_functionsCovariance functions that this covariance function depends on.

    C++ Type:std::vector<UserObjectName>

    Unit:(no unit assumed)

    Controllable:No

    Description:Covariance functions that this covariance function depends on.

  • noise_variance0Noise Variance ($\sigma_n^2$) to use for kernel calculation.

    Default:0

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Noise Variance ($\sigma_n^2$) to use for kernel calculation.

  • num_outputs1The number of outputs expected for this covariance function.

    Default:1

    C++ Type:unsigned int

    Unit:(no unit assumed)

    Controllable:No

    Description:The number of outputs expected for this covariance function.

Optional Parameters

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Unit:(no unit assumed)

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Set the enabled status of the MooseObject.

Advanced Parameters