Kernel methods are a well-established tool to analyze the relationship between input data and the corresponding output of a function. Kernels encapsulate the properties of functions in a computationally efficient way and allow algorithms to easily swap functions of varying complexity.
 In typical machine learning algorithms, these functions produce a scalar output. Recent development of kernel methods for functions with vector-valued output is due, at least in part, to interest in simultaneously solving related problems. Kernels which capture the relationship between the problems allow them to borrow strength from each other. Algorithms of this type include multi-task learning (also called multi-output learning or vector-valued learning), transfer learning, and co-kriging. Multi-label classification can be interpreted as mapping inputs to (binary) coding vectors with length equal to the number of classes.
 In Gaussian processes, kernels are called covariance functions. Multiple-output functions correspond to considering multiple processes. See Bayesian interpretation of regularization for the connection between the two perspectives.
 The history of learning vector-valued functions is closely linked to transfer learning- storing knowledge gained while solving one problem and applying it to a different but related problem. The fundamental motivation for transfer learning in the field of machine learning was discussed in a NIPS-95 workshop on “Learning to Learn,” which focused on the need for lifelong machine learning methods that retain and reuse previously learned knowledge. Research on transfer learning has attracted much attention since 1995 in different names: learning to learn, lifelong learning, knowledge transfer, inductive transfer, multitask learning, knowledge consolidation, context-sensitive learning, knowledge-based inductive bias, metalearning, and incremental/cumulative learning. Interest in learning vector-valued functions was particularly sparked by multitask learning, a framework which tries to learn multiple, possibly different tasks simultaneously.
 Much of the initial research in multitask learning in the machine learning community was algorithmic in nature, and applied to methods such as neural networks, decision trees and k-nearest neighbors in the 1990s. The use of probabilistic models and Gaussian processes was pioneered and largely developed in the context of geostatistics, where prediction over vector-valued output data is known as cokriging. Geostatistical approaches to multivariate modeling are mostly formulated around the linear model of coregionalization (LMC), a generative approach for developing valid covariance functions that has been used for multivariate regression and in statistics for computer emulation of expensive multivariate computer codes. The regularization and kernel theory literature for vector-valued functions followed in the 2000s. While the Bayesian and regularization perspectives were developed independently, they are in fact closely related.
 In this context, the supervised learning problem is to learn the function 
  
    
      
        f
      
    
    {\displaystyle f}
  
 which best predicts vector-valued outputs 
  
    
      
        
          
            y
            
              i
            
          
        
      
    
    {\displaystyle \mathbf {y_{i}} }
  
 given inputs (data) 
  
    
      
        
          
            x
            
              i
            
          
        
      
    
    {\displaystyle \mathbf {x_{i}} }
  
.
 In general, each component of (
  
    
      
        
          
            y
            
              i
            
          
        
      
    
    {\displaystyle \mathbf {y_{i}} }
  
), could have different input data (
  
    
      
        
          
            x
            
              d
              ,
              i
            
          
        
      
    
    {\displaystyle \mathbf {x_{d,i}} }
  
) with different cardinality (
  
    
      
        p
      
    
    {\displaystyle p}
  
) and even different input spaces (
  
    
      
        
          
            X
          
        
      
    
    {\displaystyle {\mathcal {X}}}
  
).
Geostatistics literature calls this case heterotopic, and uses isotopic to indicate that the each component of the output vector has the same set of inputs.
 Here, for simplicity in the notation, we assume the number and sample space of the data for each output are the same.
 From the regularization perspective, the problem is to learn 
  
    
      
        
          f
          
            ∗
          
        
      
    
    {\displaystyle f_{*}}
  
 belonging to a reproducing kernel Hilbert space of vector-valued functions (
  
    
      
        
          
            H
          
        
      
    
    {\displaystyle {\mathcal {H}}}
  
). This is similar to the scalar case of Tikhonov regularization, with some extra care in the notation.
 with 
  
    
      
        
          
            
              
                c
              
              ¯
            
          
        
        =
        (
        
          K
        
        (
        
          X
        
        ,
        
          X
        
        )
        +
        λ
        N
        
          (
        
        I
        )
        
          )
          
            −
            1
          
        
        
          
            
              
                y
              
              ¯
            
          
        
      
    
    {\displaystyle {\bar {\mathbf {c} }}=(\mathbf {K} (\mathbf {X} ,\mathbf {X} )+\lambda N\mathbf {(} I))^{-1}{\bar {\mathbf {y} }}}
  
