def proposal(self, state, params, _): if params.propose_world_opposite: proposed = 1 - state.world lbf = 0 elif params.propose_world_uniformly: proposed = self.sample_world([0.5, 0.5]) lbf = 0 else: proposed = self.sample_world(state.wp) lbf = scoring.log_prob_world(state.wp, state.world) - scoring.log_prob_world(state.wp, proposed) return proposed, lbf
def loglike(self, beliefs, meta, state, var_value, params, latents, _): lpw = scoring.log_prob_world(state.wp, var_value) own_noise, meta_noise = get_noise(state, latents, self.noise_in_state) expertise = get_expertise(latents, params.use_expertise) rll = scoring.reports_ll_marg(beliefs, meta, var_value, state.sm, state.wp, own_noise, meta_noise, expertise, params) return lpw + rll
def loglike(self, beliefs, meta, state, var_value, params, latents, _): if var_value[0] > 1 or var_value[0] < 0: return -np.inf #Original code had checks for bijection and kind of prior. lpw = scoring.log_prob_world(var_value, state.world) expertise = get_expertise(latents, params.use_expertise) own_noise, meta_noise = get_noise(state, latents, self.noise_in_state) rll = scoring.reports_ll_marg(beliefs, meta, state.world, state.sm, var_value, own_noise, meta_noise, expertise, params) return lpw + rll