Beispiel #1
0
 /// <summary>Evidence message for EP.</summary>
 /// <param name="sample">Incoming message from <c>sample</c>.</param>
 /// <param name="mean">Constant value for <c>mean</c>.</param>
 /// <param name="to_sample">Outgoing message to <c>sample</c>.</param>
 /// <returns>Logarithm of the factor's average value across the given argument distributions.</returns>
 /// <remarks>
 ///   <para>The formula for the result is <c>log(sum_(sample) p(sample) factor(sample,mean))</c>.</para>
 /// </remarks>
 public static double LogAverageFactor(Poisson sample, double mean, [Fresh] Poisson to_sample)
 {
     return(to_sample.GetLogAverageOf(sample));
 }
Beispiel #2
0
 /// <summary>Evidence message for EP.</summary>
 /// <param name="sample">Incoming message from <c>sample</c>.</param>
 /// <param name="mean">Incoming message from <c>mean</c>.</param>
 /// <param name="to_sample">Previous outgoing message to <c>sample</c>.</param>
 /// <returns>Logarithm of the factor's contribution the EP model evidence.</returns>
 /// <remarks>
 ///   <para>The formula for the result is <c>log(sum_(sample,mean) p(sample,mean) factor(sample,mean) / sum_sample p(sample) messageTo(sample))</c>. Adding up these values across all factors and variables gives the log-evidence estimate for EP.</para>
 /// </remarks>
 public static double LogEvidenceRatio(Poisson sample, Gamma mean, Poisson to_sample)
 {
     return(LogAverageFactor(sample, mean) - to_sample.GetLogAverageOf(sample));
 }