def get_vlb(self):
# return avg energy plus entropy, our contribution to the mean field
# variational lower bound
errs = np.seterr(invalid='ignore',divide='ignore')
prod = self.r*np.log(self.r)
prod[np.isnan(prod)] = 0. # 0 * -inf = 0.
np.seterr(**errs)
logpitilde = self.weights.expected_log_likelihood(np.arange(len(self.components)))
q_entropy = -prod.sum()
p_avgengy = (self.r*logpitilde).sum()
return p_avgengy + q_entropy
### EM
评论列表
文章目录