Factor Graph Misc Q&A

by allenlu2007


Q: What’s half edge?  Can it convert to normal edge?

A: Half edge 就是只有一邊有 factor node, 另一邊沒有任何 factor node. 

Half edge 可以變為 normal edge, 只要另一邊加上一個 factor node = 1.


Q: Variable 如果有兩個以上的 factor nodes, 如何表示和計算?

A: Message passing 分為兩種: variable to factor, and factor to variable


Variable to factor message (附圖):  products from all other factor node messages (或者接收者的 message = 1)

Message from factor to variable:  sum of products except the recipient variable.


FFG 因為只有 factor node, variable 只有 edge.

如果 variable edge 連到一個 factor node, 稱為 half edge, 另一端的 factor 可以設為 1 (fu(x) =1 )

  –x– f(x, y, z) — y                   ===       (f=1) –x–  f(x, y, z) — y

joint pdf:  P(x, y, z, …) = f(x, y, z) * ..                    P(x, y, z, ..) = 1 * f(x, y, z) * …

v->f msg: u(x->f) = 1  (no, should be uniform dist?) 

f->v msg: u(f->x) = sum{y,z}( f(x, y, z) * u(y->f) * u(z->f)}



如果 variable edge 連到兩個 factor node, 稱為 full edge, variable to factor message 只是 passing by above definition.

如果 variable edge 連到三個 factor node, f1(x, ..), f2(x, ..), f3(x, ..). message from f1 to x


Q: message can be scale?  

A: Yes