LMC

Covariance function for multioutput Gaussian Processes based on the Linear Model of Coregionalization (LMC).

The linear model of co-regionalization (LMC) distinctly models the covariances between the NN inputs and the MM outputs. Mathematically, the LMC is defined as (Liu et al., 2018; Cheng et al., 2020):

Kˉ=q=1QBˉqKq \bar{\pmb{K}} = \sum_{q=1}^Q \bar{\pmb{B}}_q \otimes \pmb{K}_q(1)

where, qq denotes the latent basis index, Bˉq\bar{\pmb{B}}_q output covariance matrix of size M×MM \times M for the qq-th covariate, Kq\pmb{K}_q is the input covariance matrix of size N×NN \times N for the qq-th covariate, QQ is the total number of basis functions, and \otimes denotes the Kronecker product. Bˉq\bar{\pmb{B}}_q is further defined as the sum of two matrices of weights (Cheng et al., 2020):

Bˉq=AqAq+diag(λq) \bar{\pmb{B}}_q = \pmb{A}_q \pmb{A}_q^\intercal + \textrm{diag}\Big(\pmb{\lambda}_q\Big)(2)

where, Aq\pmb{A}_q and λq\pmb{\lambda}_q are vectors (size M×1M\times 1) of hyper-parameters, both for the qq-th basis. The size QQ is user-defined and it can be greater than or equal to 1. The larger the QQ, the more sophisticated the multi-output Gaussian Process in modeling complex outputs.

If Q=1Q=1, the LMC reduces to the intrinsic co-regionalization model (ICM).

Example Input File Syntax

[Covariance]
  [covar]
    type = SquaredExponentialCovariance
    signal_variance = 2.76658083
    noise_variance = 0.0
    length_factor = '3.67866381 2.63421705'
  []
  [lmc]
    type = LMC
    covariance_functions = covar
    num_outputs = 2
    num_latent_funcs = 1
  []
[]
(contrib/moose/modules/stochastic_tools/test/tests/surrogates/multioutput_gp/mogp_lmc.i)

Input 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.

  • 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.

Required Parameters

  • num_latent_funcs1The number of latent functions for the expansion of the outputs.

    Default:1

    C++ Type:unsigned int

    Unit:(no unit assumed)

    Controllable:No

    Description:The number of latent functions for the expansion of the outputs.

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

References

  1. L. F. Cheng, B. Dumitrascu, G. Darnell, C. Chivers, M. Draugelis, K. Li, and B. E. Engelhardt. Sparse multi-output gaussian processes for online medical time series prediction. BMC medical informatics and decision making, 20(1):1–23, 2020.[BibTeX]
  2. H. Liu, J. Cai, and Y. S. Ong. Remarks on multi-output gaussian process regression. Knowledge-Based Systems, 144:102–112, 2018.[BibTeX]