Questions tagged [belief-propagation]

Belief propagation, also known as sum-product message passing, is a message passing algorithm for performing inference on graphical models, such as Bayesian networks and Markov random fields.

Belief networks are structured, graphical representation of probabilistic relationships between several random variables. They are the explicit representation of conditional independencies. These graph represents a factorization of the joint distribution in terms of factors that depend only on local subsets of random variables.

Belief propagation algorithm works by passing real valued functions called messages along the edges between the hidden nodes. A message is basically the belief about some node's probability of being in 0 or 1 state (that's why we call it belief propagation). These messages contain the "influence" that one variable exerts on another. Each message will be updated iteratively from the previous value of the neighbouring messages.

It is easiest to understand Belief propagation in factor graphs (we can convert any given belief network into a factor graph). A factor graph is an undirected graph where we have variable nodes on one side, and factor nodes on other side, and there is an edge between variable node A and factor node F if variable A appears in factor F . Here after, I will call variable nodes as simply nodes, and factor nodes as features.

In belief propagation,a factor f sends message to a node n by multiplying all the messages f gets from its neighbour nodes except n, and then multiplying resultant product with its own potential table, and then finally summing out all variables except n. We will stop this message passing when messages don't change across iterations. Now multiply all messages to that node to calculate marginal(marginal distribution of X is simply the probability distribution of X averaging over information about Y) of that node.

12 questions
9
votes
1 answer

Belief Propagation Implementation

I am trying to implement Bayesian Networks. My main graph is a factor graph that I want to use for belief propagation. But, in belief propagation when calculating messages, not all the arguments are passed to the function and the final function…
Cupitor
  • 11,007
  • 19
  • 65
  • 91
5
votes
4 answers

Is there a java alternative to the Bayesian Belief Network Framework "Infer.NET"?

Is the are java alternative to Bayesian Belief Network framework - Infer.NET? Preferable if it be scalable(online learning for large datasets), well-supported(last updated since 2010) and open source and easy to write network structure. So all…
yura
  • 14,489
  • 21
  • 77
  • 126
5
votes
1 answer

General purpose algorithm for triangulating an undirected graph?

I am playing around with implementing a junction tree algorithm for belief propagation on a Bayesian Network. I'm struggling a bit with triangulating the graph so the junction trees can be formed. I understand that finding the optimal triangulation…
Joe Holloway
  • 28,320
  • 15
  • 82
  • 92
1
vote
1 answer

Inference in Bayesian network, building a junction tree

Assuming you know a junction tree of a Bayesian network (to build manually for simple examples) write a programme in python for the propagation of beliefs in order to calculate the conditional probabilities P(Q|e) for arbitrary Q ∈ U and e ⊂ U. I…
1
vote
0 answers

Belief propagation using pgmpy lib - algorithm understanding

I am now starting to use pgmpy lib for probabailistic graphical model implementation. The probability that I get using this lib differs from the one I get manually (e.g. using SamIam). Here is a screenshot of the very small graphical model made in…
Olga
  • 11
  • 1
0
votes
0 answers

How to convert belief propagation to loopy belief propagation

I've been trying to learn belief propagation. Phillip Wenig has a very easy to understand python implementation available here. Now what I'm trying to do is understand how to convert this to loopy belief propagation. I've been testing a couple…
Dan
  • 533
  • 8
  • 29
0
votes
0 answers

Belief propagation algorithm for boolean binary tree

I've been trying to learn how belief propagation works. Specifically whether it would work as a SAT solver. Some of my research suggests this is possible. However, I'm really struggling to understand whether it's the right tool for the job or…
Dan
  • 533
  • 8
  • 29
0
votes
1 answer

self-defined conneted network using tesnsorflow take too much storage and failed to train

For my project i write a not-fully connected feedforword network using tensorflow. I only use scalar variables to generate weights, rather than matrix variables, because of not-fully connectivity. For this reason i get the flexibility to connet…
Bin
  • 25
  • 4
0
votes
1 answer

Combining delegates in C# (Sum-Product Algorithm)

I am currently implementing belief propagation for discrete variables. The messages are functions. I need to be able to combine them using products and sums to produce new functions. I currently have a basic implementation using delegates, but I…
user124784
  • 896
  • 1
  • 13
  • 22
0
votes
1 answer

Binary approach of affinity propagation

I'm implementing the Binary Variable Model for Affinity Propagation and have a conceptual doubt about it. I can understand most of the algorithm and have my implementation working, but I don't understand why is not needed to send both values for…
0
votes
0 answers

How to implement optical flow using belief propagation?

I'm not sure if I can ask these kind of questions in stackoverflow, but I saw some questions about understanding algorithms here, so I'm posting my question. If it is inappropriate, please let me know. I'm trying to implement optical flow using…
kwmaeng
  • 631
  • 2
  • 5
  • 20
0
votes
1 answer

a simple standard belief propagation

I read Zhang's paper Expert Finding in A Social Network, formula(1) is a propagation-base approach,similar to a standard belief propagation.Is there a code example or tool to do this? the propagation scheduler seems need to be a parallel…
David
  • 91
  • 1
  • 10