Search Results for

    Show / Hide Table of Contents

    Class ProductGaussianBetaVmpOp

    Provides outgoing messages for Product(Double, Double), given random arguments to the function.

    Inheritance
    Object
    ProductGaussianBetaVmpOp
    Inherited Members
    Object.Equals(Object)
    Object.Equals(Object, Object)
    Object.GetHashCode()
    Object.GetType()
    Object.MemberwiseClone()
    Object.ReferenceEquals(Object, Object)
    Object.ToString()
    Namespace: Microsoft.ML.Probabilistic.Factors
    Assembly: Microsoft.ML.Probabilistic.dll
    Syntax
    [FactorMethod(typeof(Factor), "Product", new Type[]{typeof(double), typeof(double)})]
    [Quality(QualityBand.Experimental)]
    public static class ProductGaussianBetaVmpOp
    Remarks

    Implements nonconjugate VMP messages for multiplying a Gaussian variable (a) with a Beta variable (b).

    Fields

    damping

    How much damping to use to prevent improper messages.

    Declaration
    public static double damping
    Field Value
    Type Description
    Double

    Methods

    AAverageLogarithm(Gaussian, Beta)

    VMP message to a.

    Declaration
    public static Gaussian AAverageLogarithm(Gaussian Product, Beta B)
    Parameters
    Type Name Description
    Gaussian Product

    Incoming message from product. Must be a proper distribution. If uniform, the result will be uniform.

    Beta B

    Incoming message from b. Must be a proper distribution. If uniform, the result will be uniform.

    Returns
    Type Description
    Gaussian

    The outgoing VMP message to the a argument.

    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

    Product is not a proper distribution.

    ImproperMessageException

    B is not a proper distribution.

    AAverageLogarithm(Double, Beta)

    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, Beta B)
    Parameters
    Type Name Description
    Double Product

    Constant value for product.

    Beta B

    Incoming message from b. Must be a proper distribution. If uniform, the result will be uniform.

    Returns
    Type Description
    Gaussian

    The outgoing VMP message to the a argument.

    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

    B is not a proper distribution.

    BAverageLogarithm(Gaussian, Gaussian, Beta, Beta)

    VMP message to b.

    Declaration
    public static Beta BAverageLogarithm(Gaussian Product, Gaussian A, Beta B, Beta to_B)
    Parameters
    Type Name Description
    Gaussian Product

    Incoming message from product. Must be a proper distribution. If uniform, the result will be uniform.

    Gaussian A

    Incoming message from a. Must be a proper distribution. If uniform, the result will be uniform.

    Beta B

    Incoming message from b. Must be a proper distribution. If uniform, the result will be uniform.

    Beta to_B

    Previous outgoing message to B.

    Returns
    Type Description
    Beta

    The outgoing VMP message to the b argument.

    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

    Product is not a proper distribution.

    ImproperMessageException

    A is not a proper distribution.

    ImproperMessageException

    B is not a proper distribution.

    BAverageLogarithm(Gaussian, Double, Beta, Beta)

    VMP message to b.

    Declaration
    public static Beta BAverageLogarithm(Gaussian Product, double A, Beta B, Beta result)
    Parameters
    Type Name Description
    Gaussian Product

    Incoming message from product. Must be a proper distribution. If uniform, the result will be uniform.

    Double A

    Constant value for a.

    Beta B

    Incoming message from b. Must be a proper distribution. If uniform, the result will be uniform.

    Beta result

    Modified to contain the outgoing message.

    Returns
    Type Description
    Beta

    result

    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

    Product is not a proper distribution.

    ImproperMessageException

    B is not a proper distribution.

    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 Beta BAverageLogarithm(double Product, Gaussian A)
    Parameters
    Type Name Description
    Double Product

    Constant value for product.

    Gaussian A

    Incoming message from a.

    Returns
    Type Description
    Beta

    The outgoing VMP message to the b argument.

    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))).

    BAverageLogarithm(Double, Double)

    VMP message to b.

    Declaration
    public static Beta BAverageLogarithm(double Product, double A)
    Parameters
    Type Name Description
    Double Product

    Constant value for product.

    Double A

    Constant value for a.

    Returns
    Type Description
    Beta

    The outgoing VMP message to the b argument.

    Remarks

    The outgoing message is the factor viewed as a function of b conditioned on the given values.

    ProductAverageLogarithm(Gaussian, Beta)

    VMP message to product.

    Declaration
    public static Gaussian ProductAverageLogarithm(Gaussian A, Beta B)
    Parameters
    Type Name Description
    Gaussian A

    Incoming message from a. Must be a proper distribution. If uniform, the result will be uniform.

    Beta B

    Incoming message from b. Must be a proper distribution. If uniform, the result will be uniform.

    Returns
    Type Description
    Gaussian

    The outgoing VMP message to the product argument.

    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

    A is not a proper distribution.

    ImproperMessageException

    B is not a proper distribution.

    ProductAverageLogarithm(Double, Beta)

    VMP message to product.

    Declaration
    public static Gaussian ProductAverageLogarithm(double A, Beta B)
    Parameters
    Type Name Description
    Double A

    Constant value for a.

    Beta B

    Incoming message from b. Must be a proper distribution. If uniform, the result will be uniform.

    Returns
    Type Description
    Gaussian

    The outgoing VMP message to the product argument.

    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

    B is not a proper distribution.

    In This Article
    Back to top Copyright © .NET Foundation. All rights reserved.