Giter Club home page Giter Club logo

epbp's Introduction

EPBP

This is an implementation of the EPBP algorithm (see the article).

This code is released under the MIT license (i.e., feel free to do whatever you want with it) however, please do reach out and let me know if you end up using it as it would be helpful to have feedback on it.

Disclaimer

This project is still under development [as of June 2015] and should be considered as such. The code is released mainly for demonstration purpose and is not claimed to be optimal but we would be grateful for your feedback.

The release 1DN reproduces our original results and should allow one to try the method on an arbitrary graphical model with 1D continuous random variables.

Contact

  • lienart <> stats.ox.ac.uk

How to use

(section under construction...)

The relevant files are:

  • demo.jl gives the idea of the "main" file where you can define an MRF, define the potentials and define what you'd like to run (see below)
  • lib_* define the different functions of interest -- _support a few general purpose functions that are used everywhere -- _epbp the file you're likely to be interested where the EPBP algorithm proper is implemented, -- _pbp implementation of Particle BP (following implementation kindly communicated by A. Ihler & D. Frank) -- _ep implementation of "pure EP" -- _lbpd implementation of loopy BP on a discretized space (taken as "ground truth") -- lib_doSim skeleton for running the different simulations multiple times, with different parameters, etc.

Definition of an MRF

Two standard Graphical Models can be generated directly: the grid and the chain (see demo.jl). For another arbitrary structure, the user can enter a list corresponding to the edges (cf. demoTree in demo.jl). In practice, the following variables need to be defined:

  • nnodes: number of nodes
  • nedges: number of edges
  • edge_list: a nedges x 2 matrix where a line corresponds to an edge.

A naive example is the dumbbell graph (1--2) for which we'd have

nnodes = 2
nedges = 1
edge_list = [1 2; 2 1]

note that the reverse edge need to be explicitly mentioned as well.

epbp's People

Contributors

tlienart avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

epbp's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.