Class GaussianProductVmpOp
Provides outgoing messages for Product(Double, Double), given random arguments to the function.
Inherited Members
Namespace: Microsoft.ML.Probabilistic.Factors
Assembly: Microsoft.ML.Probabilistic.dll
Syntax
[FactorMethod(typeof(Factor), "Product", new Type[]{typeof(double), typeof(double)})]
[Quality(QualityBand.Mature)]
public static class GaussianProductVmpOp
Methods
AAverageLogarithm(Gaussian, Gaussian)
VMP message to a
.
Declaration
public static Gaussian AAverageLogarithm(Gaussian Product, Gaussian B)
Parameters
Type | Name | Description |
---|---|---|
Gaussian | Product | Incoming message from |
Gaussian | B | Incoming message from |
Returns
Type | Description |
---|---|
Gaussian | The outgoing VMP message to the |
Remarks
The outgoing message is the exponential of the average log-factor value, where the average is over all arguments except a
. Because the factor is deterministic, product
is integrated out before taking the logarithm. The formula is exp(sum_(b) p(b) log(sum_product p(product) factor(product,a,b)))
.
Exceptions
Type | Condition |
---|---|
ImproperMessageException |
|
ImproperMessageException |
|
AAverageLogarithm(Gaussian, Double)
VMP message to a
.
Declaration
public static Gaussian AAverageLogarithm(Gaussian Product, double B)
Parameters
Type | Name | Description |
---|---|---|
Gaussian | Product | Incoming message from |
Double | B | Constant value for |
Returns
Type | Description |
---|---|
Gaussian | The outgoing VMP message to the |
Remarks
The outgoing message is the factor viewed as a function of a
with product
integrated out. The formula is sum_product p(product) factor(product,a,b)
.
Exceptions
Type | Condition |
---|---|
ImproperMessageException |
|
AAverageLogarithm(Double, Gaussian)
VMP message to a
.
Declaration
[NotSupported("Variational Message Passing does not support a Product factor with fixed output and two random inputs.")]
public static Gaussian AAverageLogarithm(double Product, Gaussian B)
Parameters
Type | Name | Description |
---|---|---|
Double | Product | Constant value for |
Gaussian | B | Incoming message from |
Returns
Type | Description |
---|---|
Gaussian | The outgoing VMP message to the |
Remarks
The outgoing message is the exponential of the average log-factor value, where the average is over all arguments except a
. The formula is exp(sum_(b) p(b) log(factor(product,a,b)))
.
Exceptions
Type | Condition |
---|---|
ImproperMessageException |
|
AAverageLogarithm(Double, Double)
VMP message to a
.
Declaration
public static Gaussian AAverageLogarithm(double Product, double B)
Parameters
Type | Name | Description |
---|---|---|
Double | Product | Constant value for |
Double | B | Constant value for |
Returns
Type | Description |
---|---|
Gaussian | The outgoing VMP message to the |
Remarks
The outgoing message is the factor viewed as a function of a
conditioned on the given values.
AverageLogFactor(Gaussian)
Evidence message for VMP.
Declaration
public static double AverageLogFactor(Gaussian product)
Parameters
Type | Name | Description |
---|---|---|
Gaussian | product | Incoming message from |
Returns
Type | Description |
---|---|
Double | Zero. |
Remarks
In Variational Message Passing, the evidence contribution of a deterministic factor is zero. Adding up these values across all factors and variables gives the log-evidence estimate for VMP.
BAverageLogarithm(Gaussian, Gaussian)
VMP message to b
.
Declaration
public static Gaussian BAverageLogarithm(Gaussian Product, Gaussian A)
Parameters
Type | Name | Description |
---|---|---|
Gaussian | Product | Incoming message from |
Gaussian | A | Incoming message from |
Returns
Type | Description |
---|---|
Gaussian | The outgoing VMP message to the |
Remarks
The outgoing message is the exponential of the average log-factor value, where the average is over all arguments except b
. Because the factor is deterministic, product
is integrated out before taking the logarithm. The formula is exp(sum_(a) p(a) log(sum_product p(product) factor(product,a,b)))
.
Exceptions
Type | Condition |
---|---|
ImproperMessageException |
|
ImproperMessageException |
|
BAverageLogarithm(Gaussian, Double)
VMP message to b
.
Declaration
public static Gaussian BAverageLogarithm(Gaussian Product, double A)
Parameters
Type | Name | Description |
---|---|---|
Gaussian | Product | Incoming message from |
Double | A | Constant value for |
Returns
Type | Description |
---|---|
Gaussian | The outgoing VMP message to the |
Remarks
The outgoing message is the factor viewed as a function of b
with product
integrated out. The formula is sum_product p(product) factor(product,a,b)
.
Exceptions
Type | Condition |
---|---|
ImproperMessageException |
|
BAverageLogarithm(Double, Gaussian)
VMP message to b
.
Declaration
[NotSupported("Variational Message Passing does not support a Product factor with fixed output and two random inputs.")]
public static Gaussian BAverageLogarithm(double Product, Gaussian A)
Parameters
Type | Name | Description |
---|---|---|
Double | Product | Constant value for |
Gaussian | A | Incoming message from |
Returns
Type | Description |
---|---|
Gaussian | The outgoing VMP message to the |
Remarks
The outgoing message is the exponential of the average log-factor value, where the average is over all arguments except b
. The formula is exp(sum_(a) p(a) log(factor(product,a,b)))
.
Exceptions
Type | Condition |
---|---|
ImproperMessageException |
|
BAverageLogarithm(Double, Double)
VMP message to b
.
Declaration
public static Gaussian BAverageLogarithm(double Product, double A)
Parameters
Type | Name | Description |
---|---|---|
Double | Product | Constant value for |
Double | A | Constant value for |
Returns
Type | Description |
---|---|
Gaussian | The outgoing VMP message to the |
Remarks
The outgoing message is the factor viewed as a function of b
conditioned on the given values.
ProductAverageLogarithm(Gaussian, Gaussian)
VMP message to product
.
Declaration
public static Gaussian ProductAverageLogarithm(Gaussian A, Gaussian B)
Parameters
Type | Name | Description |
---|---|---|
Gaussian | A | Incoming message from |
Gaussian | B | Incoming message from |
Returns
Type | Description |
---|---|
Gaussian | The outgoing VMP message to the |
Remarks
The outgoing message is a distribution matching the moments of product
as the random arguments are varied. The formula is proj[sum_(a,b) p(a,b) factor(product,a,b)]
.
Exceptions
Type | Condition |
---|---|
ImproperMessageException |
|
ImproperMessageException |
|
ProductAverageLogarithm(Gaussian, Double)
VMP message to product
.
Declaration
public static Gaussian ProductAverageLogarithm(Gaussian A, double B)
Parameters
Type | Name | Description |
---|---|---|
Gaussian | A | Incoming message from |
Double | B | Constant value for |
Returns
Type | Description |
---|---|
Gaussian | The outgoing VMP message to the |
Remarks
The outgoing message is a distribution matching the moments of product
as the random arguments are varied. The formula is proj[sum_(a) p(a) factor(product,a,b)]
.
Exceptions
Type | Condition |
---|---|
ImproperMessageException |
|
ProductAverageLogarithm(TruncatedGaussian, Double)
VMP message to product
.
Declaration
public static TruncatedGaussian ProductAverageLogarithm(TruncatedGaussian A, double B)
Parameters
Type | Name | Description |
---|---|---|
TruncatedGaussian | A | Incoming message from |
Double | B | Constant value for |
Returns
Type | Description |
---|---|
TruncatedGaussian | The outgoing VMP message to the |
Remarks
The outgoing message is a distribution matching the moments of product
as the random arguments are varied. The formula is proj[sum_(a) p(a) factor(product,a,b)]
.
Exceptions
Type | Condition |
---|---|
ImproperMessageException |
|
ProductAverageLogarithm(Double, Gaussian)
VMP message to product
.
Declaration
public static Gaussian ProductAverageLogarithm(double A, Gaussian B)
Parameters
Type | Name | Description |
---|---|---|
Double | A | Constant value for |
Gaussian | B | Incoming message from |
Returns
Type | Description |
---|---|
Gaussian | The outgoing VMP message to the |
Remarks
The outgoing message is a distribution matching the moments of product
as the random arguments are varied. The formula is proj[sum_(b) p(b) factor(product,a,b)]
.
Exceptions
Type | Condition |
---|---|
ImproperMessageException |
|
ProductAverageLogarithm(Double, TruncatedGaussian)
VMP message to product
.
Declaration
public static TruncatedGaussian ProductAverageLogarithm(double A, TruncatedGaussian B)
Parameters
Type | Name | Description |
---|---|---|
Double | A | Constant value for |
TruncatedGaussian | B | Incoming message from |
Returns
Type | Description |
---|---|
TruncatedGaussian | The outgoing VMP message to the |
Remarks
The outgoing message is a distribution matching the moments of product
as the random arguments are varied. The formula is proj[sum_(b) p(b) factor(product,a,b)]
.
Exceptions
Type | Condition |
---|---|
ImproperMessageException |
|
ProductDeriv(Gaussian, Gaussian, Gaussian, Gaussian, Gaussian)
Declaration
public static Gaussian ProductDeriv(Gaussian Product, Gaussian A, Gaussian B, Gaussian to_A, Gaussian to_B)
Parameters
Type | Name | Description |
---|---|---|
Gaussian | Product | |
Gaussian | A | |
Gaussian | B | |
Gaussian | to_A | |
Gaussian | to_B |
Returns
Type | Description |
---|---|
Gaussian |
ProductDeriv(Gaussian, Gaussian, Double, Gaussian)
Declaration
public static Gaussian ProductDeriv(Gaussian Product, Gaussian A, double B, Gaussian to_A)
Parameters
Type | Name | Description |
---|---|---|
Gaussian | Product | |
Gaussian | A | |
Double | B | |
Gaussian | to_A |
Returns
Type | Description |
---|---|
Gaussian |
ProductDeriv(Gaussian, Double, Gaussian, Gaussian)
Declaration
public static Gaussian ProductDeriv(Gaussian Product, double A, Gaussian B, Gaussian to_B)
Parameters
Type | Name | Description |
---|---|---|
Gaussian | Product | |
Double | A | |
Gaussian | B | |
Gaussian | to_B |
Returns
Type | Description |
---|---|
Gaussian |