,
where 
  
    
      
        
          
            
              
                c
              
              ¯
            
          
        
        
           and 
        
        
          
            
              
                y
              
              ¯
            
          
        
      
    
    {\displaystyle {\bar {\mathbf {c} }}{\text{ and }}{\bar {\mathbf {y} }}}
  
 are the coefficients and output vectors concatenated to form 
  
    
      
        N
        D
      
    
    {\displaystyle ND}
  
 vectors and 
  
    
      
        
          K
        
        (
        
          X
        
        ,
        
          X
        
        )
        
           is an 
        
        N
        D
        ×
        N
        D
      
    
    {\displaystyle \mathbf {K} (\mathbf {X} ,\mathbf {X} ){\text{ is an }}ND\times ND}
  
 matrix of 
  
    
      
        N
        ×
        N
      
    
    {\displaystyle N\times N}
  
 blocks: 
  
    
      
        (
        
          K
        
        (
        
          
            x
            
              i
            
          
        
        ,
        
          
            x
            
              j
            
          
        
        )
        
          )
          
            d
            ,
            
              d
              ′
            
          
        
      
    
    {\displaystyle (\mathbf {K} (\mathbf {x_{i}} ,\mathbf {x_{j}} ))_{d,d'}}
  
 
 
  
    
      
        
          f
          
            ∗
          
        
        (
        
          x
        
        )
        =
        
          ∑
          
            i
            =
            1
          
          
            N
          
        
        k
        (
        
          
            x
            
              i
            
          
        
        ,
        
          x
        
        )
        
          c
          
            i
          
        
        =
        
          
            k
          
          
            
              x
            
          
          
            ⊺
          
        
        
          c
        
      
    
    {\displaystyle f_{*}(\mathbf {x} )=\sum \limits _{i=1}^{N}k(\mathbf {x_{i}} ,\mathbf {x} )c_{i}=\mathbf {k} _{\mathbf {x} }^{\intercal }\mathbf {c} }
  

 Solve for 
  
    
      
        
          c
        
      
    
    {\displaystyle \mathbf {c} }
  
 by taking the derivative of the learning problem, setting it equal to zero, and substituting in the above expression for 
  
    
      
        
          f
          
            ∗
          
        
      
    
    {\displaystyle f_{*}}
  
:
 where 
  
    
      
        
          
            K
          
          
            i
            j
          
        
        =
        k
        (
        
          
            x
            
              i
            
          
        
        ,
        
          
            x
            
              j
            
          
        
        )
        =
        
          i
          
            th
          
        
        
           element of 
        
        
          
            k
          
          
            
              
                x
                
                  j
                
              
            
          
        
      
    
    {\displaystyle \mathbf {K} _{ij}=k(\mathbf {x_{i}} ,\mathbf {x_{j}} )=i^{\text{th}}{\text{ element of }}\mathbf {k} _{\mathbf {x_{j}} }}
  

 
  
    
      
        
          
          
            †
          
        
      
    
    {\displaystyle ^{\dagger }}
  
It is possible, though non-trivial, to show that a representer theorem also holds for Tikhonov regularization in the vector-valued setting.
 Note, the matrix-valued kernel 
  
    
      
        
          K
        
      
    
    {\displaystyle \mathbf {K} }
  
 can also be defined by a scalar kernel 
  
    
      
        R
      
    
    {\displaystyle R}
  
 on the space 
  
    
      
        
          
            X
          
        
        ×
        {
        1
        ,
        …
        ,
        D
        }
      
    
    {\displaystyle {\mathcal {X}}\times \{1,\ldots ,D\}}
  
. An isometry exists between the Hilbert spaces associated with these two kernels:
 The estimator of the vector-valued regularization framework can also be derived from a Bayesian viewpoint using Gaussian process methods in the case of a finite dimensional Reproducing kernel Hilbert space. The derivation is similar to the scalar-valued case Bayesian interpretation of regularization. The vector-valued function 
  
    
      
        
          
            f
          
        
      
    
    {\displaystyle {\textbf {f}}}
  
, consisting of 
  
    
      
        D
      
    
    {\displaystyle D}
  
 outputs 
  
    
      
        
          
            {
            
              f
              
                d
              
            
            }
          
          
            d
            =
            1
          
          
            D
          
        
      
    
    {\displaystyle \left\{f_{d}\right\}_{d=1}^{D}}
  
,  is assumed to follow a Gaussian process:
 where 
  
    
      
        
          
            m
          
        
        :
        
          
            X
          
        
        →
        
          
            
              R
            
          
          
            D
          
        
      
    
    {\displaystyle {\textbf {m}}:{\mathcal {X}}\to {\textbf {R}}^{D}}
  
 is now a vector of the mean functions 
  
    
      
        
          
            {
            
              
                m
                
                  d
                
              
              (
              
                
                  x
                
              
              )
            
            }
          
          
            d
            =
            1
          
          
            D
          
        
      
    
    {\displaystyle \left\{m_{d}({\textbf {x}})\right\}_{d=1}^{D}}
  
 for the outputs and 
  
    
      
        
          
            K
          
        
      
    
    {\displaystyle {\textbf {K}}}
  
 is a positive definite matrix-valued function with entry 
  
    
      
        (
        
          
            K
          
        
        (
        
          
            x
          
        
        ,
        
          
            
              x
            
          
          ′
        
        )
        
          )
          
            d
            ,
            
              d
              ′
            
          
        
      
    
    {\displaystyle ({\textbf {K}}({\textbf {x}},{\textbf {x}}'))_{d,d'}}
  
 corresponding to the covariance between the outputs 
  
    
      
        
          f
          
            d
          
        
        (
        
          
            x
          
        
        )
      
    
    {\displaystyle f_{d}({\textbf {x}})}
  
 and 
  
    
      
        
          f
          
            
              d
              ′
            
          
        
        (
        
          
            
              x
            
          
          ′
        
        )
      
    
    {\displaystyle f_{d'}({\textbf {x}}')}
  
.
 For a set of inputs 
  
    
      
        
          
            X
          
        
      
    
    {\displaystyle {\textbf {X}}}
  
, the prior distribution over the vector 
  
    
      
        
          
            f
          
        
        (
        
          
            X
          
        
        )
      
    
    {\displaystyle {\textbf {f}}({\textbf {X}})}
  
 is given by 
  
    
      
        
          
            N
          
        
        (
        
          
            m
          
        
        (
        
          
            X
          
        
        )
        ,
        
          
            K
          
        
        (
        
          
            X
          
        
        ,
        
          
            X
          
        
        )
        )
      
    
    {\displaystyle {\mathcal {N}}({\textbf {m}}({\textbf {X}}),{\textbf {K}}({\textbf {X}},{\textbf {X}}))}
  
, where 
  
    
      
        
          
            m
          
        
        (
        
          
            X
          
        
        )
      
    
    {\displaystyle {\textbf {m}}({\textbf {X}})}
  
 is a vector that concatenates the mean vectors associated to the outputs and 
  
    
      
        
          
            K
          
        
        (
        
          
            X
          
        
        ,
        
          
            X
          
        
        )
      
    
    {\displaystyle {\textbf {K}}({\textbf {X}},{\textbf {X}})}
  
 is a block-partitioned matrix. The distribution of the outputs is taken to be Gaussian:
 where 
  
    
      
        Σ
        ∈
        
          
            
              
                R
              
            
          
          
            D
            ×
            D
          
        
      
    
    {\displaystyle \Sigma \in {\mathcal {\textbf {R}}}^{D\times D}}
  
 is a diagonal matrix with elements 
  
    
      
        
          
            {
            
              σ
              
                d
              
              
                2
              
            
            }
          
          
            d
            =
            1
          
          
            D
          
        
      
    
    {\displaystyle \left\{\sigma _{d}^{2}\right\}_{d=1}^{D}}
  
 specifying the noise for each output. Using this form for the likelihood, the predictive distribution for a new vector 
  
    
      
        
          
            
              x
            
          
          
            ∗
          
        
      
    
    {\displaystyle {\textbf {x}}_{*}}
  
 is:
 where 
  
    
      
        
          
            S
          
        
      
    
    {\displaystyle {\textbf {S}}}
  
 is the training data, and 
  
    
      
        ϕ
      
    
    {\displaystyle \phi }
  
 is a set of hyperparameters for 
  
    
      
        
          
            K
          
        
        (
        
          
            x
          
        
        ,
        
          
            
              x
            
          
          ′
        
        )
      
    
    {\displaystyle {\textbf {K}}({\textbf {x}},{\textbf {x}}')}
  
 and 
  
    
      
        Σ
      
    
    {\displaystyle \Sigma }
  
.
 Equations for 
  
    
      
        
          
            
              f
            
          
          
            ∗
          
        
      
    
    {\displaystyle {\textbf {f}}_{*}}
  
 and 
  
    
      
        
          
            
              K
            
          
          
            ∗
          
        
      
    
    {\displaystyle {\textbf {K}}_{*}}
  
 can then be obtained:
 where 
  
    
      
        
          Σ
        
        =
        Σ
        ⊗
        
          
            
              I
            
          
          
            N
          
        
        ,
        
          
            
              K
            
          
          
            
              
                
                  x
                
              
              
                ∗
              
            
          
        
        ∈
        
          
            
              
                R
              
            
          
          
            D
            ×
            N
            D
          
        
      
    
    {\displaystyle {\boldsymbol {\Sigma }}=\Sigma \otimes {\textbf {I}}_{N},{\textbf {K}}_{{\textbf {x}}_{*}}\in {\mathcal {\textbf {R}}}^{D\times ND}}
  
 has entries 
  
    
      
        (
        
          
            K
          
        
        (
        
          
            
              x
            
          
          
            ∗
          
        
        ,
        
          
            
              x
            
          
          
            j
          
        
        )
        
          )
          
            d
            ,
            
              d
              ′
            
          
        
      
    
    {\displaystyle ({\textbf {K}}({\textbf {x}}_{*},{\textbf {x}}_{j}))_{d,d'}}
  
 for 
  
    
      
        j
        =
        1
        ,
        ⋯
        ,
        N
      
    
    {\displaystyle j=1,\cdots ,N}
  
 and 
  
    
      
        d
        ,
        
          d
          ′
        
        =
        1
        ,
        ⋯
        ,
        D
      
    
    {\displaystyle d,d'=1,\cdots ,D}
  
. Note that the predictor 
  
    
      
        
          
            
              f
            
          
          
            ∗
          
        
      
    
    {\displaystyle {\textbf {f}}^{*}}
  
 is identical to the predictor derived in the regularization framework. For non-Gaussian likelihoods different methods such as Laplace approximation and variational methods are needed to approximate the estimators.
 A simple, but broadly applicable, class of multi-output kernels can be separated into the product of a kernel on the input-space and a kernel representing the correlations among the outputs:
 In matrix form: 
  
    
      
        
          K
        
        (
        
          x
        
        ,
        
          
            x
            ′
          
        
        )
        =
        k
        (
        
          x
        
        ,
        
          
            x
            ′
          
        
        )
        
          B
        
      
    
    {\displaystyle \mathbf {K} (\mathbf {x} ,\mathbf {x'} )=k(\mathbf {x} ,\mathbf {x'} )\mathbf {B} }
  
   
where 
  
    
      
        
          B
        
      
    
    {\displaystyle \mathbf {B} }
  
 is a 
  
    
      
        D
        ×
        D
      
    
    {\displaystyle D\times D}
  
 symmetric and positive semi-definite matrix. Note, setting 
  
    
      
        
          B
        
      
    
    {\displaystyle \mathbf {B} }
  
 to the identity matrix treats the outputs as unrelated and is equivalent to solving the scalar-output problems separately.
 For a slightly more general form, adding several of these kernels yields sum of separable kernels (SoS kernels).
 One way of obtaining 
  
    
      
        
          k
          
            T
          
        
      
    
    {\displaystyle k_{T}}
  
 is to specify a regularizer which limits the complexity of 
  
    
      
        f
      
    
    {\displaystyle f}
  
 in a desirable way, and then derive the corresponding kernel. For certain regularizers, this kernel will turn out to be separable.
 Mixed-effect regularizer
 where:
 where 
  
    
      
        
          1
        
        
           is a 
        
        D
        ×
        D
      
    
    {\displaystyle \mathbf {1} {\text{ is a }}D\times D}
  
 matrix with all entries equal to 1.
 This regularizer is a combination of limiting the complexity of each component of the estimator (
  
    
      
        
          f
          
            l
          
        
      
    
    {\displaystyle f_{l}}
  
) and forcing each component of the estimator to be close to the mean of all the components. Setting 
  
    
      
        ω
        =
        0
      
    
    {\displaystyle \omega =0}
  
 treats all the components as independent and is the same as solving the scalar problems separately. Setting 
  
    
      
        ω
        =
        1
      
    
    {\displaystyle \omega =1}
  
 assumes all the components are explained by the same function.
 Cluster-based regularizer
 where:
 where 
  
    
      
        
          
            G
          
          
            l
            ,
            q
          
        
        =
        
          ε
          
            1
          
        
        
          δ
          
            l
            q
          
        
        +
        (
        
          ε
          
            2
          
        
        −
        
          ε
          
            1
          
        
        )
        
          
            M
          
          
            l
            ,
            q
          
        
      
    
    {\displaystyle \mathbf {G} _{l,q}=\varepsilon _{1}\delta _{lq}+(\varepsilon _{2}-\varepsilon _{1})\mathbf {M} _{l,q}}
  

 This regularizer divides the components into 
  
    
      
        r
      
    
    {\displaystyle r}
  
 clusters and forces the components in each cluster to be similar.
 Graph regularizer
 where 
  
    
      
        
          M
        
        
           is a 
        
        D
        ×
        D
      
    
    {\displaystyle \mathbf {M} {\text{ is a }}D\times D}
  
 matrix of weights encoding the similarities between the components
 where 
  
    
      
        
          L
        
        =
        
          D
        
        −
        
          M
        
      
    
    {\displaystyle \mathbf {L} =\mathbf {D} -\mathbf {M} }
  
,   
  
    
      
        
          
            D
          
          
            l
            ,
            q
          
        
        =
        
          δ
          
            l
            ,
            q
          
        
        (
        
          ∑
          
            h
            =
            1
          
          
            D
          
        
        
          
            M
          
          
            l
            ,
            h
          
        
        +
        
          
            M
          
          
            l
            ,
            q
          
        
        )
      
    
    {\displaystyle \mathbf {D} _{l,q}=\delta _{l,q}(\sum \limits _{h=1}^{D}\mathbf {M} _{l,h}+\mathbf {M} _{l,q})}
  

 Note, 
  
    
      
        
          L
        
      
    
    {\displaystyle \mathbf {L} }
  
 is the graph laplacian. See also: graph kernel.
 Several approaches to learning 
  
    
      
        
          B
        
      
    
    {\displaystyle \mathbf {B} }
  
 from data have been proposed. These include: performing a preliminary inference step to estimate 
  
    
      
        
          B
        
      
    
    {\displaystyle \mathbf {B} }
  
 from the training data, a proposal to learn 
  
    
      
        
          B
        
      
    
    {\displaystyle \mathbf {B} }
  
 and 
  
    
      
        
          f
        
      
    
    {\displaystyle \mathbf {f} }
  
 together based on the cluster regularizer, and sparsity-based approaches which assume only a few of the features are needed.

 In LMC, outputs are expressed as linear combinations of independent random functions such that the resulting covariance function (over all inputs and outputs) is a valid positive semidefinite function. Assuming 
  
    
      
        D
      
    
    {\displaystyle D}
  
 outputs 
  
    
      
        
          
            {
            
              
                f
                
                  d
                
              
              (
              
                
                  x
                
              
              )
            
            }
          
          
            d
            =
            1
          
          
            D
          
        
      
    
    {\displaystyle \left\{f_{d}({\textbf {x}})\right\}_{d=1}^{D}}
  
 with 
  
    
      
        
          
            x
          
        
        ∈
        
          
            
              
                R
              
            
          
          
            p
          
        
      
    
    {\displaystyle {\textbf {x}}\in {\mathcal {\textbf {R}}}^{p}}
  
, each 
  
    
      
        
          f
          
            d
          
        
      
    
    {\displaystyle f_{d}}
  
 is expressed as:
 where 
  
    
      
        
          a
          
            d
            ,
            q
          
        
      
    
    {\displaystyle a_{d,q}}
  
 are scalar coefficients and the independent functions 
  
    
      
        
          u
          
            q
          
        
        (
        
          
            x
          
        
        )
      
    
    {\displaystyle u_{q}({\textbf {x}})}
  
 have zero mean and covariance cov
  
    
      
        [
        
          u
          
            q
          
        
        (
        
          
            x
          
        
        )
        ,
        
          u
          
            
              q
              ′
            
          
        
        (
        
          
            
              x
            
          
          ′
        
        )
        ]
        =
        
          k
          
            q
          
        
        (
        
          
            x
          
        
        ,
        
          
            
              x
            
          
          ′
        
        )
      
    
    {\displaystyle [u_{q}({\textbf {x}}),u_{q'}({\textbf {x}}')]=k_{q}({\textbf {x}},{\textbf {x}}')}
  
 if 
  
    
      
        q
        =
        
          q
          ′
        
      
    
    {\displaystyle q=q'}
  
 and 0 otherwise. The cross covariance between any two functions 
  
    
      
        
          f
          
            d
          
        
        (
        
          
            x
          
        
        )
      
    
    {\displaystyle f_{d}({\textbf {x}})}
  
 and 
  
    
      
        
          f
          
            
              d
              ′
            
          
        
        (
        
          
            x
          
        
        )
      
    
    {\displaystyle f_{d'}({\textbf {x}})}
  
 can then be written as:
 where the functions 
  
    
      
        
          u
          
            q
          
          
            i
          
        
        (
        
          
            x
          
        
        )
      
    
    {\displaystyle u_{q}^{i}({\textbf {x}})}
  
, with 
  
    
      
        q
        =
        1
        ,
        ⋯
        ,
        Q
      
    
    {\displaystyle q=1,\cdots ,Q}
  
 and 
  
    
      
        i
        =
        1
        ,
        ⋯
        ,
        
          R
          
            q
          
        
      
    
    {\displaystyle i=1,\cdots ,R_{q}}
  
 have zero mean and covariance cov
  
    
      
        [
        
          u
          
            q
          
          
            i
          
        
        (
        
          
            x
          
        
        )
        ,
        
          u
          
            
              q
              ′
            
          
          
            
              i
              ′
            
          
        
        (
        
          
            x
          
        
        
          )
          ′
        
        ]
        =
        
          k
          
            q
          
        
        (
        
          
            x
          
        
        ,
        
          
            
              x
            
          
          ′
        
        )
      
    
    {\displaystyle [u_{q}^{i}({\textbf {x}}),u_{q'}^{i'}({\textbf {x}})']=k_{q}({\textbf {x}},{\textbf {x}}')}
  
 if 
  
    
      
        i
        =
        
          i
          ′
        
      
    
    {\displaystyle i=i'}
  
 and 
  
    
      
        q
        =
        
          q
          ′
        
      
    
    {\displaystyle q=q'}
  
. But 
  
    
      
        cov
        ⁡
        [
        
          f
          
            d
          
        
        (
        
          
            x
          
        
        )
        ,
        
          f
          
            
              d
              ′
            
          
        
        (
        
          
            
              x
            
          
          ′
        
        )
        ]
      
    
    {\displaystyle \operatorname {cov} [f_{d}({\textbf {x}}),f_{d'}({\textbf {x}}')]}
  
 is given by 
  
    
      
        (
        
          
            K
          
        
        (
        
          
            x
          
        
        ,
        
          
            
              x
            
          
          ′
        
        )
        
          )
          
            d
            ,
            
              d
              ′
            
          
        
      
    
    {\displaystyle ({\textbf {K}}({\textbf {x}},{\textbf {x}}'))_{d,d'}}
  
. Thus the kernel 
  
    
      
        
          
            K
          
        
        (
        
          
            x
          
        
        ,
        
          
            
              x
            
          
          ′
        
        )
      
    
    {\displaystyle {\textbf {K}}({\textbf {x}},{\textbf {x}}')}
  
 can now be expressed as
 where each 
  
    
      
        
          
            
              B
            
          
          
            q
          
        
        ∈
        
          
            
              
                R
              
            
          
          
            D
            ×
            D
          
        
      
    
    {\displaystyle {\textbf {B}}_{q}\in {\mathcal {\textbf {R}}}^{D\times D}}
  
 is known as a coregionalization matrix. Therefore, the kernel derived from LMC is a sum of the products of two covariance functions, one that models the dependence between the outputs, independently of the input vector 
  
    
      
        
          
            x
          
        
      
    
    {\displaystyle {\textbf {x}}}
  
 (the coregionalization matrix 
  
    
      
        
          
            
              B
            
          
          
            q
          
        
      
    
    {\displaystyle {\textbf {B}}_{q}}
  
), and one that models the input dependence, independently of 
  
    
      
        
          
            {
            
              
                f
                
                  d
                
              
              (
              
                
                  x
                
              
              )
            
            }
          
          
            d
            =
            1
          
          
            D
          
        
      
    
    {\displaystyle \left\{f_{d}({\textbf {x}})\right\}_{d=1}^{D}}
  
(the covariance function 
  
    
      
        
          k
          
            q
          
        
        (
        
          
            x
          
        
        ,
        
          
            
              x
            
          
          ′
        
        )
      
    
    {\displaystyle k_{q}({\textbf {x}},{\textbf {x}}')}
  
).
 The ICM is a simplified version of the LMC, with 
  
    
      
        Q
        =
        1
      
    
    {\displaystyle Q=1}
  
. ICM assumes that the elements 
  
    
      
        
          b
          
            d
            ,
            
              d
              ′
            
          
          
            q
          
        
      
    
    {\displaystyle b_{d,d'}^{q}}
  
 of the coregionalization matrix 
  
    
      
        
          
            B
          
          
            q
          
        
      
    
    {\displaystyle \mathbf {B} _{q}}
  
 can be written as 
  
    
      
        
          b
          
            d
            ,
            
              d
              ′
            
          
          
            q
          
        
        =
        
          v
          
            d
            ,
            
              d
              ′
            
          
        
        
          b
          
            q
          
        
      
    
    {\displaystyle b_{d,d'}^{q}=v_{d,d'}b_{q}}
  
, for some suitable coefficients 
  
    
      
        
          v
          
            d
            ,
            
              d
              ′
            
          
        
      
    
    {\displaystyle v_{d,d'}}
  
. With this form for 
  
    
      
        
          b
          
            d
            ,
            
              d
              ′
            
          
          
            q
          
        
      
    
    {\displaystyle b_{d,d'}^{q}}
  
:
 where
 In this case, the coefficients
 and the kernel matrix for multiple outputs becomes 
  
    
      
        
          K
        
        (
        
          x
        
        ,
        
          
            x
          
          ′
        
        )
        =
        k
        (
        
          x
        
        ,
        
          
            x
          
          ′
        
        )
        
          B
        
      
    
    {\displaystyle \mathbf {K} (\mathbf {x} ,\mathbf {x} ')=k(\mathbf {x} ,\mathbf {x} ')\mathbf {B} }
  
. ICM is much more restrictive than the LMC since it assumes that each basic covariance 
  
    
      
        
          k
          
            q
          
        
        (
        
          x
        
        ,
        
          
            x
          
          ′
        
        )
      
    
    {\displaystyle k_{q}(\mathbf {x} ,\mathbf {x} ')}
  
 contributes equally to the construction of the autocovariances and cross covariances for the outputs. However, the computations required for the inference are greatly simplified.
 Another simplified version of the LMC is the semiparametric latent factor model (SLFM), which corresponds to setting 
  
    
      
        
          R
          
            q
          
        
        =
        1
      
    
    {\displaystyle R_{q}=1}
  
 (instead of 
  
    
      
        Q
        =
        1
      
    
    {\displaystyle Q=1}
  
 as in ICM). Thus each latent function 
  
    
      
        
          u
          
            q
          
        
      
    
    {\displaystyle u_{q}}
  
 has its own covariance.
 While simple, the structure of separable kernels can be too limiting for some problems.
 Notable examples of non-separable kernels in the regularization literature include:
 In the Bayesian perspective, LMC produces a separable kernel because the output functions evaluated at a point 
  
    
      
        
          
            x
          
        
      
    
    {\displaystyle {\textbf {x}}}
  
 only depend on the values of the latent functions at 
  
    
      
        
          
            x
          
        
      
    
    {\displaystyle {\textbf {x}}}
  
. A non-trivial way to mix the latent functions is by convolving a base process with a smoothing kernel. If the base process is a Gaussian process, the convolved process is Gaussian as well. We can therefore exploit convolutions to construct covariance functions. This method of producing non-separable kernels is known as process convolution. Process convolutions were introduced for multiple outputs in the machine learning community as "dependent Gaussian processes".
 When implementing an algorithm using any of the kernels above, practical considerations of tuning the parameters and ensuring reasonable computation time must be considered.
 Approached from the regularization perspective, parameter tuning is similar to the scalar-valued case and can generally be accomplished with cross validation. Solving the required linear system is typically expensive in memory and time. If the kernel is separable, a coordinate transform can convert 
  
    
      
        
          K
        
        (
        
          X
        
        ,
        
          X
        
        )
      
    
    {\displaystyle \mathbf {K} (\mathbf {X} ,\mathbf {X} )}
  
 to a block-diagonal matrix, greatly reducing the computational burden by solving D independent subproblems (plus the eigendecomposition of 
  
    
      
        
          B
        
      
    
    {\displaystyle \mathbf {B} }
  
). In particular, for a least squares loss function (Tikhonov regularization), there exists a closed form solution for 
  
    
      
        
          
            
              
                c
              
              ¯
            
          
        
      
    
    {\displaystyle {\bar {\mathbf {c} }}}
  
:
 There are many works related to parameter estimation for Gaussian processes. Some methods such as maximization of the marginal likelihood (also known as evidence approximation, type II maximum likelihood, empirical Bayes), and least squares give point estimates of the parameter vector 
  
    
      
        ϕ
      
    
    {\displaystyle \phi }
  
. There are also works employing a full Bayesian inference by assigning priors to 
  
    
      
        ϕ
      
    
    {\displaystyle \phi }
  
 and computing the posterior distribution through a sampling procedure. For non-Gaussian likelihoods, there is no closed form solution for the posterior distribution or for the marginal likelihood. However, the marginal likelihood can be approximated under a Laplace, variational Bayes or expectation propagation (EP) approximation frameworks for multiple output classification and used to find estimates for the hyperparameters.
 The main computational problem in the Bayesian viewpoint is the same as the one appearing in regularization theory of inverting the matrix
 This step is necessary for computing the marginal likelihood and the predictive distribution. For most proposed approximation methods to reduce computation, the computational efficiency gained is independent of the particular method employed (e.g. LMC, process convolution) used to compute the multi-output covariance matrix. A summary of different methods for reducing computational complexity in multi-output Gaussian processes is presented in.