08.10.2016 Views

Foundations of Data Science

2dLYwbK

2dLYwbK

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

x 1<br />

x 1 + x 2 + x 3 x 3 + x 4 + x 5 x 4 x 5<br />

x 1 x 2 x 3 x 4 x 5<br />

Figure 9.3: The factor graph for the function f = x 1 (x 1 + x 2 + x 3 ) (x 3 + x 4 + x 5 ) x 4 x 5 .<br />

Consider the following example where<br />

f = x 1 (x 1 + x 2 + x 3 ) (x 3 + x 4 + x 5 ) x 4 x 5<br />

and the variables take on values 0 or 1. Consider marginalizing f by computing<br />

f (x 1 ) =<br />

∑<br />

x 1 (x 1 + x 2 + x 3 ) (x 3 + x 4 + x 5 ) x 4 x 5 ,<br />

x 2 x 3 x 4 x 5<br />

In this case the factor graph is a tree as shown in Figure 9.3. The factor graph as a<br />

rooted tree and the messages passed by each node to its parent are shown in Figure 9.4.<br />

If instead <strong>of</strong> computing marginal’s, one wanted the variable assignment that maximizes<br />

the function f, one would modify the above procedure by replacing the summation by a<br />

maximization operation. Obvious modifications handle the situation where f(x) is a sum<br />

<strong>of</strong> products.<br />

f (x) =<br />

∑<br />

g (x)<br />

x 1 ,...,x n<br />

9.8 Message Passing in general Graphs<br />

The simple message passing algorithm in the last section gives us the one variable<br />

function <strong>of</strong> x 1 when we sum out all the other variables. For a general graph that is not<br />

a tree, we formulate an extension <strong>of</strong> that algorithm. But unlike the case <strong>of</strong> trees, there<br />

is no pro<strong>of</strong> that the algorithm will converge and even if it does, there is no guarantee<br />

that the limit is the marginal probability. This has not prevented its usefulness in some<br />

applications.<br />

First, lets ask a more general question, just for trees. Suppose we want to compute<br />

for each i the one variable function <strong>of</strong> x i when we sum out all variables x j , j ≠ i. Do we<br />

have to repeat what we did for x 1 once for each x i ? Luckily, the answer is no. It will<br />

suffice to do a second pass from the root to the leaves <strong>of</strong> essentially the same message<br />

passing algorithm to get all the answers. Recall that in the first pass, each edge <strong>of</strong> the<br />

tree has sent a message “up”, from the child to the parent. In the second pass, each edge<br />

will send a message down from the parent to the child. We start with the root and work<br />

313

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!