jMEF.MultivariateGaussian Class Reference

List of all members.

Public Member Functions

double F (PVectorMatrix T)
 Computes the log normalizer $ F( \mathbf{\Theta} ) $.
PVectorMatrix gradF (PVectorMatrix T)
 Computes $ \nabla F ( \mathbf{\Theta} )$.
double G (PVectorMatrix H)
 Computes $ G(\mathbf{H})$.
PVectorMatrix gradG (PVectorMatrix H)
 Computes $ \nabla G (\mathbf{H})$.
PVectorMatrix t (PVector x)
 Computes the sufficient statistic $ t(x)$.
double k (PVector x)
 Computes the carrier measure $ k(x) $.
PVectorMatrix Lambda2Theta (PVectorMatrix L)
 Converts source parameters to natural parameters.
PVectorMatrix Theta2Lambda (PVectorMatrix T)
 Converts natural parameters to source parameters.
PVectorMatrix Lambda2Eta (PVectorMatrix L)
 Converts source parameters to expectation parameters.
PVectorMatrix Eta2Lambda (PVectorMatrix H)
 Converts expectation parameters to source parameters.
double density (PVector x, PVectorMatrix param)
 Computes the density value $ f(x;\mu,\Sigma) $.
PVector drawRandomPoint (PVectorMatrix L)
 Draws a point from the considered distribution.
double KLD (PVectorMatrix LP, PVectorMatrix LQ)
 Computes the Kullback-Leibler divergence between two multivariate Gaussian distributions.


Detailed Description

Author:
Vincent Garcia

Frank Nielsen

Version:
1.0

License

See file LICENSE.txt

Description

The multivariate Gaussian distribution is an exponential family and, as a consequence, the probability density function is given by

\[ f(x; \mathbf{\Theta}) = \exp \left( \langle t(x), \mathbf{\Theta} \rangle - F(\mathbf{\Theta}) + k(x) \right) \]

where $ \mathbf{\Theta} $ are the natural parameters. This class implements the different functions allowing to express a multivariate Gaussian distribution as a member of an exponential family.

Parameters

The parameters of a given distribution are:

Member Function Documentation

double jMEF.MultivariateGaussian.density ( PVector  x,
PVectorMatrix  param 
)

Computes the density value $ f(x;\mu,\Sigma) $.

Parameters:
x point
param parameters (source, natural, or expectation)
Returns:
$ f(x;\mu,\Sigma) = \frac{1}{ (2\pi)^{d/2} |\Sigma|^{1/2} } \exp \left( - \frac{(x-\mu)^T \Sigma^{-1}(x-\mu)}{2} \right) \mbox{ for } x \in \mathds{R}^d $

PVector jMEF.MultivariateGaussian.drawRandomPoint ( PVectorMatrix  L  ) 

Draws a point from the considered distribution.

Parameters:
L source parameters $ \mathbf{\Lambda} = ( \mu , \Sigma ) $
Returns:
a point.

PVectorMatrix jMEF.MultivariateGaussian.Eta2Lambda ( PVectorMatrix  H  ) 

Converts expectation parameters to source parameters.

Parameters:
H expectation parameters $ \mathbf{H} = ( \eta , H )$
Returns:
source parameters $ \mathbf{\Lambda} = \left( \eta , - (H + \eta \eta^T) \right) $

double jMEF.MultivariateGaussian.F ( PVectorMatrix  T  ) 

Computes the log normalizer $ F( \mathbf{\Theta} ) $.

Parameters:
T natural parameters $ \mathbf{\Theta} = ( \theta , \Theta ) $
Returns:
$ F(\mathbf{\Theta})=\frac{1}{4} \mathrm{tr}(\Theta^{-1}\theta\theta^T) - \frac{1}{2} \log \det\Theta + \frac{d}{2} log \pi $

double jMEF.MultivariateGaussian.G ( PVectorMatrix  H  ) 

Computes $ G(\mathbf{H})$.

