Need to understand Variational Gaussian Process in gpflow

29 views Asked by At

When I look at source of Base Likelihood, I saw this:

def variational_expectations(
        self, X: TensorType, Fmu: TensorType, Fvar: TensorType, Y: TensorType
    ) -> tf.Tensor:
        r"""
        Compute the expected log density of the data, given a Gaussian
        distribution for the function values,

        i.e. if
            q(f) = N(Fmu, Fvar)

        and this object represents

            p(y|f)

        then this method computes

           ∫ log(p(y=Y|f)) q(f) df.

        This only works if the broadcasting dimension of the statistics of q(f) (mean and variance)
        are broadcastable with that of the data Y.

        :param X: input tensor
        :param Fmu: mean function evaluation tensor
        :param Fvar: variance of function evaluation tensor
        :param Y: observation tensor
        :returns: expected log density of the data given q(F)
        """
        return self._variational_expectations(X, Fmu, Fvar, Y)

AFAIK, q(f)=N(f|μ,Σ) and Σ is covariance matrix, but gpflow define q(f) = N(Fmu, Fvar) when Fvar's shape is (N,1). What's that mean? Can you explain this to me? Thanks a lot!

0

There are 0 answers