gpflow.kullback_leiblers#
Functions#
gpflow.kullback_leiblers.gauss_kl#
- gpflow.kullback_leiblers.gauss_kl(q_mu, q_sqrt, K=None, *, K_cholesky=None)[source]#
Compute the KL divergence KL[q || p] between:
q(x) = N(q_mu, q_sqrt^2)
and:
p(x) = N(0, K) if K is not None p(x) = N(0, I) if K is None
We assume L multiple independent distributions, given by the columns of q_mu and the first or last dimension of q_sqrt. Returns the sum of the divergences.
q_mu is a matrix ([M, L]), each column contains a mean.
q_sqrt can be a 3D tensor ([L, M, M]), each matrix within is a lower triangular square-root matrix of the covariance of q.
q_sqrt can be a matrix ([M, L]), each column represents the diagonal of a square-root matrix of the covariance of q.
K is the covariance of p (positive-definite matrix). The K matrix can be passed either directly as K, or as its Cholesky factor, K_cholesky. In either case, it can be a single matrix [M, M], in which case the sum of the L KL divergences is computed by broadcasting, or L different covariances [L, M, M].
Note: if no K matrix is given (both K and K_cholesky are None), gauss_kl computes the KL divergence from p(x) = N(0, I) instead.
- Parameters:
q_mu (
Union
[ndarray
[Any
,Any
],Tensor
,Variable
,Parameter
]) –q_mu has shape [M, L].
q_sqrt (
Union
[ndarray
[Any
,Any
],Tensor
,Variable
,Parameter
]) –q_sqrt has shape [M_L_or_L_M_M…].
K (
Union
[ndarray
[Any
,Any
],Tensor
,Variable
,Parameter
,None
]) –K has shape [broadcast L, M, M].
K_cholesky (
Union
[ndarray
[Any
,Any
],Tensor
,Variable
,Parameter
,None
]) –K_cholesky has shape [broadcast L, M, M].
- Return type:
Tensor
- Returns:
return has shape [].
gpflow.kullback_leiblers.prior_kl#
This function uses multiple dispatch, which will depend on the type of argument passed in:
gpflow.kullback_leiblers.prior_kl( InducingVariables, Kernel, object, object )
# dispatch to -> gpflow.kullback_leiblers._(...)
- gpflow.kullback_leiblers._(inducing_variable, kernel, q_mu, q_sqrt, whiten=False)[source]#
- Parameters:
inducing_variable (
InducingVariables
) –kernel (
Kernel
) –q_mu (
Union
[ndarray
[Any
,Any
],Tensor
,Variable
,Parameter
]) –q_sqrt (
Union
[ndarray
[Any
,Any
],Tensor
,Variable
,Parameter
]) –whiten (
bool
) –
- Return type:
Tensor