Parameters:
H expectation parameters $ \mathbf{H} = ( \eta , H ) $
Returns:
$ G(\mathbf{H}) = - \frac{1}{2} \log \left( 1 + \eta^T H^{-1} \eta \right) - \frac{1}{2} \log \det (-H) - \frac{d}{2} \log (2 \pi e) $

PVectorMatrix jMEF.MultivariateGaussian.gradF ( PVectorMatrix  T  ) 

Computes $ \nabla F ( \mathbf{\Theta} )$.

Parameters:
T natural $ \mathbf{\Theta} = ( \theta , \Theta ) $
Returns:
$ \nabla F( \mathbf{\Theta} ) = \left( \frac{1}{2} \Theta^{-1} \theta , -\frac{1}{2} \Theta^{-1} -\frac{1}{4} (\Theta^{-1} \theta)(\Theta^{-1} \theta)^T \right) $

PVectorMatrix jMEF.MultivariateGaussian.gradG ( PVectorMatrix  H  ) 

Computes $ \nabla G (\mathbf{H})$.

Parameters:
H expectation parameters $ \mathbf{H} = ( \eta , H ) $
Returns:
$ \nabla G(\mathbf{H}) = \left( -( H + \eta \eta^T )^{-1} \eta , -\frac{1}{2} ( H + \eta \eta^T )^{-1} \right) $

double jMEF.MultivariateGaussian.k ( PVector  x  ) 

Computes the carrier measure $ k(x) $.

Parameters:
x a point
Returns:
$ k(x) = 0 $

double jMEF.MultivariateGaussian.KLD ( PVectorMatrix  LP,
PVectorMatrix  LQ 
)

Computes the Kullback-Leibler divergence between two multivariate Gaussian distributions.

Parameters:
LP source parameters $ \mathbf{\Lambda}_P $
LQ source parameters $ \mathbf{\Lambda}_Q $
Returns:
$ D_{\mathrm{KL}}(f_P \| f_Q) = \frac{1}{2} \left( \log \left( \frac{\det \Sigma_Q}{\det \Sigma_P} \right) + \mathrm{tr} \left( \Sigma_Q^{-1} \Sigma_P \right) + ( \mu_Q - \mu_P )^\top \Sigma_Q^{-1} ( \mu_Q - \mu_P ) - d \right) $

PVectorMatrix jMEF.MultivariateGaussian.Lambda2Eta ( PVectorMatrix  L  ) 

Converts source parameters to expectation parameters.

Parameters:
L source parameters $ \mathbf{\Lambda} = ( \mu , \Sigma ) $
Returns:
expectation parameters $ \mathbf{H} = \left( \mu , - (\Sigma + \mu \mu^T) \right) $

PVectorMatrix jMEF.MultivariateGaussian.Lambda2Theta ( PVectorMatrix  L  ) 

Converts source parameters to natural parameters.

Parameters:
L source parameters $ \mathbf{\Lambda} = ( \mu , \Sigma ) $
Returns:
natural parameters $ \mathbf{\Theta} = \left( \Sigma^{-1} \mu , \frac{1}{2} \Sigma^{-1} \right)$

PVectorMatrix jMEF.MultivariateGaussian.t ( PVector  x  ) 

Computes the sufficient statistic $ t(x)$.

Parameters:
x a point
Returns:
$ t(x) = (x , -x x^\top) $

PVectorMatrix jMEF.MultivariateGaussian.Theta2Lambda ( PVectorMatrix  T  ) 

Converts natural parameters to source parameters.

Parameters:
T natural parameters $ \mathbf{\Theta} = ( \theta , \Theta )$
Returns:
source parameters $ \mathbf{\Lambda} = \left( \frac{1}{2} \Theta^{-1} \theta , \frac{1}{2} \Theta^{-1} \right) $


The documentation for this class was generated from the following file:

Generated on Mon Nov 23 15:46:26 2009 for jMEF by  doxygen 1.5.9