module Cov_se_fat:sig
..end
k(x, y) = sf^2 * exp(-1/2 * |(Q_i*P*(x-y))|^2)
where sf^2
is the amplitude, P
a general d*D
dimensionality reduction
matrix (d << D
), and Q_i
is a d*d
diagonal matrix containing all
multiscales for inducing input number i
.
Note that multiscales must not get smaller than 0.5
in this framework,
because the overall length scale is considered to be equal to 1
, which
imposes this mathematical constraint for positive-definiteness. There is no
need for a variable global length scale, because the dimensionality
reduction matrix already generalizes this feature anyway. Hence an
unconstrained multiscale parameter q
is stored as log(q - 0.5)
.
If x
and y
are the same inducing input, then and only then extra noise
(a different noise level for each inducing input) will be added for
heteroskedasticity.
Dimensionality reduction, heteroskedasticity, and multiscales are optional
features and can be easily turned off by setting the parameters to None
.
module Params:sig
..end
module Eval:Eval
with type Kernel.params = Params.t
with type Inducing.t = mat
with type Input.t = vec
with type Inputs.t = mat
module Proj_hyper:sig
..end
module Dim_hyper:sig
..end
module Inducing_hyper:sig
..end
module Hyper_repr:sig
..end
module Deriv:Deriv
with module Eval = Eval
with type Hyper.t = Hyper_repr.t