Class SoftmaxOp_BL06
Provides outgoing messages for Softmax(IList<Double>), given random arguments to the function.
Inherited Members
Namespace: Microsoft.ML.Probabilistic.Factors
Assembly: Microsoft.ML.Probabilistic.dll
Syntax
[FactorMethod(typeof(MMath), "Softmax", new Type[]{typeof(IList<double>)})]
[Quality(QualityBand.Preview)]
public static class SoftmaxOp_BL06Remarks
This implementation uses the simple first order Taylor series expansion from Blei and Lafferty (2006), followed by optimization using LBFGS. This approach is linear in the dimension K.
Methods
AverageLogFactor<GaussianList>(GaussianList, Dirichlet, Dirichlet)
Evidence message for VMP.
Declaration
public static double AverageLogFactor<GaussianList>(GaussianList x, Dirichlet softmax, Dirichlet to_softmax)
    where GaussianList : IList<Gaussian>Parameters
| Type | Name | Description | 
|---|---|---|
| GaussianList | x | Incoming message from  | 
| Dirichlet | softmax | Incoming message from  | 
| Dirichlet | to_softmax | Previous outgoing message to  | 
Returns
| Type | Description | 
|---|---|
| Double | Zero. | 
Type Parameters
| Name | Description | 
|---|---|
| GaussianList | The type of the incoming message from  | 
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.
ExpectationLogSumExp_Helper(IList<Gaussian>)
Declaration
public static double ExpectationLogSumExp_Helper(IList<Gaussian> x)Parameters
| Type | Name | Description | 
|---|---|---|
| IList<Gaussian> | x | 
Returns
| Type | Description | 
|---|---|
| Double | 
SoftmaxAverageLogarithm<GaussianList>(GaussianList, Dirichlet)
VMP message to softmax.
Declaration
public static Dirichlet SoftmaxAverageLogarithm<GaussianList>([SkipIfAllUniform] GaussianList x, Dirichlet result)
    where GaussianList : IList<Gaussian>Parameters
| Type | Name | Description | 
|---|---|---|
| GaussianList | x | Incoming message from  | 
| Dirichlet | result | Modified to contain the outgoing message. | 
Returns
| Type | Description | 
|---|---|
| Dirichlet | 
 | 
Type Parameters
| Name | Description | 
|---|---|
| GaussianList | The type of the incoming message from  | 
Remarks
The outgoing message is a distribution matching the moments of softmax as the random arguments are varied. The formula is proj[sum_(x) p(x) factor(softmax,x)].
Exceptions
| Type | Condition | 
|---|---|
| ImproperMessageException | 
 | 
XAverageLogarithm<GaussianList>(Dirichlet, GaussianList, GaussianList)
VMP message to x.
Declaration
public static GaussianList XAverageLogarithm<GaussianList>(Dirichlet softmax, GaussianList x, GaussianList to_x)
    where GaussianList : IList<Gaussian>Parameters
| Type | Name | Description | 
|---|---|---|
| Dirichlet | softmax | Incoming message from  | 
| GaussianList | x | Incoming message from  | 
| GaussianList | to_x | Previous outgoing message to  | 
Returns
| Type | Description | 
|---|---|
| GaussianList | The outgoing VMP message to the  | 
Type Parameters
| Name | Description | 
|---|---|
| GaussianList | The type of the incoming message from  | 
Remarks
The outgoing message is the factor viewed as a function of x with softmax integrated out. The formula is sum_softmax p(softmax) factor(softmax,x).
Exceptions
| Type | Condition | 
|---|---|
| ImproperMessageException | 
 | 
| ImproperMessageException | 
 |