Class GaussianProductOp_Laplace
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)})]
[Buffers(new string[]{"ahat"})]
[Quality(QualityBand.Experimental)]
public class GaussianProductOp_Laplace : GaussianProductOpEvidenceBase
Remarks
This class allows EP to process the product factor using Laplace's method.
Methods
AAverageConditional(Gaussian, Gaussian, Gaussian, Double)
EP message to a.
Declaration
public static Gaussian AAverageConditional(Gaussian Product, Gaussian A, Gaussian B, double ahat)
Parameters
| Type | Name | Description |
|---|---|---|
| Gaussian | Product | Incoming message from |
| Gaussian | A | Incoming message from |
| Gaussian | B | Incoming message from |
| Double | ahat | Buffer |
Returns
| Type | Description |
|---|---|
| Gaussian | The outgoing EP message to the |
Remarks
The outgoing message is a distribution matching the moments of a as the random arguments are varied. The formula is proj[p(a) sum_(product,b) p(product,b) factor(product,a,b)]/p(a).
Exceptions
| Type | Condition |
|---|---|
| ImproperMessageException |
|
Ahat(Gaussian, Gaussian, Gaussian, Double)
Declaration
public static double Ahat(Gaussian Product, Gaussian A, Gaussian B, double ahat)
Parameters
| Type | Name | Description |
|---|---|---|
| Gaussian | Product | |
| Gaussian | A | |
| Gaussian | B | |
| Double | ahat |
Returns
| Type | Description |
|---|---|
| Double |
AhatInit(Gaussian)
Declaration
public static double AhatInit(Gaussian a)
Parameters
| Type | Name | Description |
|---|---|---|
| Gaussian | a |
Returns
| Type | Description |
|---|---|
| Double |
BAverageConditional(Gaussian, Gaussian, Gaussian, Double)
EP message to b.
Declaration
public static Gaussian BAverageConditional(Gaussian Product, Gaussian A, Gaussian B, double ahat)
Parameters
| Type | Name | Description |
|---|---|---|
| Gaussian | Product | Incoming message from |
| Gaussian | A | Incoming message from |
| Gaussian | B | Incoming message from |
| Double | ahat | Buffer |
Returns
| Type | Description |
|---|---|
| Gaussian | The outgoing EP message to the |
Remarks
The outgoing message is a distribution matching the moments of b as the random arguments are varied. The formula is proj[p(b) sum_(product,a) p(product,a) factor(product,a,b)]/p(b).
Exceptions
| Type | Condition |
|---|---|
| ImproperMessageException |
|
GetMoments(Int32, Gaussian, Gaussian, Gaussian, Double)
Declaration
public static Gaussian GetMoments(int index, Gaussian Product, Gaussian A, Gaussian B, double ahat)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | index | |
| Gaussian | Product | |
| Gaussian | A | |
| Gaussian | B | |
| Double | ahat |
Returns
| Type | Description |
|---|---|
| Gaussian |
LogAverageFactor(Gaussian, Gaussian, Gaussian, Gaussian)
Evidence message for EP.
Declaration
public static double LogAverageFactor(Gaussian Product, Gaussian A, Gaussian B, Gaussian to_A)
Parameters
| Type | Name | Description |
|---|---|---|
| Gaussian | Product | Incoming message from |
| Gaussian | A | Incoming message from |
| Gaussian | B | Incoming message from |
| Gaussian | to_A | Previous outgoing message to |
Returns
| Type | Description |
|---|---|
| Double | Logarithm of the factor's average value across the given argument distributions. |
Remarks
The formula for the result is log(sum_(product,a,b) p(product,a,b) factor(product,a,b)).
Exceptions
| Type | Condition |
|---|---|
| ImproperMessageException |
|
| ImproperMessageException |
|
| ImproperMessageException |
|
LogEvidenceRatio(Gaussian, Gaussian, Gaussian)
Evidence message for EP.
Declaration
public static double LogEvidenceRatio(Gaussian Product, Gaussian A, Gaussian B)
Parameters
| Type | Name | Description |
|---|---|---|
| Gaussian | Product | Incoming message from |
| Gaussian | A | Incoming message from |
| Gaussian | B | Incoming message from |
Returns
| Type | Description |
|---|---|
| Double | Logarithm of the factor's contribution the EP model evidence. |
Remarks
The formula for the result is log(sum_(product,a,b) p(product,a,b) factor(product,a,b) / sum_product p(product) messageTo(product)). Adding up these values across all factors and variables gives the log-evidence estimate for EP.
Exceptions
| Type | Condition |
|---|---|
| ImproperMessageException |
|
| ImproperMessageException |
|
| ImproperMessageException |
|
ProductAverageConditional(Gaussian, Gaussian, Gaussian, Double)
EP message to product.
Declaration
public static Gaussian ProductAverageConditional(Gaussian Product, Gaussian A, Gaussian B, double ahat)
Parameters
| Type | Name | Description |
|---|---|---|
| Gaussian | Product | Incoming message from |
| Gaussian | A | Incoming message from |
| Gaussian | B | Incoming message from |
| Double | ahat | Buffer |
Returns
| Type | Description |
|---|---|
| Gaussian | The outgoing EP 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[p(product) sum_(a,b) p(a,b) factor(product,a,b)]/p(product).