MaternHalfIntCovariance

Matern half-integer covariance function.

Overview

A special case of the Matern class of covariance functions, in which the ν\nu hyperparameter takes on a half integer value. Substituting a positive integer pp for ν\nu using ν=p+1/2\nu = p + 1/2 the covariance function is given as

k(x,x)=σf2exp(2p+1r(x,x))p!(2p)!i=0p[(p+i)!i!(2pi)!(22p+1r(x,x))pi]+σn2δx,x.k(x,x^\prime) = \sigma_f^2 \, exp \left(- \sqrt{2p+1} r_\ell(x,x^\prime) \right) \frac{p!}{(2p)!} \sum_{i=0}^p \left[ \frac{(p+i)!}{i! (2p-i)!} \left( 2 \sqrt{2p+1} r_\ell(x,x^\prime) \right)^{p-i} \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 Matern 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*
ppN\mathbb{N}

*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 = MaternHalfIntCovariance
    p = 2 #Define the exponential factor
    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.551133 0.551133' #Select a length factor for each parameter (k and q)
  []
[]
(contrib/moose/modules/stochastic_tools/test/tests/surrogates/gaussian_process/GP_Matern_half_int.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

  • pInteger p to use for Matern Half Integer Covariance Kernel

    C++ Type:unsigned int

    Unit:(no unit assumed)

    Controllable:No

    Description:Integer p to use for Matern Half Integer 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