Skip to content

Latest commit

 

History

History
26 lines (22 loc) · 1.8 KB

Likelihood-Weighting.md

File metadata and controls

26 lines (22 loc) · 1.8 KB

LIKELIHOOD-WEIGHTING

AIMA3e

function LIKELIHOOD-WEIGHTING(X, e, bn, N) returns an estimate of P(X | e)
inputs: X, the query variable
     e, observed values for variables E
     bn, a Bayesian network specifying joint distribution P(X1, …, Xn)
     N, the total number of samples to be generated
local variables: W, a vector of weighted counts for each value of X, initially zero

for j = 1 to N do
   x, w ← WEIGHTED-SAMPLE(bn, e)
   W[x] ← W[x] + w where x is the value of X in x
return NORMALIZE(W)


function WEIGHTED-SAMPLE(bn, e) returns an event and a weight
w ← 1; x ← an event with n elements initialized from e
foreach variable Xi in X1, …, Xn do
   if Xi is an evidence variable with value xi in e
     then ww × P(Xi = xi | parents(Xi))
     else x[i] ← a random sample from P(Xi | parents(Xi))
return x, w


Figure ?? The likelihood-weighting algorithm for inference in Bayesian networks. In WEIGHTED-SAMPLE, each nonevidence variable is sampled according to the conditional distribution given the values already sampled for the variable's parents, while a weight is accumulated based on the likelihood for each evidence variable.