Compute the log of the exponentially weighted moving mean of the exp.
tfp.distributions.assign_log_moving_mean_exp( log_mean_exp_var, log_value, decay, name=None )
log_value is a draw from a stationary random variable, this function
log(E[exp(log_value)]), i.e., a weighted log-sum-exp. More
log_mean_exp_var, is updated by
using the following identity:
log_mean_exp_var = = log(decay exp(log_mean_exp_var) + (1 - decay) exp(log_value)) = log(exp(log_mean_exp_var + log(decay)) + exp(log_value + log1p(-decay))) = log_mean_exp_var + log( exp(log_mean_exp_var - log_mean_exp_var + log(decay)) + exp(log_value - log_mean_exp_var + log1p(-decay))) = log_mean_exp_var + log_sum_exp([log(decay), log_value - log_mean_exp_var + log1p(-decay)]).
In addition to numerical stability, this formulation is advantageous because
log_mean_exp_var can be updated in a lock-free manner, i.e., using
assign_add. (Note: the updates are not thread-safe; it's just that the
update to the tf.Variable is presumed efficient due to being lock-free.)
Variablerepresenting the log of the exponentially weighted moving mean of the exp. Same shape as
Tensorrepresenting a new (streaming) observation. Same shape as
Tensor. The moving mean decay. Typically close to
name: Optional name of the returned operation.
log_mean_exp_var: A reference to the input 'Variable' tensor with the
log_value-updated log of the exponentially weighted moving mean of exp.
log_mean_exp_vardoes not have float type